diff --git a/src/de/schildbach/pte/BvgProvider.java b/src/de/schildbach/pte/BvgProvider.java index f5f0deed..c5897a80 100644 --- a/src/de/schildbach/pte/BvgProvider.java +++ b/src/de/schildbach/pte/BvgProvider.java @@ -112,7 +112,7 @@ public final class BvgProvider extends AbstractHafasProvider private final static Pattern P_NEARBY_PAGE = Pattern.compile("(.*?)", Pattern.DOTALL); private final static Pattern P_NEARBY_COARSE = Pattern.compile("(.*?)", 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 + "]*>" // destinationId + "\\s*(.*?)\\s*.*?" // 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(".*?" // diff --git a/test/de/schildbach/pte/live/BvgProviderLiveTest.java b/test/de/schildbach/pte/live/BvgProviderLiveTest.java index 95195923..aa53b7cf 100644 --- a/test/de/schildbach/pte/live/BvgProviderLiveTest.java +++ b/test/de/schildbach/pte/live/BvgProviderLiveTest.java @@ -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