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