mirror of
https://gitlab.com/oeffi/public-transport-enabler.git
synced 2025-07-14 00:30:31 +00:00

git-svn-id: https://public-transport-enabler.googlecode.com/svn/trunk@178 0924bc21-9374-b0fa-ee44-9ff1593b38f0
160 lines
7.9 KiB
Java
160 lines
7.9 KiB
Java
/*
|
||
* 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 <http://www.gnu.org/licenses/>.
|
||
*/
|
||
|
||
package de.schildbach.pte;
|
||
|
||
import static junit.framework.Assert.assertNotNull;
|
||
import static junit.framework.Assert.assertNull;
|
||
import static junit.framework.Assert.assertTrue;
|
||
|
||
import java.util.regex.Matcher;
|
||
|
||
import org.junit.Test;
|
||
|
||
/**
|
||
* @author Andreas Schildbach
|
||
*/
|
||
public class MvvProviderTest
|
||
{
|
||
@Test
|
||
public void trip()
|
||
{
|
||
final Matcher m = assertFineConnectionDetails("" //
|
||
+ "<td colspan=\"4\">ab 04:27 Machern (Sachs) Gleis 2<br />\n" //
|
||
+ "</td>\n" //
|
||
+ "<td width=\"15\" valign=\"middle\">\n" //
|
||
+ "<img src=\"images/means/zug.gif\" alt=\"Zug\" />\n" //
|
||
+ "</td>\n" //
|
||
+ "<td width=\"1\" valign=\"middle\" />\n" //
|
||
+ "<td>MRB 88040 Mitteldeutsche Regiobahn <br />Richtung Leipzig Hbf</td>\n" //
|
||
+ "<td width=\"1\"> </td>\n" //
|
||
+ "<td colspan=\"4\">an 04:47 Leipzig Hbf Gleis 19</td>\n");
|
||
|
||
assertNotNull(m.group(1)); // departureTime
|
||
assertNotNull(m.group(2)); // departure
|
||
assertNotNull(m.group(3)); // product
|
||
}
|
||
|
||
@Test
|
||
public void trip2()
|
||
{
|
||
final Matcher m = assertFineConnectionDetails("" //
|
||
+ "<td colspan=\"4\">ab 09:04 Hauptbahnhof Haupthalle Gleis 26 <a class=\"imgLink\" href=\"XSLT_TRIP_REQUEST2?language=de&tripSelector2=on&sessionID=MVV2_1641919219&requestID=1&tripSelection=on&itdLPxx_view=map_2&itdLPxx_img=FILELOAD?Filename=mvv2_4C4530855.png&itdLPxx_partialRoute=3&imageFormat=PNG&imageWidth=400&imageHeight=300&imageOnly=1&imageNoTiles=1&itdLPxx_usage=departure\"><img src=\"images/pdf.gif\" border=\"0\" alt=\"Karte\" /></a>\n" //
|
||
+ "<br />\n" //
|
||
+ "</td>\n" //
|
||
+ "<td width=\"15\" valign=\"middle\">\n" //
|
||
+ "<img src=\"images/means/zug.gif\" alt=\"Zug\" />\n" //
|
||
+ "</td>\n" //
|
||
+ "<td width=\"1\" valign=\"middle\" />\n" //
|
||
+ "<td>RE 4006 RegionalExpress <br />Richtung Nürnberg Hbf</td>\n" //
|
||
+ "<td width=\"1\"> </td>\n" //
|
||
+ "<td colspan=\"4\">an 10:47 Nürnberg Hbf Gleis 12</td>\n");
|
||
|
||
assertNotNull(m.group(1)); // departureTime
|
||
assertNotNull(m.group(2)); // departure
|
||
assertNotNull(m.group(3)); // product
|
||
}
|
||
|
||
@Test
|
||
public void tripSitzenbleiber()
|
||
{
|
||
final Matcher m = assertFineConnectionDetails("" //
|
||
+ "<td colspan=\"4\">ab Neufahrn <a class=\"imgLink\" href=\"XSLT_TRIP_REQUEST2?language=de&tripSelector2=on&sessionID=MVV2_1678243657&requestID=1&tripSelection=on&itdLPxx_view=map_2&itdLPxx_img=FILELOAD?Filename=mvv2_4C45BE6910.png&itdLPxx_partialRoute=2&imageFormat=PNG&imageWidth=400&imageHeight=300&imageOnly=1&imageNoTiles=1&itdLPxx_usage=departure\"><img src=\"images/pdf.gif\" border=\"0\" alt=\"Karte\" /></a>\n" //
|
||
+ "<br />\n" //
|
||
+ "</td>\n" //
|
||
+ "<td width=\"15\" valign=\"middle\">\n" //
|
||
+ "<img src=\"images/means/seat.gif\" alt=\"Sitzenbleiber\" />\n" //
|
||
+ "</td>\n" //
|
||
+ "<td width=\"1\" valign=\"middle\" />\n" //
|
||
+ "<td>nicht umsteigen</td>\n" //
|
||
+ "<td width=\"1\"> </td>\n" //
|
||
+ "<td colspan=\"4\">an Neufahrn <a class=\"imgLink\" href=\"XSLT_TRIP_REQUEST2?language=de&tripSelector2=on&sessionID=MVV2_1678243657&requestID=1&tripSelection=on&itdLPxx_view=map_2&itdLPxx_img=FILELOAD?Filename=mvv2_4C45BE6911.png&itdLPxx_partialRoute=2&imageFormat=PNG&imageWidth=400&imageHeight=300&imageOnly=1&imageNoTiles=1&command=nop&itdLPxx_usage=arrival\"><img src=\"images/pdf.gif\" border=\"0\" alt=\"Karte\" /></a>\n" //
|
||
+ "</td>\n");
|
||
|
||
assertNull(m.group(1));
|
||
assertNull(m.group(8));
|
||
}
|
||
|
||
@Test
|
||
public void tripWithoutProduct()
|
||
{
|
||
final Matcher m = assertFineConnectionDetails("" //
|
||
+ "<td colspan=\"4\">ab 07:46 Niederstraub. Abzw.Krottenthal <a class=\"imgLink\" href=\"XSLT_TRIP_REQUEST2?language=de&tripSelector3=on&sessionID=MVV1_1237094531&requestID=1&tripSelection=on&itdLPxx_view=map_3&itdLPxx_img=FILELOAD?Filename=mvv1_4C98DF684.png&itdLPxx_partialRoute=4&imageFormat=PNG&imageWidth=400&imageHeight=300&imageOnly=1&imageNoTiles=1&itdLPxx_usage=departure\"><img src=\"images/pdf.gif\" border=\"0\" alt=\"Karte\" /></a>\n" //
|
||
+ "<br />\n" //
|
||
+ "</td>\n" //
|
||
+ "<td width=\"15\" valign=\"middle\"></td>\n" //
|
||
+ "<td width=\"1\" valign=\"middle\" />\n" //
|
||
+ "<td>MVV-Ruftaxi 5621 <br />Richtung Taufkirchen (Vils) Busbahnhof</td>\n" //
|
||
+ "<td width=\"1\"> </td>\n" //
|
||
+ "<td colspan=\"4\">an 07:49 Dickarting <a class=\"imgLink\" href=\"XSLT_TRIP_REQUEST2?language=de&tripSelector3=on&sessionID=MVV1_1237094531&requestID=1&tripSelection=on&itdLPxx_view=map_3&itdLPxx_img=FILELOAD?Filename=mvv1_4C98DF685.png&itdLPxx_partialRoute=4&imageFormat=PNG&imageWidth=400&imageHeight=300&imageOnly=1&imageNoTiles=1&command=nop&itdLPxx_usage=arrival\"><img src=\"images/pdf.gif\" border=\"0\" alt=\"Karte\" /></a>\n" //
|
||
+ "</td>\n");
|
||
|
||
assertNotNull(m.group(1)); // departureTime
|
||
assertNotNull(m.group(2)); // departure
|
||
assertNull(m.group(3)); // product
|
||
}
|
||
|
||
@Test
|
||
public void footway()
|
||
{
|
||
final Matcher m = assertFineConnectionDetails("" //
|
||
+ "<td colspan=\"4\">ab München Infanteriestraße 7 <a class=\"imgLink\" href=\"XSLT_TRIP_REQUEST2?language=de&tripSelector5=on&sessionID=MVV2_3994525266&requestID=1&tripSelection=on&itdLPxx_view=map_5&itdLPxx_img=FILELOAD?Filename=mvv2_4C6916821.png&itdLPxx_partialRoute=1&imageFormat=PNG&imageWidth=400&imageHeight=300&imageOnly=1&imageNoTiles=1&itdLPxx_usage=departure\"><img src=\"images/pdf.gif\" border=\"0\" alt=\"Karte\" /></a>\n" //
|
||
+ "<br />\n" //
|
||
+ "</td>\n" //
|
||
+ "<td width=\"15\" valign=\"middle\">\n" //
|
||
+ "<img src=\"images/means/fuss.gif\" alt=\"Fussweg\" />\n" //
|
||
+ "</td>\n" //
|
||
+ "<td width=\"1\" valign=\"middle\" />\n" //
|
||
+ "<td>Fußweg\n" //
|
||
+ " (ca. 3 Minuten)\n" //
|
||
+ " </td>\n" //
|
||
+ "<td width=\"1\"> </td>\n" //
|
||
+ "<td colspan=\"4\">an Infanteriestraße Süd <a class=\"imgLink\" href=\"XSLT_TRIP_REQUEST2?language=de&tripSelector5=on&sessionID=MVV2_3994525266&requestID=1&tripSelection=on&itdLPxx_view=map_5&itdLPxx_img=FILELOAD?Filename=mvv2_4C6916822.png&itdLPxx_partialRoute=1&imageFormat=PNG&imageWidth=400&imageHeight=300&imageOnly=1&imageNoTiles=1&command=nop&itdLPxx_usage=arrival\"><img src=\"images/pdf.gif\" border=\"0\" alt=\"Karte\" /></a>\n" //
|
||
+ "</td>\n");
|
||
|
||
assertNotNull(m.group(8)); // departure
|
||
}
|
||
|
||
@Test
|
||
public void footway2()
|
||
{
|
||
final Matcher m = assertFineConnectionDetails("" //
|
||
+ "<td colspan=\"4\">ab Weimar Gleis 1<br />\n" //
|
||
+ "</td>\n" //
|
||
+ "<td width=\"15\" valign=\"middle\">\n" //
|
||
+ "<img src=\"images/means/fuss.gif\" alt=\"Fussweg\" />\n" //
|
||
+ "</td>\n" //
|
||
+ "<td width=\"1\" valign=\"middle\" />\n" //
|
||
+ "<td>Fußweg\n" //
|
||
+ "(ca. 2 Minuten)\n" //
|
||
+ "</td>\n" //
|
||
+ "<td width=\"1\"> </td>\n" //
|
||
+ "<td colspan=\"4\">an Weimar Gleis 2</td>\n");
|
||
|
||
assertNotNull(m.group(8)); // departure
|
||
}
|
||
|
||
private Matcher assertFineConnectionDetails(String s)
|
||
{
|
||
Matcher m = MvvProvider.P_CONNECTION_DETAILS_FINE.matcher(s);
|
||
assertTrue(m.matches());
|
||
|
||
// ParserUtils.printGroups(m);
|
||
|
||
return m;
|
||
}
|
||
}
|