fixed parse exception when invalid station id is used

git-svn-id: https://public-transport-enabler.googlecode.com/svn/trunk@741 0924bc21-9374-b0fa-ee44-9ff1593b38f0
This commit is contained in:
andreas.schildbach@gmail.com 2011-08-16 12:48:53 +00:00
parent 5ec0a4b4a7
commit a2833ba166
2 changed files with 28 additions and 4 deletions

View file

@ -112,7 +112,7 @@ public final class BvgProvider extends AbstractHafasProvider
private final static Pattern P_NEARBY_PAGE = Pattern.compile("<table class=\"ivuTableOverview\".*?<tbody>(.*?)</tbody>", Pattern.DOTALL);
private final static Pattern P_NEARBY_COARSE = Pattern.compile("<tr>(.*?)</tr>", Pattern.DOTALL);
private final static Pattern P_NEARBY_FINE_LOCATION = Pattern.compile("input=(\\d+)&[^\"]*\">([^<]*)<");
private static final Pattern P_NEARBY_ERRORS = Pattern.compile("(derzeit leider nicht bearbeitet werden)");
private static final Pattern P_NEARBY_ERRORS = Pattern.compile("(Haltestellen in der Umgebung anzeigen)");
public NearbyStationsResult queryNearbyStations(final Location location, final int maxDistance, final int maxStations) throws IOException
{
@ -222,7 +222,7 @@ public final class BvgProvider extends AbstractHafasProvider
+ "<a href=\"/Fahrinfo/bin/stboard\\.bin/dox/dox.*?evaId=(\\d+)&[^>]*>" // destinationId
+ "\\s*(.*?)\\s*</a>.*?" // destination
, Pattern.DOTALL);
private static final Pattern P_DEPARTURES_PLAN_ERRORS = Pattern.compile("(derzeit leider nicht bearbeitet werden)|(Wartungsarbeiten)|"
private static final Pattern P_DEPARTURES_PLAN_ERRORS = Pattern.compile("(Bhf\\./Hst\\.:)|(Wartungsarbeiten)|"
+ "(http-equiv=\"refresh\")", Pattern.CASE_INSENSITIVE);
private static final Pattern P_DEPARTURES_LIVE_HEAD = Pattern.compile(".*?" //

View file

@ -17,6 +17,8 @@
package de.schildbach.pte.live;
import static junit.framework.Assert.assertEquals;
import java.util.Date;
import java.util.List;
@ -42,15 +44,37 @@ public class BvgProviderLiveTest
public void nearbyStations() throws Exception
{
final NearbyStationsResult result = provider.queryNearbyStations(new Location(LocationType.STATION, 9220302), 0, 0);
assertEquals(NearbyStationsResult.Status.OK, result.status);
System.out.println(result.stations.size() + " " + result.stations);
}
@Test
public void nearbyStationsInvalidStation() throws Exception
{
final NearbyStationsResult result = provider.queryNearbyStations(new Location(LocationType.STATION, 2449475), 0, 0);
assertEquals(NearbyStationsResult.Status.INVALID_STATION, result.status);
}
@Test
public void queryDepartures() throws Exception
{
final QueryDeparturesResult result = provider.queryDepartures(309557, 0, false);
final QueryDeparturesResult resultLive = provider.queryDepartures(309557, 0, false);
assertEquals(QueryDeparturesResult.Status.OK, resultLive.status);
System.out.println(resultLive.stationDepartures);
System.out.println(result.stationDepartures);
final QueryDeparturesResult resultPlan = provider.queryDepartures(9100003, 0, false);
assertEquals(QueryDeparturesResult.Status.OK, resultPlan.status);
System.out.println(resultPlan.stationDepartures);
}
@Test
public void queryDeparturesInvalidStation() throws Exception
{
final QueryDeparturesResult resultLive = provider.queryDepartures(111111, 0, false);
assertEquals(QueryDeparturesResult.Status.INVALID_STATION, resultLive.status);
final QueryDeparturesResult resultPlan = provider.queryDepartures(2449475, 0, false);
assertEquals(QueryDeparturesResult.Status.INVALID_STATION, resultPlan.status);
}
@Test