Search in sources :

Example 41 with AgencyAndId

use of org.onebusaway.gtfs.model.AgencyAndId in project onebusaway-gtfs-modules by OneBusAway.

the class GtfsReaderTest method testDefaultAgencyForRoutes.

@Test
public void testDefaultAgencyForRoutes() throws IOException {
    MockGtfs gtfs = MockGtfs.create();
    gtfs.putAgencies(1);
    gtfs.putRoutes(1);
    gtfs.putTrips(1, "r0", "sid0");
    gtfs.putStops(1);
    gtfs.putStopTimes("t0", "s0");
    {
        GtfsMutableRelationalDao dao = gtfs.read(newReader("tacos"));
        assertNotNull(dao.getRouteForId(new AgencyAndId("a0", "r0")));
    }
    {
        gtfs.putAgencies(2);
        try {
            gtfs.read(newReader("tacos"));
            fail();
        } catch (CsvEntityIOException e) {
            MissingRequiredFieldException ex = (MissingRequiredFieldException) e.getCause();
            assertEquals("agency_id", ex.getFieldName());
            assertEquals(Route.class, ex.getEntityType());
        }
    }
    {
        gtfs.putAgencies(2);
        gtfs.putRoutes(1, "agency_id=a1");
        GtfsMutableRelationalDao dao = gtfs.read(newReader("tacos"));
        assertNotNull(dao.getRouteForId(new AgencyAndId("a1", "r0")));
    }
    {
        gtfs.putAgencies(2);
        gtfs.putRoutes(1, "agency_id=a2");
        try {
            gtfs.read(newReader("tacos"));
            fail();
        } catch (CsvEntityIOException e) {
            assertTrue(e.getCause() instanceof AgencyNotFoundForRouteException);
        }
    }
}
Also used : GtfsMutableRelationalDao(org.onebusaway.gtfs.services.GtfsMutableRelationalDao) AgencyAndId(org.onebusaway.gtfs.model.AgencyAndId) MissingRequiredFieldException(org.onebusaway.csv_entities.exceptions.MissingRequiredFieldException) CsvEntityIOException(org.onebusaway.csv_entities.exceptions.CsvEntityIOException) MockGtfs(org.onebusaway.gtfs.services.MockGtfs) AgencyNotFoundForRouteException(org.onebusaway.gtfs.serialization.mappings.AgencyNotFoundForRouteException) Test(org.junit.Test)

Example 42 with AgencyAndId

use of org.onebusaway.gtfs.model.AgencyAndId in project onebusaway-gtfs-modules by OneBusAway.

the class ServiceIdIntervalsTest method test.

@Test
public void test() {
    TimeZone tz = TimeZone.getTimeZone("America/Los_Angeles");
    AgencyAndId sid1 = new AgencyAndId("A", "1");
    AgencyAndId sid2 = new AgencyAndId("A", "2");
    AgencyAndId sid3 = new AgencyAndId("B", "1");
    LocalizedServiceId lsid1 = new LocalizedServiceId(sid1, tz);
    LocalizedServiceId lsid2 = new LocalizedServiceId(sid2, tz);
    LocalizedServiceId lsid3 = new LocalizedServiceId(sid3, tz);
    ServiceIdIntervals intervals = new ServiceIdIntervals();
    intervals.addStopTime(lsid1, 100, 200);
    intervals.addStopTime(lsid1, 150, 250);
    intervals.addStopTime(lsid1, 160, 170);
    intervals.addStopTime(lsid2, 110, 190);
    intervals.addStopTime(lsid2, 100, 200);
    intervals.addStopTime(lsid3, 50, 100);
    ServiceInterval interval = intervals.getIntervalForServiceId(lsid1);
    assertEquals(100, interval.getMinArrival());
    assertEquals(160, interval.getMaxArrival());
    assertEquals(170, interval.getMinDeparture());
    assertEquals(250, interval.getMaxDeparture());
    interval = intervals.getIntervalForServiceId(lsid2);
    assertEquals(100, interval.getMinArrival());
    assertEquals(110, interval.getMaxArrival());
    assertEquals(190, interval.getMinDeparture());
    assertEquals(200, interval.getMaxDeparture());
    interval = intervals.getIntervalForServiceId(lsid3);
    assertEquals(50, interval.getMinArrival());
    assertEquals(50, interval.getMaxArrival());
    assertEquals(100, interval.getMinDeparture());
    assertEquals(100, interval.getMaxDeparture());
}
Also used : TimeZone(java.util.TimeZone) AgencyAndId(org.onebusaway.gtfs.model.AgencyAndId) Test(org.junit.Test)

Example 43 with AgencyAndId

use of org.onebusaway.gtfs.model.AgencyAndId in project onebusaway-gtfs-modules by OneBusAway.

the class HibernateGtfsRelationalImplBartTest method testFrequenciesForTrip.

