diff --git a/enabler/src/de/schildbach/pte/AbstractNavitiaProvider.java b/enabler/src/de/schildbach/pte/AbstractNavitiaProvider.java index f6f6ad5b..2577ba68 100644 --- a/enabler/src/de/schildbach/pte/AbstractNavitiaProvider.java +++ b/enabler/src/de/schildbach/pte/AbstractNavitiaProvider.java @@ -1019,6 +1019,35 @@ public abstract class AbstractNavitiaProvider extends AbstractNetworkProvider queryUri.append("&last_section_mode=bike"); } + // Set forbidden commercial modes. + if (!products.equals(Product.ALL)) + { + if (!products.contains(Product.SUBURBAN_TRAIN)) + { + queryUri.append("&forbidden_uris[]=commercial_mode:train"); + } + if (!products.contains(Product.SUBWAY)) + { + queryUri.append("&forbidden_uris[]=commercial_mode:metro"); + } + if (!products.contains(Product.TRAM)) + { + queryUri.append("&forbidden_uris[]=commercial_mode:tram"); + } + if (!products.contains(Product.BUS)) + { + queryUri.append("&forbidden_uris[]=commercial_mode:bus"); + } + if (!products.contains(Product.FERRY)) + { + queryUri.append("&forbidden_uris[]=commercial_mode:ferry"); + } + if (!products.contains(Product.CABLECAR)) + { + queryUri.append("&forbidden_uris[]=commercial_mode:cablecar"); + } + } + final CharSequence page = ParserUtils.scrape(queryUri.toString(), authorization); // System.out.println(queryUri); diff --git a/enabler/test/de/schildbach/pte/live/ParisProviderLiveTest.java b/enabler/test/de/schildbach/pte/live/ParisProviderLiveTest.java index 4f56750d..31137cc4 100644 --- a/enabler/test/de/schildbach/pte/live/ParisProviderLiveTest.java +++ b/enabler/test/de/schildbach/pte/live/ParisProviderLiveTest.java @@ -22,6 +22,8 @@ import static org.junit.Assert.assertTrue; import java.util.Calendar; import java.util.Date; +import java.util.LinkedList; +import java.util.List; import org.junit.Test; @@ -228,8 +230,10 @@ public class ParisProviderLiveTest extends AbstractProviderLiveTest @Test public void queryTripNoSolution() throws Exception { + final List emptyList = new LinkedList(); + final QueryTripsResult result = queryTrips(new Location(LocationType.STATION, "stop_point:RTP:SP:3926410"), null, new Location( - LocationType.STATION, "stop_point:RTP:SP:3926410"), new Date(), true, Product.ALL, WalkSpeed.NORMAL, Accessibility.NEUTRAL); + LocationType.STATION, "stop_point:RTP:SP:3926410"), new Date(), true, emptyList, WalkSpeed.NORMAL, Accessibility.NEUTRAL); assertEquals(QueryTripsResult.Status.NO_TRIPS, result.status);