Search in sources :

Example 1 with NotificationServiceImpl

use of org.onebusaway.admin.service.impl.NotificationServiceImpl in project onebusaway-application-modules by camsys.

the class NotifyResourceTest method testToTweet.

@Test
public void testToTweet() {
    ServiceAlertBean bean = null;
    NotificationServiceImpl nsi = new NotificationServiceImpl();
    NotificationStrategy ns = new TestNotificationStrategy();
    nsi.setNotificationStrategy(ns);
    NotifyResource resource = new NotifyResource();
    resource.setNotificationService(nsi);
    assertNull(resource.toTweet(bean));
    bean = new ServiceAlertBean();
    assertNull(resource.toTweet(bean));
    bean.setSummaries(new ArrayList<NaturalLanguageStringBean>());
    bean.getSummaries().add(createNLS("Snow Routes in Affect"));
    // service alert has no affects clause, nothing to do
    assertEquals(null, resource.toTweet(bean));
    SituationAffectsBean affects = new SituationAffectsBean();
    affects.setAgencyId("ACTA");
    bean.setAllAffects(new ArrayList<SituationAffectsBean>());
    bean.getAllAffects().add(affects);
    // we don't include agency in tweet -- it will be obvious from the twitter handle
    assertEquals("Snow Routes in Affect", resource.toTweet(bean));
    // add a single route
    affects.setRouteId("A1");
    assertEquals("Snow Routes in Affect affecting route(s) ACTA_A1", resource.toTweet(bean));
    // add a stop
    affects = new SituationAffectsBean();
    affects.setAgencyId("ACTA");
    bean.getAllAffects().add(affects);
    affects.setStopId("Water and Blowers");
    try {
        assertEquals("Snow Routes in Affect affecting route(s) A1 and stop(s) Water and Blowers", resource.toTweet(bean));
        fail("expected IllegalArgumentException");
    } catch (IllegalArgumentException iae) {
    // pass
    }
    affects.setStopId("ACTA_6968");
    assertEquals("Snow Routes in Affect affecting route(s) ACTA_A1 and stop(s) ACTA_6968", resource.toTweet(bean));
    // add another route
    affects = new SituationAffectsBean();
    affects.setAgencyId("ACTA");
    bean.getAllAffects().add(affects);
    affects.setRouteId("B2");
    assertEquals("Snow Routes in Affect affecting route(s) ACTA_A1, ACTA_B2 and stop(s) ACTA_6968", resource.toTweet(bean));
    // add another stop
    affects = new SituationAffectsBean();
    affects.setAgencyId("ACTA");
    bean.getAllAffects().add(affects);
    affects.setStopId("ACTA_4370");
    assertEquals("Snow Routes in Affect affecting route(s) ACTA_A1, ACTA_B2 and stop(s) ACTA_6968, ACTA_4370", resource.toTweet(bean));
    // clear out routes, add a single stop
    affects = new SituationAffectsBean();
    affects.setAgencyId("ACTA");
    bean.setAllAffects(new ArrayList<SituationAffectsBean>());
    bean.getAllAffects().add(affects);
    affects.setStopId("ACTA_4370");
    assertEquals("Snow Routes in Affect affecting stop(s) ACTA_4370", resource.toTweet(bean));
    // add another stop
    affects = new SituationAffectsBean();
    affects.setAgencyId("ACTA");
    bean.getAllAffects().add(affects);
    affects.setStopId("ACTA_6968");
    assertEquals("Snow Routes in Affect affecting stop(s) ACTA_4370, ACTA_6968", resource.toTweet(bean));
// we don't support trip level tweets
}
Also used : SituationAffectsBean(org.onebusaway.transit_data.model.service_alerts.SituationAffectsBean) NaturalLanguageStringBean(org.onebusaway.transit_data.model.service_alerts.NaturalLanguageStringBean) ServiceAlertBean(org.onebusaway.transit_data.model.service_alerts.ServiceAlertBean) NotificationStrategy(org.onebusaway.presentation.impl.service_alerts.NotificationStrategy) NotificationServiceImpl(org.onebusaway.admin.service.impl.NotificationServiceImpl) Test(org.junit.Test)

Aggregations

Test (org.junit.Test)1 NotificationServiceImpl (org.onebusaway.admin.service.impl.NotificationServiceImpl)1 NotificationStrategy (org.onebusaway.presentation.impl.service_alerts.NotificationStrategy)1 NaturalLanguageStringBean (org.onebusaway.transit_data.model.service_alerts.NaturalLanguageStringBean)1 ServiceAlertBean (org.onebusaway.transit_data.model.service_alerts.ServiceAlertBean)1 SituationAffectsBean (org.onebusaway.transit_data.model.service_alerts.SituationAffectsBean)1