NotifyResource extends AuthenticatedResource { String toTweet(ServiceAlertBean bean) { return TwitterServiceImpl.toTweet(bean, _notificationService.getNotificationStrategy()); }  @Autowired void setTransitDataService(TransitDataService transitDataService); @Autowired void setNotificationService(NotificationService notificationService); @GET @Produces("application/json") Response tweetServiceAlert(@QueryParam("serviceAlertId") String serviceAlertId);  }
@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")); assertEquals(null, resource.toTweet(bean)); SituationAffectsBean affects = new SituationAffectsBean(); affects.setAgencyId("ACTA"); bean.setAllAffects(new ArrayList<SituationAffectsBean>()); bean.getAllAffects().add(affects); assertEquals("Snow Routes in Affect", resource.toTweet(bean)); affects.setRouteId("A1"); assertEquals("Snow Routes in Affect affecting route(s) ACTA_A1", resource.toTweet(bean)); 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) { } affects.setStopId("ACTA_6968"); assertEquals("Snow Routes in Affect affecting route(s) ACTA_A1 and stop(s) ACTA_6968", resource.toTweet(bean)); 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)); 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)); 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)); 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)); }