diff --git a/enabler/src/de/schildbach/pte/NetworkId.java b/enabler/src/de/schildbach/pte/NetworkId.java
index 0600fa81..ba04d9f5 100644
--- a/enabler/src/de/schildbach/pte/NetworkId.java
+++ b/enabler/src/de/schildbach/pte/NetworkId.java
@@ -29,7 +29,7 @@ public enum NetworkId
DB, BVG, VBB, NVV, BAYERN, MVV, INVG, AVV, VGN, VVM, VMV, HVV, SH, GVH, BSVAG, VBN, NASA, VVO, VMS, VGS, VRR, VRS, MVG, NPH, VRN, VVS, DING, KVV, VAGFR, NVBW, VVV,
// Austria
- OEBB, VAO, VOR, WIEN, LINZ, SVV, VVT, IVB, STV,
+ OEBB, VAO, VOR, WIEN, LINZ, VVT, IVB, STV,
// Switzerland
SBB, BVB, VBL, ZVV,
diff --git a/enabler/src/de/schildbach/pte/SvvProvider.java b/enabler/src/de/schildbach/pte/SvvProvider.java
deleted file mode 100644
index 95c8cdcb..00000000
--- a/enabler/src/de/schildbach/pte/SvvProvider.java
+++ /dev/null
@@ -1,82 +0,0 @@
-/*
- * Copyright 2010-2015 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;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import javax.annotation.Nullable;
-
-import com.google.common.base.Charsets;
-
-import de.schildbach.pte.dto.Line;
-import de.schildbach.pte.dto.Product;
-import de.schildbach.pte.dto.Style;
-
-/**
- * @author Andreas Schildbach
- */
-public class SvvProvider extends AbstractEfaProvider
-{
- private final static String API_BASE = "http://efa.svv-info.at/svv/";
-
- public SvvProvider()
- {
- super(NetworkId.SVV, API_BASE);
-
- setRequestUrlEncoding(Charsets.UTF_8);
- setStyles(STYLES);
- }
-
- @Override
- protected Line parseLine(final @Nullable String id, final @Nullable String network, final @Nullable String mot, final @Nullable String symbol,
- final @Nullable String name, final @Nullable String longName, final @Nullable String trainType, final @Nullable String trainNum,
- final @Nullable String trainName)
- {
- if ("1".equals(mot))
- {
- if ("S1/11".equals(symbol)) // Salzburger Lokalbahn
- return new Line(id, network, Product.SUBURBAN_TRAIN, "S1/11");
- }
-
- return super.parseLine(id, network, mot, symbol, name, longName, trainType, trainNum, trainName);
- }
-
- private static final Map STYLES = new HashMap();
-
- static
- {
- STYLES.put("svv|SS1", new Style(Style.parseColor("#b61d33"), Style.WHITE));
- STYLES.put("svv|SS2", new Style(Style.parseColor("#0069b4"), Style.WHITE));
- STYLES.put("svv|SS3", new Style(Style.parseColor("#0aa537"), Style.WHITE));
- STYLES.put("svv|SS4", new Style(Style.parseColor("#a862a4"), Style.WHITE));
- STYLES.put("svv|SS11", new Style(Style.parseColor("#b61d33"), Style.WHITE));
-
- STYLES.put("svv|B1", new Style(Style.parseColor("#e3000f"), Style.WHITE));
- STYLES.put("svv|B2", new Style(Style.parseColor("#0069b4"), Style.WHITE));
- STYLES.put("svv|B3", new Style(Style.parseColor("#956b27"), Style.WHITE));
- STYLES.put("svv|B4", new Style(Style.parseColor("#ffcc00"), Style.WHITE));
- STYLES.put("svv|B5", new Style(Style.parseColor("#04bbee"), Style.WHITE));
- STYLES.put("svv|B6", new Style(Style.parseColor("#85bc22"), Style.WHITE));
- STYLES.put("svv|B7", new Style(Style.parseColor("#009a9b"), Style.WHITE));
- STYLES.put("svv|B8", new Style(Style.parseColor("#f39100"), Style.WHITE));
- STYLES.put("svv|B10", new Style(Style.parseColor("#f8baa2"), Style.BLACK));
- STYLES.put("svv|B12", new Style(Style.parseColor("#b9dfde"), Style.WHITE));
- STYLES.put("svv|B14", new Style(Style.parseColor("#cfe09a"), Style.WHITE));
- }
-}
diff --git a/enabler/src/de/schildbach/pte/VaoProvider.java b/enabler/src/de/schildbach/pte/VaoProvider.java
index fc4ccc7c..87389c52 100644
--- a/enabler/src/de/schildbach/pte/VaoProvider.java
+++ b/enabler/src/de/schildbach/pte/VaoProvider.java
@@ -20,6 +20,8 @@ package de.schildbach.pte;
import java.io.IOException;
import java.util.Date;
import java.util.EnumSet;
+import java.util.HashMap;
+import java.util.Map;
import java.util.Set;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@@ -35,6 +37,7 @@ import de.schildbach.pte.dto.Product;
import de.schildbach.pte.dto.QueryDeparturesResult;
import de.schildbach.pte.dto.QueryTripsContext;
import de.schildbach.pte.dto.QueryTripsResult;
+import de.schildbach.pte.dto.Style;
import de.schildbach.pte.dto.SuggestLocationsResult;
/**
@@ -55,6 +58,7 @@ public class VaoProvider extends AbstractHafasProvider
setJsonApiClient("{\"id\":\"VAO\",\"l\":\"vs_vvv\"}");
setJsonApiAuthorization(jsonApiAuthorization);
setJsonNearbyLocationsEncoding(Charsets.UTF_8);
+ setStyles(STYLES);
}
@Override
@@ -133,4 +137,29 @@ public class VaoProvider extends AbstractHafasProvider
return jsonTripSearch(jsonContext.from, jsonContext.to, jsonContext.date, jsonContext.dep, jsonContext.products,
later ? jsonContext.laterContext : jsonContext.earlierContext);
}
+
+ private static final Map STYLES = new HashMap();
+
+ static
+ {
+ // Salzburg S-Bahn
+ STYLES.put("Salzburg AG|SS1", new Style(Style.parseColor("#b61d33"), Style.WHITE));
+ STYLES.put("Salzburg AG|SS11", new Style(Style.parseColor("#b61d33"), Style.WHITE));
+ STYLES.put("OEBB|SS2", new Style(Style.parseColor("#0069b4"), Style.WHITE));
+ STYLES.put("OEBB|SS3", new Style(Style.parseColor("#0aa537"), Style.WHITE));
+ STYLES.put("BLB|SS4", new Style(Style.parseColor("#a862a4"), Style.WHITE));
+
+ // Salzburg Bus
+ STYLES.put("Salzburg AG|B1", new Style(Style.parseColor("#e3000f"), Style.WHITE));
+ STYLES.put("Salzburg AG|B2", new Style(Style.parseColor("#0069b4"), Style.WHITE));
+ STYLES.put("Salzburg AG|B3", new Style(Style.parseColor("#956b27"), Style.WHITE));
+ STYLES.put("Salzburg AG|B4", new Style(Style.parseColor("#ffcc00"), Style.WHITE));
+ STYLES.put("Salzburg AG|B5", new Style(Style.parseColor("#04bbee"), Style.WHITE));
+ STYLES.put("Salzburg AG|B6", new Style(Style.parseColor("#85bc22"), Style.WHITE));
+ STYLES.put("Salzburg AG|B7", new Style(Style.parseColor("#009a9b"), Style.WHITE));
+ STYLES.put("Salzburg AG|B8", new Style(Style.parseColor("#f39100"), Style.WHITE));
+ STYLES.put("Salzburg AG|B10", new Style(Style.parseColor("#f8baa2"), Style.BLACK));
+ STYLES.put("Salzburg AG|B12", new Style(Style.parseColor("#b9dfde"), Style.WHITE));
+ STYLES.put("Salzburg AG|B14", new Style(Style.parseColor("#cfe09a"), Style.WHITE));
+ }
}
diff --git a/enabler/test/de/schildbach/pte/live/SvvProviderLiveTest.java b/enabler/test/de/schildbach/pte/live/SvvProviderLiveTest.java
deleted file mode 100644
index 58dd3739..00000000
--- a/enabler/test/de/schildbach/pte/live/SvvProviderLiveTest.java
+++ /dev/null
@@ -1,141 +0,0 @@
-/*
- * Copyright 2010-2015 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 static org.hamcrest.CoreMatchers.hasItem;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertThat;
-import static org.junit.Assert.assertTrue;
-
-import java.util.Date;
-
-import org.junit.Test;
-
-import de.schildbach.pte.NetworkProvider.Accessibility;
-import de.schildbach.pte.NetworkProvider.WalkSpeed;
-import de.schildbach.pte.SvvProvider;
-import de.schildbach.pte.dto.Location;
-import de.schildbach.pte.dto.LocationType;
-import de.schildbach.pte.dto.NearbyLocationsResult;
-import de.schildbach.pte.dto.Product;
-import de.schildbach.pte.dto.QueryDeparturesResult;
-import de.schildbach.pte.dto.QueryTripsResult;
-import de.schildbach.pte.dto.SuggestLocationsResult;
-
-/**
- * @author Andreas Schildbach
- */
-public class SvvProviderLiveTest extends AbstractProviderLiveTest
-{
- public SvvProviderLiveTest()
- {
- super(new SvvProvider());
- }
-
- @Test
- public void nearbyStations() throws Exception
- {
- final NearbyLocationsResult result = queryNearbyStations(new Location(LocationType.STATION, "60650002"));
- print(result);
- }
-
- @Test
- public void nearbyStationsByCoordinate() throws Exception
- {
- final NearbyLocationsResult result = queryNearbyStations(Location.coord(47809195, 13054919));
- print(result);
- }
-
- @Test
- public void queryDepartures() throws Exception
- {
- final QueryDeparturesResult result = queryDepartures("60650002", false);
- print(result);
- }
-
- @Test
- public void suggestLocationsIncomplete() throws Exception
- {
- final SuggestLocationsResult result = suggestLocations("Kur");
- print(result);
- }
-
- @Test
- public void suggestLocationsWithUmlaut() throws Exception
- {
- final SuggestLocationsResult result = suggestLocations("Salzburg Süd");
- print(result);
- assertThat(result.getLocations(), hasItem(new Location(LocationType.STATION, "60650458")));
- }
-
- @Test
- public void suggestLocationsAddress() throws Exception
- {
- final SuggestLocationsResult result = suggestLocations("Kaigasse 10");
- print(result);
- }
-
- @Test
- public void suggestLocationsCoverage() throws Exception
- {
- final SuggestLocationsResult salzburgResult = suggestLocations("Salzburg Süd");
- print(salzburgResult);
- assertThat(salzburgResult.getLocations(), hasItem(new Location(LocationType.STATION, "60650458")));
-
- final SuggestLocationsResult strasswalchenResult = suggestLocations("Straßwalchen West");
- print(strasswalchenResult);
- assertThat(strasswalchenResult.getLocations(), hasItem(new Location(LocationType.STATION, "60656483")));
-
- final SuggestLocationsResult schwarzachResult = suggestLocations("Schwarzach Abtsdorf");
- print(schwarzachResult);
- assertThat(schwarzachResult.getLocations(), hasItem(new Location(LocationType.STATION, "60656614")));
-
- final SuggestLocationsResult trimmelkamResult = suggestLocations("Trimmelkam");
- print(trimmelkamResult);
- assertThat(trimmelkamResult.getLocations(), hasItem(new Location(LocationType.STATION, "60640776")));
- }
-
- @Test
- public void shortTrip() throws Exception
- {
- final QueryTripsResult result = queryTrips(new Location(LocationType.STATION, "60650021", 47797036, 13053608, "Salzburg", "Justizgebäude"),
- null, new Location(LocationType.STATION, "60650022", 47793760, 13059338, "Salzburg", "Akademiestraße"), new Date(), true,
- Product.ALL, WalkSpeed.NORMAL, Accessibility.NEUTRAL);
- print(result);
- assertEquals(QueryTripsResult.Status.OK, result.status);
- assertTrue(result.trips.size() > 0);
-
- if (!result.context.canQueryLater())
- return;
-
- final QueryTripsResult laterResult = queryMoreTrips(result.context, true);
- print(laterResult);
-
- if (!laterResult.context.canQueryLater())
- return;
-
- final QueryTripsResult later2Result = queryMoreTrips(laterResult.context, true);
- print(later2Result);
-
- if (!later2Result.context.canQueryEarlier())
- return;
-
- final QueryTripsResult earlierResult = queryMoreTrips(later2Result.context, false);
- print(earlierResult);
- }
-}
diff --git a/enabler/test/de/schildbach/pte/live/VaoProviderLiveTest.java b/enabler/test/de/schildbach/pte/live/VaoProviderLiveTest.java
index e8f77674..46245524 100644
--- a/enabler/test/de/schildbach/pte/live/VaoProviderLiveTest.java
+++ b/enabler/test/de/schildbach/pte/live/VaoProviderLiveTest.java
@@ -17,7 +17,10 @@
package de.schildbach.pte.live;
+import static org.hamcrest.CoreMatchers.hasItem;
import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertThat;
+import static org.junit.Assert.assertTrue;
import java.util.Date;
@@ -58,6 +61,13 @@ public class VaoProviderLiveTest extends AbstractProviderLiveTest
print(result);
}
+ @Test
+ public void nearbyStationsByCoordinateSalzburg() throws Exception
+ {
+ final NearbyLocationsResult result = queryNearbyStations(Location.coord(47809195, 13054919));
+ print(result);
+ }
+
@Test
public void queryDepartures() throws Exception
{
@@ -66,6 +76,13 @@ public class VaoProviderLiveTest extends AbstractProviderLiveTest
assertEquals(QueryDeparturesResult.Status.OK, result.status);
}
+ @Test
+ public void queryDeparturesSalzburg() throws Exception
+ {
+ final QueryDeparturesResult result = queryDepartures("455000200", false);
+ print(result);
+ }
+
@Test
public void queryDeparturesInvalidStation() throws Exception
{
@@ -95,6 +112,26 @@ public class VaoProviderLiveTest extends AbstractProviderLiveTest
print(result);
}
+ @Test
+ public void suggestLocationsCoverage() throws Exception
+ {
+ final SuggestLocationsResult salzburgResult = suggestLocations("Salzburg Süd");
+ print(salzburgResult);
+ assertThat(salzburgResult.getLocations(), hasItem(new Location(LocationType.STATION, "60650458")));
+
+ final SuggestLocationsResult strasswalchenResult = suggestLocations("Straßwalchen West");
+ print(strasswalchenResult);
+ assertThat(strasswalchenResult.getLocations(), hasItem(new Location(LocationType.STATION, "60656483")));
+
+ final SuggestLocationsResult schwarzachResult = suggestLocations("Schwarzach Abtsdorf");
+ print(schwarzachResult);
+ assertThat(schwarzachResult.getLocations(), hasItem(new Location(LocationType.STATION, "60656614")));
+
+ final SuggestLocationsResult trimmelkamResult = suggestLocations("Trimmelkam");
+ print(trimmelkamResult);
+ assertThat(trimmelkamResult.getLocations(), hasItem(new Location(LocationType.STATION, "60640776")));
+ }
+
@Test
public void shortTripFeldkirch() throws Exception
{
@@ -131,6 +168,36 @@ public class VaoProviderLiveTest extends AbstractProviderLiveTest
print(earlierResult);
}
+ @Test
+ public void shortTripSalzburg() throws Exception
+ {
+ final QueryTripsResult result = queryTrips(
+ new Location(LocationType.STATION, "455000900", 47808976, 13056409, "Salzburg", "Vogelweiderstraße"), null,
+ new Location(LocationType.STATION, "455084400", 47811556, 13050278, "Salzburg", "Merianstraße"), new Date(), true, Product.ALL,
+ WalkSpeed.NORMAL, Accessibility.NEUTRAL);
+ print(result);
+ assertEquals(QueryTripsResult.Status.OK, result.status);
+ assertTrue(result.trips.size() > 0);
+
+ if (!result.context.canQueryLater())
+ return;
+
+ final QueryTripsResult laterResult = queryMoreTrips(result.context, true);
+ print(laterResult);
+
+ if (!laterResult.context.canQueryLater())
+ return;
+
+ final QueryTripsResult later2Result = queryMoreTrips(laterResult.context, true);
+ print(later2Result);
+
+ if (!later2Result.context.canQueryEarlier())
+ return;
+
+ final QueryTripsResult earlierResult = queryMoreTrips(later2Result.context, false);
+ print(earlierResult);
+ }
+
@Test
public void tripAddressToStation() throws Exception
{