RTA Chicago.

This commit is contained in:
Andreas Schildbach 2016-07-28 20:02:33 +02:00
parent de6ae1a025
commit 2f40556e5a
3 changed files with 162 additions and 1 deletions

View file

@ -77,7 +77,7 @@ public enum NetworkId
JET,
// United States
SF, SEPTA,
SF, SEPTA, RTACHICAGO,
// Canada
ONTARIO, QUEBEC,

View file

@ -0,0 +1,58 @@
/*
* Copyright 2016 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 javax.annotation.Nullable;
import de.schildbach.pte.dto.Line;
import de.schildbach.pte.dto.Product;
/**
* @author Andreas Schildbach
*/
public class RtaChicagoProvider extends AbstractEfaProvider
{
private final static String API_BASE = "http://tripplanner.rtachicago.com/ccg3/";
// "http://elb-jpinstances-1463028547.us-east-1.elb.amazonaws.com/ccg3/";
public RtaChicagoProvider()
{
super(NetworkId.RTACHICAGO, API_BASE);
setLanguage("en");
setTimeZone("America/Chicago");
}
@Override
protected Line parseLine(final @Nullable String id, final @Nullable String network, final @Nullable String mot, final @Nullable String symbol,
final @Nullable String name, final @Nullable String longName, final @Nullable String trainType, final @Nullable String trainNum,
final @Nullable String trainName)
{
if ("0".equals(mot))
{
if ("UP-N".equals(symbol)) // Union Pacific North Line
return new Line(id, network, Product.SUBURBAN_TRAIN, "UP-N");
if ("UP-NW".equals(symbol)) // Union Pacific Northwest Line
return new Line(id, network, Product.SUBURBAN_TRAIN, "UP-N");
if ("UP-W".equals(symbol)) // Union Pacific West Line
return new Line(id, network, Product.SUBURBAN_TRAIN, "UP-NW");
}
return super.parseLine(id, network, mot, symbol, name, longName, trainType, trainNum, trainName);
}
}

View file

@ -0,0 +1,103 @@
/*
* Copyright 2010-2015 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.live;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import java.util.Date;
import org.junit.Test;
import de.schildbach.pte.NetworkProvider.Accessibility;
import de.schildbach.pte.NetworkProvider.WalkSpeed;
import de.schildbach.pte.RtaChicagoProvider;
import de.schildbach.pte.dto.Location;
import de.schildbach.pte.dto.LocationType;
import de.schildbach.pte.dto.NearbyLocationsResult;
import de.schildbach.pte.dto.Product;
import de.schildbach.pte.dto.QueryDeparturesResult;
import de.schildbach.pte.dto.QueryTripsResult;
import de.schildbach.pte.dto.SuggestLocationsResult;
/**
* @author Andreas Schildbach
*/
public class RtaChicagoProviderLiveTest extends AbstractProviderLiveTest
{
public RtaChicagoProviderLiveTest()
{
super(new RtaChicagoProvider());
}
@Test
public void nearbyStations() throws Exception
{
final NearbyLocationsResult result = queryNearbyStations(new Location(LocationType.STATION, "10101442"));
print(result);
}
@Test
public void nearbyStationsByCoordinate() throws Exception
{
final NearbyLocationsResult result = queryNearbyStations(Location.coord(41870003, -88156946));
print(result);
}
@Test
public void queryDepartures() throws Exception
{
final QueryDeparturesResult result = queryDepartures("10101442", false);
print(result);
}
@Test
public void suggestLocationsIncomplete() throws Exception
{
final SuggestLocationsResult result = suggestLocations("Station");
print(result);
}
@Test
public void shortTrip() throws Exception
{
final QueryTripsResult result = queryTrips(new Location(LocationType.STATION, "10101442"), null, new Location(LocationType.STATION, "10101111"),
new Date(), true, Product.ALL, WalkSpeed.NORMAL, Accessibility.NEUTRAL);
print(result);
assertEquals(QueryTripsResult.Status.OK, result.status);
assertTrue(result.trips.size() > 0);
if (!result.context.canQueryLater())
return;
final QueryTripsResult laterResult = queryMoreTrips(result.context, true);
print(laterResult);
if (!laterResult.context.canQueryLater())
return;
final QueryTripsResult later2Result = queryMoreTrips(laterResult.context, true);
print(later2Result);
if (!later2Result.context.canQueryEarlier())
return;
final QueryTripsResult earlierResult = queryMoreTrips(later2Result.context, false);
print(earlierResult);
}
}