From 50cc56d6ab98e68e5880d7416e027e89c987ac32 Mon Sep 17 00:00:00 2001 From: "andreas.schildbach" Date: Fri, 10 Sep 2010 12:47:28 +0000 Subject: [PATCH] fixed parsing of departure with ersatzzug message git-svn-id: https://public-transport-enabler.googlecode.com/svn/trunk@156 0924bc21-9374-b0fa-ee44-9ff1593b38f0 --- src/de/schildbach/pte/BahnProvider.java | 1 + test/de/schildbach/pte/BahnProviderTest.java | 22 +++++++++++++++++++- 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/src/de/schildbach/pte/BahnProvider.java b/src/de/schildbach/pte/BahnProvider.java index 97f1ec35..1d7c2cf4 100644 --- a/src/de/schildbach/pte/BahnProvider.java +++ b/src/de/schildbach/pte/BahnProvider.java @@ -458,6 +458,7 @@ public final class BahnProvider implements NetworkProvider + "(?:, ([^<]*))?" // message + "(?:(?:, )?(?:heute )?(Gl\\. " + ParserUtils.P_PLATFORM + ")(?:\\s*)?)?" // position + "(?:,
]*>[^<]*)?" // (ersatzzug message) + + "(?:,
[^<]*]*>[^<]*)?" // (ersatzzug message) , Pattern.DOTALL); private static final Pattern P_DEPARTURES_URI_STATION_ID = Pattern.compile("input=(\\d+)"); diff --git a/test/de/schildbach/pte/BahnProviderTest.java b/test/de/schildbach/pte/BahnProviderTest.java index 1c935c94..786f9722 100644 --- a/test/de/schildbach/pte/BahnProviderTest.java +++ b/test/de/schildbach/pte/BahnProviderTest.java @@ -66,6 +66,7 @@ public class BahnProviderTest + "
\n" // + "21:58 pünktl., Gl. 13"); + assertNotNull(m.group(4)); // onTime assertNotNull(m.group(7)); // position } @@ -81,6 +82,7 @@ public class BahnProviderTest + "
\n" // + "07:02 ca. +5, Fährt heute nur bis Düsseldorf Hbf, Gl. 10"); + assertNotNull(m.group(5)); // delay assertNotNull(m.group(6)); // message assertNotNull(m.group(7)); // position } @@ -97,6 +99,7 @@ public class BahnProviderTest + "
\n" // + "17:10 pünktl.heute Gl. 7 "); + assertNotNull(m.group(4)); // onTime assertNotNull(m.group(7)); // position } @@ -112,6 +115,7 @@ public class BahnProviderTest + "
\n" // + "19:57 pünktl., Änderung im Zuglauf!heute Gl. 7 "); + assertNotNull(m.group(4)); // onTime assertNotNull(m.group(6)); // message assertNotNull(m.group(7)); // position } @@ -162,6 +166,22 @@ public class BahnProviderTest assertNotNull(m.group(7)); // position } + @Test + public void departureWithErsatzzugMessage() + { + final Matcher m = assertFineDepartures("" // + + "\n" // + + "RB 93328\n" // + + "\n" // + + ">>\n" // + + "München Hbf Gl.27-36\n" // + + "
\n" // + + "14:49 pünktl., Gl. 1,
Ersatzzug fürRB 5416"); + + assertNotNull(m.group(4)); // onTime + assertNotNull(m.group(7)); // position + } + private void assertFineConnectionDetails(String s) { Matcher m = BahnProvider.P_CONNECTION_DETAILS_FINE.matcher(s); @@ -175,7 +195,7 @@ public class BahnProviderTest Matcher m = BahnProvider.P_DEPARTURES_FINE.matcher(s); assertTrue(m.matches()); - ParserUtils.printGroups(m); + // ParserUtils.printGroups(m); assertNotNull(m.group(1)); // line assertNotNull(m.group(2)); // destination