package net.greencoding.thysdrus.event.core; import junit.framework.Assert; import net.greencoding.thysdrus.event.core.listener.BaseEventListener; import org.junit.Before; import org.junit.Test; /** * * @author Nabil Ben Said (nabil.bensaid@gmail.com) * */ public class DefaultEventHubTest { private EventListenerRegistry listenerRegistry = DefaultEventListenerRegistry.getSingelton(); private DefaultEventHub classUnderTest = new DefaultEventHub(); @Before public void setup(){ classUnderTest.setListenerRegistry(listenerRegistry); } @Test public void publishEvent() { // given Event event = new MyEvent(); MyEventListener myEventListener = new MyEventListener(); MyEventListener myEventListener2 = new MyEventListener(); listenerRegistry.addListener(myEventListener); listenerRegistry.addListener(myEventListener2); // when classUnderTest.publishEvent(event); // then Assert.assertEquals(1, myEventListener.receivedEvents); Assert.assertEquals(1, myEventListener2.receivedEvents); } class MyEvent implements Event { } class MyEventListener extends BaseEventListener<MyEvent> { private int receivedEvents = 0; @Override public void newEvent(Event event) { receivedEvents++; } } }