package net.mostlyoriginal.gwt; import com.artemis.World; import com.artemis.WorldConfiguration; import com.google.gwt.junit.client.GWTTestCase; import net.mostlyoriginal.api.event.common.EventSystem; import net.mostlyoriginal.gwt.system.DispatchTestSystem; import net.mostlyoriginal.gwt.system.ReceiveTestSystem; import net.mostlyoriginal.gwt.system.ReceiveTestSystem2; /** * Test event dispatching between systems on GWT. * * @author Daan van Yperen */ public class InterSystemEventGwtTest extends GWTTestCase { @Override public String getModuleName() { return "net.mostlyoriginal.ContribTest"; } public void test_Dispatch_OneListeningSystem_SystemReceivesEvent() { WorldConfiguration config = new WorldConfiguration(); final EventSystem eventManager = new EventSystem(); config.setSystem(eventManager); ReceiveTestSystem s1 = new ReceiveTestSystem(); config.setSystem(s1); config.setSystem(new DispatchTestSystem()); World w = new World(config); w.process(); assertEquals(1, s1.count); } public void test_Dispatch_NoListeningSystem_NoExceptions() { final WorldConfiguration config = new WorldConfiguration(); final EventSystem eventManager = new EventSystem(); config.setSystem(eventManager); config.setSystem(new DispatchTestSystem()); World w = new World(config); w.process(); // no exception = success } public void test_Dispatch_TwoListeningSystem_BothCalled() { final WorldConfiguration config = new WorldConfiguration(); final EventSystem eventManager = new EventSystem(); config.setSystem(eventManager); ReceiveTestSystem s1 = new ReceiveTestSystem(); config.setSystem(s1); ReceiveTestSystem2 s2 = new ReceiveTestSystem2(); config.setSystem(s2); config.setSystem(new DispatchTestSystem()); World w = new World(config); w.process(); // no exception = success assertEquals(1, s1.count); assertEquals(1, s2.count); } }