/*
* 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
}
}