/** Tests the publish/subscribe mechanisms implemented in the {@link TaskEventHandler}. */ @Test public void testEventNotificationManager() { final TaskEventHandler evm = new TaskEventHandler(); final TestEventListener listener = new TestEventListener(); evm.subscribe(listener, StringTaskEvent.class); final StringTaskEvent stringTaskEvent1 = new StringTaskEvent("Test 1"); final StringTaskEvent stringTaskEvent2 = new StringTaskEvent("Test 2"); evm.publish(stringTaskEvent1); evm.publish(new IntegerTaskEvent(5)); assertNotNull(listener.getLastReceivedEvent()); StringTaskEvent receivedStringEvent = (StringTaskEvent) listener.getLastReceivedEvent(); assertEquals(stringTaskEvent1, receivedStringEvent); evm.unsubscribe(listener, StringTaskEvent.class); evm.publish(stringTaskEvent2); assertNotNull(listener.getLastReceivedEvent()); receivedStringEvent = (StringTaskEvent) listener.getLastReceivedEvent(); assertEquals(stringTaskEvent1, receivedStringEvent); }
public void fireEvent(EventObject o) { Iterator it = listeners.iterator(); while (it.hasNext()) { TestEventListener l = (TestEventListener) it.next(); l.handleEvent(o); } }
@Test public void testRemoveSession() throws Exception { String contextPath = ""; String servletMapping = "/server"; int scavengePeriod = 3; AbstractTestServer server = createServer(0, 1, scavengePeriod); ServletContextHandler context = server.addContext(contextPath); context.addServlet(TestServlet.class, servletMapping); TestEventListener testListener = new TestEventListener(); context.getSessionHandler().addEventListener(testListener); AbstractSessionManager m = (AbstractSessionManager) context.getSessionHandler().getSessionManager(); try { server.start(); int port = server.getPort(); HttpClient client = new HttpClient(); client.start(); try { ContentResponse response = client.GET( "http://localhost:" + port + contextPath + servletMapping + "?action=create"); assertEquals(HttpServletResponse.SC_OK, response.getStatus()); String sessionCookie = response.getHeaders().get("Set-Cookie"); assertTrue(sessionCookie != null); // Mangle the cookie, replacing Path with $Path, etc. sessionCookie = sessionCookie.replaceFirst("(\\W)(P|p)ath=", "$1\\$Path="); // ensure sessionCreated listener is called assertTrue(testListener.isCreated()); assertEquals(1, m.getSessions()); assertEquals(1, m.getSessionsMax()); assertEquals(1, m.getSessionsTotal()); // now delete the session Request request = client.newRequest( "http://localhost:" + port + contextPath + servletMapping + "?action=delete"); request.header("Cookie", sessionCookie); response = request.send(); assertEquals(HttpServletResponse.SC_OK, response.getStatus()); // ensure sessionDestroyed listener is called assertTrue(testListener.isDestroyed()); assertEquals(0, m.getSessions()); assertEquals(1, m.getSessionsMax()); assertEquals(1, m.getSessionsTotal()); // The session is not there anymore, even if we present an old cookie request = client.newRequest( "http://localhost:" + port + contextPath + servletMapping + "?action=check"); request.header("Cookie", sessionCookie); response = request.send(); assertEquals(HttpServletResponse.SC_OK, response.getStatus()); assertEquals(0, m.getSessions()); assertEquals(1, m.getSessionsMax()); assertEquals(1, m.getSessionsTotal()); } finally { client.stop(); } } finally { server.stop(); } }
@Test @Deployment( resources = {"org/activiti/cdi/test/impl/event/MultiInstanceServiceTaskEvent.bpmn20.xml"}) public void testReceiveAll() { TestEventListener listenerBean = getBeanInstance(TestEventListener.class); listenerBean.reset(); assertEquals(0, listenerBean.getStartActivityService1WithLoopCounter()); assertEquals(0, listenerBean.getEndActivityService1()); assertEquals(0, listenerBean.getStartActivityService2WithLoopCounter()); assertEquals(0, listenerBean.getEndActivityService2()); // start the process runtimeService.startProcessInstanceByKey("process1"); // assert assertEquals(1, listenerBean.getTakeTransitiont1()); assertEquals(1, listenerBean.getTakeTransitiont2()); assertEquals(1, listenerBean.getTakeTransitiont3()); assertEquals(2, listenerBean.getStartActivityService1WithLoopCounter()); assertEquals(3, listenerBean.getStartActivityService2WithLoopCounter()); assertEquals(2, listenerBean.getEndActivityService1()); // Uncomment the following line once ACT-1271 is also solved for parallel multi-instance tasks // assertEquals(3, listenerBean.getEndActivityService2()); }
private void sendPreTestNotification() throws Exception { for (TestEventListener eventListener : eventListeners) { eventListener.notifyPreTest(this, data); } }