From d66b770c4e56027eaf62cbe0d54d59422f8e6a6d Mon Sep 17 00:00:00 2001 From: Andreas Schildbach Date: Thu, 1 Mar 2012 15:44:11 +0100 Subject: [PATCH] support Vogtland --- enabler/src/de/schildbach/pte/NetworkId.java | 2 +- .../src/de/schildbach/pte/VvvProvider.java | 48 ++++++++++ .../pte/live/VvvProviderLiveTest.java | 90 +++++++++++++++++++ 3 files changed, 139 insertions(+), 1 deletion(-) create mode 100644 enabler/src/de/schildbach/pte/VvvProvider.java create mode 100644 enabler/test/de/schildbach/pte/live/VvvProviderLiveTest.java diff --git a/enabler/src/de/schildbach/pte/NetworkId.java b/enabler/src/de/schildbach/pte/NetworkId.java index 3e0a8c0c..5f3148c2 100644 --- a/enabler/src/de/schildbach/pte/NetworkId.java +++ b/enabler/src/de/schildbach/pte/NetworkId.java @@ -26,7 +26,7 @@ public enum NetworkId RT, // Germany - DB, BVG, VBB, RMV, NVV, BAYERN, MVV, INVG, AVV, VGN, VVM, VMV, HVV, SH, GVH, BSVAG, BSAG, VBN, NASA, VVO, VMS, VGS, VRR, VRS, MVG, NPH, VRN, VRT, VVS, NALDO, DING, KVV, VAGFR, NVBW, + DB, BVG, VBB, RMV, NVV, BAYERN, MVV, INVG, AVV, VGN, VVM, VMV, HVV, SH, GVH, BSVAG, BSAG, VBN, NASA, VVO, VMS, VGS, VRR, VRS, MVG, NPH, VRN, VRT, VVS, NALDO, DING, KVV, VAGFR, NVBW, VVV, // Austria OEBB, VOR, LINZ, SVV, VVT, VMOBIL, IVB, STV, diff --git a/enabler/src/de/schildbach/pte/VvvProvider.java b/enabler/src/de/schildbach/pte/VvvProvider.java new file mode 100644 index 00000000..f0c7d804 --- /dev/null +++ b/enabler/src/de/schildbach/pte/VvvProvider.java @@ -0,0 +1,48 @@ +/* + * Copyright 2010, 2011 the original author or authors. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package de.schildbach.pte; + +/** + * Verkehrsverbund Vogtland + * + * @author Andreas Schildbach + */ +public class VvvProvider extends AbstractEfaProvider +{ + public static final NetworkId NETWORK_ID = NetworkId.VVV; + private final static String API_BASE = "http://195.30.98.162:8081/vvv2/"; + + public VvvProvider() + { + super(API_BASE, null); + } + + public NetworkId id() + { + return NETWORK_ID; + } + + public boolean hasCapabilities(Capability... capabilities) + { + for (final Capability capability : capabilities) + if (capability == Capability.AUTOCOMPLETE_ONE_LINE || capability == Capability.DEPARTURES || capability == Capability.CONNECTIONS) + return true; + + return false; + } +} diff --git a/enabler/test/de/schildbach/pte/live/VvvProviderLiveTest.java b/enabler/test/de/schildbach/pte/live/VvvProviderLiveTest.java new file mode 100644 index 00000000..8a13ac1f --- /dev/null +++ b/enabler/test/de/schildbach/pte/live/VvvProviderLiveTest.java @@ -0,0 +1,90 @@ +/* + * Copyright 2010, 2011 the original author or authors. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package de.schildbach.pte.live; + +import java.util.Date; +import java.util.List; + +import org.junit.Test; + +import de.schildbach.pte.NetworkProvider.Accessibility; +import de.schildbach.pte.NetworkProvider.WalkSpeed; +import de.schildbach.pte.VvvProvider; +import de.schildbach.pte.dto.Location; +import de.schildbach.pte.dto.LocationType; +import de.schildbach.pte.dto.NearbyStationsResult; +import de.schildbach.pte.dto.QueryConnectionsResult; +import de.schildbach.pte.dto.QueryDeparturesResult; + +/** + * @author Andreas Schildbach + */ +public class VvvProviderLiveTest extends AbstractProviderLiveTest +{ + private final VvvProvider provider = new VvvProvider(); + + @Test + public void nearbyStations() throws Exception + { + final NearbyStationsResult result = provider.queryNearbyStations(new Location(LocationType.STATION, 80007271), 0, 0); + + print(result); + } + + @Test + public void nearbyStationsByCoordinate() throws Exception + { + final NearbyStationsResult result = provider.queryNearbyStations(new Location(LocationType.ADDRESS, 50776518, 12056032), 0, 0); + + print(result); + } + + @Test + public void queryDepartures() throws Exception + { + final QueryDeparturesResult result = provider.queryDepartures(80007271, 0, false); + + print(result); + } + + @Test + public void autocompleteIncomplete() throws Exception + { + final List autocompletes = provider.autocompleteStations("Kirchweidach, Kirchweidach"); + + print(autocompletes); + } + + @Test + public void autocompleteWithUmlaut() throws Exception + { + final List autocompletes = provider.autocompleteStations("grün"); + + print(autocompletes); + } + + @Test + public void shortConnection() throws Exception + { + final QueryConnectionsResult result = provider.queryConnections(new Location(LocationType.STATION, 0, null, "Hauptwache"), null, + new Location(LocationType.STATION, 0, null, "Südbahnhof"), new Date(), true, ALL_PRODUCTS, WalkSpeed.NORMAL, Accessibility.NEUTRAL); + System.out.println(result); + final QueryConnectionsResult moreResult = provider.queryMoreConnections(result.context, true); + System.out.println(moreResult); + } +}