@Test
public void testFrequenciesForTrip() {
    Trip trip = _dao.getTripForId(new AgencyAndId("AirBART", "M-FSAT1DN"));
    List<Frequency> frequencies = _dao.getFrequenciesForTrip(trip);
    assertEquals(1, frequencies.size());
    Frequency frequency = frequencies.get(0);
    assertEquals(5 * 60 * 60, frequency.getStartTime());
    assertEquals(6 * 60 * 60, frequency.getEndTime());
    assertEquals(trip, frequency.getTrip());
    assertEquals(1200, frequency.getHeadwaySecs());
}
Also used : Trip(org.onebusaway.gtfs.model.Trip) AgencyAndId(org.onebusaway.gtfs.model.AgencyAndId) Frequency(org.onebusaway.gtfs.model.Frequency) Test(org.junit.Test)

Example 44 with AgencyAndId

use of org.onebusaway.gtfs.model.AgencyAndId in project onebusaway-gtfs-modules by OneBusAway.

the class AbstractIdentifiableSingleEntityMergeStrategy method rename.

/**
   * Rename the id of the specified identity to avoid an raw GTFS identifier
   * collision in the merged output feed.
   * 
   * @param context
   * @param entity
   */
@SuppressWarnings("unchecked")
protected void rename(GtfsMergeContext context, IdentityBean<?> entity) {
    Object id = entity.getId();
    if (id != null && id instanceof AgencyAndId) {
        IdentityBean<AgencyAndId> bean = (IdentityBean<AgencyAndId>) entity;
        AgencyAndId agencyAndId = bean.getId();
        AgencyAndId newAgencyAndId;
        if (this.getDuplicateRenamingStrategy() == EDuplicateRenamingStrategy.AGENCY) {
            newAgencyAndId = MergeSupport.renameAgencyAndId(agencyAndId.getAgencyId() + "-", agencyAndId);
            _log.info(agencyAndId.toString() + " renamed(1) to " + newAgencyAndId);
        } else {
            newAgencyAndId = MergeSupport.renameAgencyAndId(context, agencyAndId);
            _log.info(agencyAndId.toString() + " renamed(2) to " + newAgencyAndId);
        }
        bean.setId(newAgencyAndId);
    }
}
Also used : AgencyAndId(org.onebusaway.gtfs.model.AgencyAndId) IdentityBean(org.onebusaway.gtfs.model.IdentityBean)

Example 45 with AgencyAndId

use of org.onebusaway.gtfs.model.AgencyAndId in project onebusaway-gtfs-modules by OneBusAway.

the class GtfsMappingTest method testFrequency.

@Test
public void testFrequency() throws CsvEntityIOException, IOException {
    _reader.setDefaultAgencyId("1");
    Trip trip = new Trip();
    trip.setId(new AgencyAndId("1", "trip"));
    _reader.injectEntity(trip);
    StringBuilder b = new StringBuilder();
    b.append("trip_id,start_time,end_time,headway_secs,exact_times\n");
    b.append("trip,08:30:00,09:45:00,300,1\n");
    _reader.readEntities(Frequency.class, new StringReader(b.toString()));
    Frequency frequency = _dao.getFrequencyForId(1);
    assertEquals(30600, frequency.getStartTime());
    assertEquals(35100, frequency.getEndTime());
    assertEquals(1, frequency.getExactTimes());
    assertEquals(300, frequency.getHeadwaySecs());
    assertSame(trip, frequency.getTrip());
}
Also used : Trip(org.onebusaway.gtfs.model.Trip) AgencyAndId(org.onebusaway.gtfs.model.AgencyAndId) StringReader(java.io.StringReader) Frequency(org.onebusaway.gtfs.model.Frequency) Test(org.junit.Test)

Aggregations

AgencyAndId (org.onebusaway.gtfs.model.AgencyAndId)102 Test (org.junit.Test)63 Trip (org.onebusaway.gtfs.model.Trip)37 ServiceDate (org.onebusaway.gtfs.model.calendar.ServiceDate)25 Stop (org.onebusaway.gtfs.model.Stop)24 ServiceCalendar (org.onebusaway.gtfs.model.ServiceCalendar)17 ServiceCalendarDate (org.onebusaway.gtfs.model.ServiceCalendarDate)16 ArrayList (java.util.ArrayList)15 Route (org.onebusaway.gtfs.model.Route)15 StopTime (org.onebusaway.gtfs.model.StopTime)15 GtfsMutableRelationalDao (org.onebusaway.gtfs.services.GtfsMutableRelationalDao)15 Agency (org.onebusaway.gtfs.model.Agency)13 ShapePoint (org.onebusaway.gtfs.model.ShapePoint)12 GtfsRelationalDao (org.onebusaway.gtfs.services.GtfsRelationalDao)11 HashSet (java.util.HashSet)10 GtfsRelationalDaoImpl (org.onebusaway.gtfs.impl.GtfsRelationalDaoImpl)10 List (java.util.List)9 Frequency (org.onebusaway.gtfs.model.Frequency)9 CalendarService (org.onebusaway.gtfs.services.calendar.CalendarService)7 Set (java.util.Set)6