use of org.onebusaway.transit_data_federation.services.service_alerts.ServiceAlerts.Consequence in project onebusaway-application-modules by camsys.
the class GtfsRealtimeAlertLibraryTest method testGetAlertAsServiceAlert.
@Test
public void testGetAlertAsServiceAlert() {
AgencyAndId alertId = new AgencyAndId("1", "A1");
Alert.Builder alert = Alert.newBuilder();
GtfsRealtime.TimeRange.Builder timeRange = GtfsRealtime.TimeRange.newBuilder();
timeRange.setStart(1L);
timeRange.setStart(2L);
alert.addActivePeriod(timeRange);
EntitySelector.Builder entitySelector = EntitySelector.newBuilder();
entitySelector.setAgencyId("agencyId");
entitySelector.setRouteId("routeId");
entitySelector.setStopId("stopId");
TripDescriptor.Builder tripDescriptor = TripDescriptor.newBuilder();
tripDescriptor.setTripId("tripId");
entitySelector.setTrip(tripDescriptor);
alert.addInformedEntity(entitySelector);
alert.setCause(Alert.Cause.ACCIDENT);
alert.setEffect(Alert.Effect.DETOUR);
TranslatedString.Builder headerTexts = TranslatedString.newBuilder();
Translation.Builder headerText = Translation.newBuilder();
headerText.setLanguage("en");
headerText.setText("Summary");
headerTexts.addTranslation(headerText);
alert.setHeaderText(headerTexts);
TranslatedString.Builder descriptionTexts = TranslatedString.newBuilder();
Translation.Builder descriptionText = Translation.newBuilder();
descriptionText.setLanguage("fr");
descriptionText.setText("Description");
descriptionTexts.addTranslation(descriptionText);
alert.setDescriptionText(descriptionTexts);
TranslatedString.Builder urls = TranslatedString.newBuilder();
Translation.Builder url = Translation.newBuilder();
url.setLanguage("es");
url.setText("http://something/");
urls.addTranslation(url);
alert.setUrl(urls);
Mockito.when(_entitySource.getRouteId("routeId")).thenReturn(ServiceAlertLibrary.id("1", "routeId"));
Mockito.when(_entitySource.getStopId("stopId")).thenReturn(ServiceAlertLibrary.id("2", "stopId"));
Mockito.when(_entitySource.getTripId("tripId")).thenReturn(ServiceAlertLibrary.id("3", "tripId"));
ServiceAlert.Builder serviceAlert = _library.getAlertAsServiceAlert(alertId, alert.build());
Id id = serviceAlert.getId();
assertEquals("1", id.getAgencyId());
assertEquals("A1", id.getId());
assertEquals(1, serviceAlert.getAffectsCount());
Affects affects = serviceAlert.getAffects(0);
assertEquals("agencyId", affects.getAgencyId());
assertEquals("1", affects.getRouteId().getAgencyId());
assertEquals("routeId", affects.getRouteId().getId());
assertEquals("2", affects.getStopId().getAgencyId());
assertEquals("stopId", affects.getStopId().getId());
assertEquals("3", affects.getTripId().getAgencyId());
assertEquals("tripId", affects.getTripId().getId());
assertEquals(ServiceAlert.Cause.ACCIDENT, serviceAlert.getCause());
assertEquals(1, serviceAlert.getConsequenceCount());
Consequence consequence = serviceAlert.getConsequence(0);
assertEquals(Effect.DETOUR, consequence.getEffect());
ServiceAlerts.TranslatedString summaries = serviceAlert.getSummary();
assertEquals(1, summaries.getTranslationCount());
ServiceAlerts.TranslatedString.Translation summary = summaries.getTranslation(0);
assertEquals("en", summary.getLanguage());
assertEquals("Summary", summary.getText());
ServiceAlerts.TranslatedString descriptions = serviceAlert.getDescription();
assertEquals(1, descriptions.getTranslationCount());
ServiceAlerts.TranslatedString.Translation description = descriptions.getTranslation(0);
assertEquals("fr", description.getLanguage());
assertEquals("Description", description.getText());
ServiceAlerts.TranslatedString alertUrls = serviceAlert.getUrl();
assertEquals(1, alertUrls.getTranslationCount());
ServiceAlerts.TranslatedString.Translation alertUrl = alertUrls.getTranslation(0);
assertEquals("es", alertUrl.getLanguage());
assertEquals("http://something/", alertUrl.getText());
}
use of org.onebusaway.transit_data_federation.services.service_alerts.ServiceAlerts.Consequence in project onebusaway-application-modules by camsys.
the class GtfsRealtimeAlertLibrary method getAlertAsServiceAlert.
public ServiceAlert.Builder getAlertAsServiceAlert(AgencyAndId id, Alert alert, Map agencyIdMap) {
ServiceAlert.Builder b = ServiceAlert.newBuilder();
b.setCreationTime(SystemTime.currentTimeMillis());
b.setModifiedTime(SystemTime.currentTimeMillis());
b.setId(ServiceAlertLibrary.id(id));
for (GtfsRealtime.TimeRange range : alert.getActivePeriodList()) {
ServiceAlerts.TimeRange.Builder rangeBuilder = ServiceAlerts.TimeRange.newBuilder();
if (range.hasStart())
rangeBuilder.setStart(range.getStart());
if (range.hasEnd())
rangeBuilder.setEnd(range.getEnd());
b.addActiveWindow(rangeBuilder);
}
if (alert.hasCause())
b.setCause(convertCause(alert.getCause()));
if (alert.hasHeaderText())
b.setSummary(convertTranslatedString(alert.getHeaderText()));
if (alert.hasDescriptionText())
b.setDescription(convertTranslatedString(alert.getDescriptionText()));
if (alert.hasEffect()) {
Consequence.Builder consequence = Consequence.newBuilder();
consequence.setEffect(convertEffect(alert.getEffect()));
b.addConsequence(consequence);
}
for (EntitySelector selector : alert.getInformedEntityList()) {
Affects.Builder affects = getEntitySelectorAsAffects(selector, agencyIdMap);
b.addAffects(affects);
}
if (alert.hasUrl())
b.setUrl(convertTranslatedString(alert.getUrl()));
return b;
}
Aggregations