From 907fc38dc42921dfe858fd3b7e2caf95e9d5b9e1 Mon Sep 17 00:00:00 2001 From: Andreas Schildbach Date: Thu, 10 Mar 2016 19:14:18 +0100 Subject: [PATCH] Hafas: Handle JSON API error H9380 'Departure/Arrival/Intermediate or equivalent stations def'd more than once'. --- enabler/src/de/schildbach/pte/AbstractHafasProvider.java | 2 ++ .../test/de/schildbach/pte/live/ShProviderLiveTest.java | 8 ++++++++ 2 files changed, 10 insertions(+) diff --git a/enabler/src/de/schildbach/pte/AbstractHafasProvider.java b/enabler/src/de/schildbach/pte/AbstractHafasProvider.java index a9883957..09952d64 100644 --- a/enabler/src/de/schildbach/pte/AbstractHafasProvider.java +++ b/enabler/src/de/schildbach/pte/AbstractHafasProvider.java @@ -1197,6 +1197,8 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider return new QueryTripsResult(header, QueryTripsResult.Status.UNRESOLVABLE_ADDRESS); if ("H9360".equals(err)) // Date outside of the timetable period. return new QueryTripsResult(header, QueryTripsResult.Status.INVALID_DATE); + if ("H9380".equals(err)) // Departure/Arrival/Intermediate or equivalent stations def'd more than once. + return new QueryTripsResult(header, QueryTripsResult.Status.TOO_CLOSE); final String errTxt = svcRes.getString("errTxt"); throw new RuntimeException(err + ": " + errTxt); } diff --git a/enabler/test/de/schildbach/pte/live/ShProviderLiveTest.java b/enabler/test/de/schildbach/pte/live/ShProviderLiveTest.java index 971897b8..e3874ba8 100644 --- a/enabler/test/de/schildbach/pte/live/ShProviderLiveTest.java +++ b/enabler/test/de/schildbach/pte/live/ShProviderLiveTest.java @@ -123,4 +123,12 @@ public class ShProviderLiveTest extends AbstractProviderLiveTest new Date(), true, Product.ALL, WalkSpeed.NORMAL, Accessibility.NEUTRAL); print(result); } + + @Test + public void trip_errorTooClose() throws Exception + { + final Location station = new Location(LocationType.STATION, "003665026"); + final QueryTripsResult result = queryTrips(station, null, station, new Date(), true, Product.ALL, WalkSpeed.NORMAL, Accessibility.NEUTRAL); + assertEquals(QueryTripsResult.Status.TOO_CLOSE, result.status); + } }