unknown station status codes for efa based providers

This commit is contained in:
Andreas Schildbach 2012-10-11 17:56:06 +02:00
parent 3073ab12a4
commit e1c0589ca0
2 changed files with 39 additions and 2 deletions

View file

@ -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");
}

View file

@ -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);
}
}