Search in sources :

Example 1 with CsvEntityIOException

use of org.onebusaway.csv_entities.exceptions.CsvEntityIOException in project onebusaway-gtfs-modules by OneBusAway.

the class GtfsReaderTest method testFeedInfo.

@Test
public void testFeedInfo() throws CsvEntityIOException, IOException {
    GtfsReader reader = new GtfsReader();
    StringBuilder b = new StringBuilder();
    b.append("feed_publisher_name,feed_publisher_url,feed_lang,feed_start_date,feed_end_date,feed_version\n");
    b.append("Test,http://test/,en,20110928,20120131,1.0\n");
    reader.readEntities(FeedInfo.class, new StringReader(b.toString()));
    FeedInfo feedInfo = reader.getEntityStore().getEntityForId(FeedInfo.class, 1);
    assertEquals("Test", feedInfo.getPublisherName());
    assertEquals("http://test/", feedInfo.getPublisherUrl());
    assertEquals("en", feedInfo.getLang());
    assertEquals(new ServiceDate(2011, 9, 28), feedInfo.getStartDate());
    assertEquals(new ServiceDate(2012, 1, 31), feedInfo.getEndDate());
    assertEquals("1.0", feedInfo.getVersion());
    /**
     * Test with a missing "field_publisher_url" field
     */
    b = new StringBuilder();
    b.append("feed_publisher_name\n");
    b.append("Test\n");
    try {
        reader.readEntities(FeedInfo.class, new StringReader(b.toString()));
        fail();
    } catch (CsvEntityIOException ex) {
        MissingRequiredFieldException ex2 = (MissingRequiredFieldException) ex.getCause();
        assertEquals(FeedInfo.class, ex2.getEntityType());
        assertEquals("feed_publisher_url", ex2.getFieldName());
    }
    /**
     * Test with a missing "field_lang" field
     */
    b = new StringBuilder();
    b.append("feed_publisher_name,feed_publisher_url\n");
    b.append("Test,http://test/\n");
    try {
        reader.readEntities(FeedInfo.class, new StringReader(b.toString()));
        fail();
    } catch (CsvEntityIOException ex) {
        MissingRequiredFieldException ex2 = (MissingRequiredFieldException) ex.getCause();
        assertEquals(FeedInfo.class, ex2.getEntityType());
        assertEquals("feed_lang", ex2.getFieldName());
    }
    /**
     * Test with a malformed "feed_start_date" field
     */
    b = new StringBuilder();
    b.append("feed_publisher_name,feed_publisher_url,feed_lang,feed_start_date\n");
    b.append("Test,http://test/,en,2011XX01\n");
    try {
        reader.readEntities(FeedInfo.class, new StringReader(b.toString()));
        fail();
    } catch (CsvEntityIOException ex) {
        InvalidValueEntityException ex2 = (InvalidValueEntityException) ex.getCause();
        assertEquals(FeedInfo.class, ex2.getEntityType());
        assertEquals("feed_start_date", ex2.getFieldName());
        assertEquals("2011XX01", ex2.getFieldValue());
    }
    /**
     * Test with a malformed "feed_end_date" field
     */
    b = new StringBuilder();
    b.append("feed_publisher_name,feed_publisher_url,feed_lang,feed_end_date\n");
    b.append("Test,http://test/,en,2011XX01\n");
    try {
        reader.readEntities(FeedInfo.class, new StringReader(b.toString()));
        fail();
    } catch (CsvEntityIOException ex) {
        InvalidValueEntityException ex2 = (InvalidValueEntityException) ex.getCause();
        assertEquals(FeedInfo.class, ex2.getEntityType());
        assertEquals("feed_end_date", ex2.getFieldName());
        assertEquals("2011XX01", ex2.getFieldValue());
    }
}
Also used : ServiceDate(org.onebusaway.gtfs.model.calendar.ServiceDate) MissingRequiredFieldException(org.onebusaway.csv_entities.exceptions.MissingRequiredFieldException) CsvEntityIOException(org.onebusaway.csv_entities.exceptions.CsvEntityIOException) StringReader(java.io.StringReader) FeedInfo(org.onebusaway.gtfs.model.FeedInfo) InvalidValueEntityException(org.onebusaway.csv_entities.exceptions.InvalidValueEntityException) Test(org.junit.Test)

Example 2 with CsvEntityIOException

use of org.onebusaway.csv_entities.exceptions.CsvEntityIOException 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)

Aggregations

Test (org.junit.Test)2 CsvEntityIOException (org.onebusaway.csv_entities.exceptions.CsvEntityIOException)2 MissingRequiredFieldException (org.onebusaway.csv_entities.exceptions.MissingRequiredFieldException)2 StringReader (java.io.StringReader)1 InvalidValueEntityException (org.onebusaway.csv_entities.exceptions.InvalidValueEntityException)1 AgencyAndId (org.onebusaway.gtfs.model.AgencyAndId)1 FeedInfo (org.onebusaway.gtfs.model.FeedInfo)1 ServiceDate (org.onebusaway.gtfs.model.calendar.ServiceDate)1 AgencyNotFoundForRouteException (org.onebusaway.gtfs.serialization.mappings.AgencyNotFoundForRouteException)1 GtfsMutableRelationalDao (org.onebusaway.gtfs.services.GtfsMutableRelationalDao)1 MockGtfs (org.onebusaway.gtfs.services.MockGtfs)1