/* * Copyright 2010 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 static junit.framework.Assert.assertNotNull; import static junit.framework.Assert.assertTrue; import java.util.regex.Matcher; import org.junit.Test; /** * @author Andreas Schildbach */ public class BahnProviderTest { @Test public void connectionUebergang() { assertFineConnectionDetails("" // + "Berlin Hbf
\n" // + "Übergang\n" // + "
\n" // + "Berlin-Lichtenberg
"); } @Test public void departureWithPlatform() { assertFineDepartures("" // + "\n" // + "S 1\n" // + "\n" // + ">>\n" // + "Gänserndorf\n" // + "
\n" // + "10:42Gl. 1"); } @Test public void departureWithOnTime() { assertFineDepartures("" // + "\n" // + "RE 38148\n" // + "\n" // + ">>\n" // + "Rathenow\n" // + "
\n" // + "21:58 pünktl., Gl. 13"); } @Test public void departureWithMessage() { assertFineDepartures("" // + "\n" // + "ICE 824\n" // + "\n" // + ">>\n" // + "Dortmund Hbf\n" // + "
\n" // + "07:02 ca. +5, Fährt heute nur bis Düsseldorf Hbf, Gl. 10"); } private void assertFineConnectionDetails(String s) { Matcher m = BahnProvider.P_CONNECTION_DETAILS_FINE.matcher(s); assertTrue(m.matches()); // ParserUtils.printGroups(m); } private void assertFineDepartures(String s) { Matcher m = BahnProvider.P_DEPARTURES_FINE.matcher(s); assertTrue(m.matches()); ParserUtils.printGroups(m); assertNotNull(m.group(1)); // line assertNotNull(m.group(2)); // destination assertNotNull(m.group(3)); // time assertNotNull(m.group(6)); // departure } }