package jrummikub.util; import org.junit.Test; import static org.junit.Assert.*; /** * Test class for {@link Event} */ public class EventTest { boolean fired, fired2; /** */ @Test public void singleListener() { fired = false; Event testEvent = new Event(); testEvent.add(new IListener() { @Override public void handle() { fired = true; } }); assertFalse(fired); testEvent.emit(); assertTrue(fired); fired = false; testEvent.emit(); assertTrue(fired); } /** */ @Test public void twoListeners() { fired = false; fired2 = false; Event testEvent = new Event(); testEvent.add(new IListener() { @Override public void handle() { fired = true; } }); testEvent.add(new IListener() { @Override public void handle() { fired2 = true; } }); assertFalse(fired); assertFalse(fired2); testEvent.emit(); assertTrue(fired); assertTrue(fired2); } /** */ @Test public void removeListener() { fired = false; Event testEvent = new Event(); testEvent.add(new IListener() { @Override public void handle() { fired = true; } }); IListener rem = new IListener() { @Override public void handle() { fail(); } }; testEvent.add(rem); testEvent.remove(rem); testEvent.emit(); assertTrue(fired); } /** */ @Test public void removeListenerByConnection() { fired = false; Event testEvent = new Event(); testEvent.add(new IListener() { @Override public void handle() { fired = true; } }); IListener rem = new IListener() { @Override public void handle() { fail(); } }; Connection connection = testEvent.add(rem); connection.remove(); testEvent.emit(); assertTrue(fired); } }