Search in sources :

Example 1 with InvalidValueEntityException

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

Aggregations

StringReader (java.io.StringReader)1 Test (org.junit.Test)1 CsvEntityIOException (org.onebusaway.csv_entities.exceptions.CsvEntityIOException)1 InvalidValueEntityException (org.onebusaway.csv_entities.exceptions.InvalidValueEntityException)1 MissingRequiredFieldException (org.onebusaway.csv_entities.exceptions.MissingRequiredFieldException)1 FeedInfo (org.onebusaway.gtfs.model.FeedInfo)1 ServiceDate (org.onebusaway.gtfs.model.calendar.ServiceDate)1