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