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());
}
}
Aggregations