diff --git a/enabler/src/de/schildbach/pte/AbstractEfaProvider.java b/enabler/src/de/schildbach/pte/AbstractEfaProvider.java index a159adf2..f2b65813 100644 --- a/enabler/src/de/schildbach/pte/AbstractEfaProvider.java +++ b/enabler/src/de/schildbach/pte/AbstractEfaProvider.java @@ -1887,6 +1887,18 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider else throw new IllegalStateException("unknown usage: " + usage); } + else if ("notidentified".equals(nameState)) + { + if ("origin".equals(usage)) + return new QueryConnectionsResult(header, QueryConnectionsResult.Status.UNKNOWN_FROM); + else if ("via".equals(usage)) + // return new QueryConnectionsResult(header, QueryConnectionsResult.Status.UNKNOWN_VIA); + throw new UnsupportedOperationException(); + else if ("destination".equals(usage)) + return new QueryConnectionsResult(header, QueryConnectionsResult.Status.UNKNOWN_TO); + else + throw new IllegalStateException("unknown usage: " + usage); + } XmlPullUtil.exit(pp, "itdOdvName"); XmlPullUtil.exit(pp, "itdOdv"); } diff --git a/enabler/test/de/schildbach/pte/live/MvvProviderLiveTest.java b/enabler/test/de/schildbach/pte/live/MvvProviderLiveTest.java index 647e7e43..04141400 100644 --- a/enabler/test/de/schildbach/pte/live/MvvProviderLiveTest.java +++ b/enabler/test/de/schildbach/pte/live/MvvProviderLiveTest.java @@ -20,6 +20,8 @@ package de.schildbach.pte.live; import java.util.Date; import java.util.List; +import junit.framework.Assert; + import org.junit.Test; import de.schildbach.pte.MvvProvider; @@ -62,9 +64,18 @@ public class MvvProviderLiveTest extends AbstractProviderLiveTest { final QueryDeparturesResult result = provider.queryDepartures(2, 0, false); + Assert.assertEquals(QueryDeparturesResult.Status.OK, result.status); print(result); } + @Test + public void queryDeparturesInvalidStation() throws Exception + { + final QueryDeparturesResult result = provider.queryDepartures(999999, 0, false); + + Assert.assertEquals(QueryDeparturesResult.Status.INVALID_STATION, result.status); + } + @Test public void autocompleteIncomplete() throws Exception { @@ -84,8 +95,8 @@ public class MvvProviderLiveTest extends AbstractProviderLiveTest @Test public void shortConnection() throws Exception { - final QueryConnectionsResult result = queryConnections(new Location(LocationType.ANY, 0, null, "Marienplatz"), null, new Location( - LocationType.ANY, 0, null, "Pasing"), new Date(), true, ALL_PRODUCTS, WalkSpeed.NORMAL, Accessibility.NEUTRAL); + final QueryConnectionsResult result = queryConnections(new Location(LocationType.STATION, 2, "München", "Marienplatz"), null, new Location( + LocationType.STATION, 10, "München", "Pasing"), new Date(), true, ALL_PRODUCTS, WalkSpeed.NORMAL, Accessibility.NEUTRAL); System.out.println(result); final QueryConnectionsResult laterResult = queryMoreConnections(result.context, true); System.out.println(laterResult); @@ -143,4 +154,18 @@ public class MvvProviderLiveTest extends AbstractProviderLiveTest final QueryConnectionsResult laterResult = queryMoreConnections(result.context, true); System.out.println(laterResult); } + + @Test + public void queryConnectionInvalidStation() throws Exception + { + final QueryConnectionsResult result1 = queryConnections(new Location(LocationType.STATION, 2, "München", "Marienplatz"), null, new Location( + LocationType.STATION, 99999, 0, 0, null, null), new Date(), true, ALL_PRODUCTS, WalkSpeed.NORMAL, Accessibility.NEUTRAL); + + Assert.assertEquals(QueryConnectionsResult.Status.UNKNOWN_TO, result1.status); + + final QueryConnectionsResult result2 = queryConnections(new Location(LocationType.STATION, 99999, 0, 0, null, null), null, new Location( + LocationType.STATION, 2, "München", "Marienplatz"), new Date(), true, ALL_PRODUCTS, WalkSpeed.NORMAL, Accessibility.NEUTRAL); + + Assert.assertEquals(QueryConnectionsResult.Status.UNKNOWN_FROM, result2.status); + } }