package net.zomis.cardshifter.ecs; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotEquals; import java.util.ArrayList; import java.util.List; import org.junit.Test; import com.cardshifter.modapi.base.ECSGame; import com.cardshifter.modapi.events.IEvent; public class EventTest { private ECSGame game = new ECSGame(); private List<TestEvent> pre = new ArrayList<>(); private List<TestEvent> post = new ArrayList<>(); private int value = 42; private static class TestEvent implements IEvent { public final String data; public TestEvent(String data) { this.data = data; } } @Test public void executeTestEvent() { assertEquals(42, value); game.getEvents().registerHandlerBefore(this, TestEvent.class, event -> { assertEquals(pre.size(), post.size()); assertNotEquals(pre.size(), value); pre.add(event); }); game.getEvents().registerHandlerAfter(this, TestEvent.class, event -> { post.add(event); assertEquals(pre.size(), post.size()); assertEquals(pre.size(), value); }); assertEquals(42, value); game.executeEvent(new TestEvent("Test1"), () -> value = pre.size()); assertEquals(pre.size(), value); assertEquals(pre.size(), 1); assertEquals(pre, post); assertEquals("Test1", pre.get(0).data); } }