package de.swm.gwt.client.eventbus; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; import java.util.Set; import org.junit.Before; import org.junit.Test; import de.swm.gwt.client.eventbus.Dispatcher; import de.swm.gwt.client.eventbus.ICustomData; import de.swm.gwt.client.eventbus.IDispatcher; import de.swm.gwt.client.eventbus.IEvent; import de.swm.gwt.client.eventbus.IEventHandler; import de.swm.gwt.client.eventbus.IMobileCustomData; import de.swm.gwt.client.eventbus.IMobileEventHandler; import de.swm.gwt.client.interfaces.ILocation; import de.swm.gwt.client.mobile.IPage; public class DispatcherTest { private IDispatcher dispatcher; @Before public void setup() { dispatcher = new Dispatcher(); } @Test public void testFireAndRecieveEvent() throws Exception { final TestHandlder th = new TestHandlder(); dispatcher.registerEventTypes(PlatformEvents.COMPLETE_REGISTRATION, th); dispatcher.fireEvent(PlatformEvents.COMPLETE_REGISTRATION); dispatcher.fireEvent(PlatformEvents.COMPLETE_REGISTRATION_SUMMARY); assertEquals(PlatformEvents.COMPLETE_REGISTRATION, th.getEventType()); } @Test public void testFireAndRecieveMobileEvent() throws Exception { final MobileTestHandlder th = new MobileTestHandlder(); dispatcher.registerEventTypes(PlatformEvents.COMPLETE_REGISTRATION, th); dispatcher.fireMobileEvent(PlatformEvents.COMPLETE_REGISTRATION); dispatcher.fireMobileEvent(PlatformEvents.COMPLETE_REGISTRATION_SUMMARY); assertEquals(PlatformEvents.COMPLETE_REGISTRATION, th.getEventType()); } @Test public void testFireMultipleEventsAndRecieveEvents() throws Exception { final TestHandlder th = new TestHandlder(); dispatcher.registerEventTypes(PlatformEvents.COMPLETE_REGISTRATION, th); final TestHandlder th2 = new TestHandlder(); dispatcher.registerEventTypes(PlatformEvents.COMPLETE_REGISTRATION_SUMMARY, th2); dispatcher.fireEvent(PlatformEvents.COMPLETE_REGISTRATION); dispatcher.fireEvent(PlatformEvents.COMPLETE_REGISTRATION_SUMMARY); dispatcher.fireEvent(PlatformEvents.DISPLAY_START_SCREEN); assertEquals(PlatformEvents.COMPLETE_REGISTRATION, th.getEventType()); assertEquals(PlatformEvents.COMPLETE_REGISTRATION_SUMMARY, th2.getEventType()); } @Test public void testFireMultipleEventsAndRecieveEvents_COMPLETE_REGISTRATIONeventDisabled() throws Exception { final TestHandlder th = new TestHandlder(); dispatcher.registerEventTypes(PlatformEvents.COMPLETE_REGISTRATION, th); final TestHandlder th2 = new TestHandlder(); dispatcher.registerEventTypes(PlatformEvents.COMPLETE_REGISTRATION_SUMMARY, th2); dispatcher.disableEvents(PlatformEvents.COMPLETE_REGISTRATION); dispatcher.fireEvent(PlatformEvents.COMPLETE_REGISTRATION); dispatcher.fireEvent(PlatformEvents.COMPLETE_REGISTRATION_SUMMARY); dispatcher.fireEvent(PlatformEvents.DISPLAY_START_SCREEN); assertNull("Dieses Event war disabled", th.getEventType()); assertEquals(PlatformEvents.COMPLETE_REGISTRATION_SUMMARY, th2.getEventType()); } @Test public void testFireMultipleEventsAndRecieveEvents_DisableAll() throws Exception { final TestHandlder th = new TestHandlder(); dispatcher.registerEventTypes(PlatformEvents.COMPLETE_REGISTRATION, th); final TestHandlder th2 = new TestHandlder(); dispatcher.registerEventTypes(PlatformEvents.COMPLETE_REGISTRATION_SUMMARY, th2); Set<IEvent> all= dispatcher.disableAllEvents(); assertEquals(2, all.size()); assertTrue("Expected", all.contains(PlatformEvents.COMPLETE_REGISTRATION)); assertTrue("Expectd", all.contains(PlatformEvents.COMPLETE_REGISTRATION_SUMMARY)); Set<IEvent> allDisabled= dispatcher.getAllDisabledEvents(); assertEquals(2, allDisabled.size()); assertTrue("Expected", allDisabled.contains(PlatformEvents.COMPLETE_REGISTRATION)); assertTrue("Expectd", allDisabled.contains(PlatformEvents.COMPLETE_REGISTRATION_SUMMARY)); dispatcher.fireEvent(PlatformEvents.COMPLETE_REGISTRATION); dispatcher.fireEvent(PlatformEvents.COMPLETE_REGISTRATION_SUMMARY); dispatcher.fireEvent(PlatformEvents.DISPLAY_START_SCREEN); assertNull("Dieses Event war disabled", th.getEventType()); assertNull("Dieses Event war disabled", th2.getEventType()); } @Test public void testFireMultipleEventsAndRecieveEvents_DisableAllEnableAll() throws Exception { final TestHandlder th = new TestHandlder(); dispatcher.registerEventTypes(PlatformEvents.COMPLETE_REGISTRATION, th); final TestHandlder th2 = new TestHandlder(); dispatcher.registerEventTypes(PlatformEvents.COMPLETE_REGISTRATION_SUMMARY, th2); dispatcher.disableAllEvents(); dispatcher.fireEvent(PlatformEvents.COMPLETE_REGISTRATION); dispatcher.fireEvent(PlatformEvents.COMPLETE_REGISTRATION_SUMMARY); dispatcher.fireEvent(PlatformEvents.DISPLAY_START_SCREEN); assertNull("Dieses Event war disabled", th.getEventType()); assertNull("Dieses Event war disabled", th2.getEventType()); dispatcher.enableAllEvents(); dispatcher.fireEvent(PlatformEvents.COMPLETE_REGISTRATION); dispatcher.fireEvent(PlatformEvents.COMPLETE_REGISTRATION_SUMMARY); dispatcher.fireEvent(PlatformEvents.DISPLAY_START_SCREEN); assertEquals(PlatformEvents.COMPLETE_REGISTRATION, th.getEventType()); assertEquals(PlatformEvents.COMPLETE_REGISTRATION_SUMMARY, th2.getEventType()); } @Test public void testFireMultipleEventsAndRecieveEvents_DisableAllEnableOne() throws Exception { final TestHandlder th = new TestHandlder(); dispatcher.registerEventTypes(PlatformEvents.COMPLETE_REGISTRATION, th); final TestHandlder th2 = new TestHandlder(); dispatcher.registerEventTypes(PlatformEvents.COMPLETE_REGISTRATION_SUMMARY, th2); dispatcher.disableAllEvents(); dispatcher.fireEvent(PlatformEvents.COMPLETE_REGISTRATION); dispatcher.fireEvent(PlatformEvents.COMPLETE_REGISTRATION_SUMMARY); dispatcher.fireEvent(PlatformEvents.DISPLAY_START_SCREEN); assertNull("Dieses Event war disabled", th.getEventType()); assertNull("Dieses Event war disabled", th2.getEventType()); dispatcher.enableEvents(PlatformEvents.COMPLETE_REGISTRATION_SUMMARY); dispatcher.fireEvent(PlatformEvents.COMPLETE_REGISTRATION); dispatcher.fireEvent(PlatformEvents.COMPLETE_REGISTRATION_SUMMARY); dispatcher.fireEvent(PlatformEvents.DISPLAY_START_SCREEN); assertNull("Ist Disabled", th.getEventType()); assertEquals(PlatformEvents.COMPLETE_REGISTRATION_SUMMARY, th2.getEventType()); } public static final class TestHandlder implements IEventHandler { private IEvent eventType; @Override public void handleEvent(IEvent eventType, ILocation location, ICustomData customData) { this.eventType = eventType; } /** * Returns the eventType. * @return the eventType */ public IEvent getEventType() { return eventType; } } public static final class MobileTestHandlder implements IMobileEventHandler { private IEvent eventType; /** * Returns the eventType. * @return the eventType */ public IEvent getEventType() { return eventType; } @Override public void handleEvent(IEvent eventType, IPage originator, IMobileCustomData customData) { this.eventType = eventType; } } }