package jrummikub.util; import static org.junit.Assert.*; import org.junit.Test; public class Event2Test { int fired, fired2, fired3, fired4; @Test public void singleListener() { fired = 0; fired2 = 0; Event2 testEvent = new Event2(); testEvent.add(new IListener2() { @Override public void fire(Integer n, Integer m) { fired += n; fired2 += m; } }); assertEquals(fired, 0); assertEquals(fired2, 0); testEvent.fire(10, 5); assertEquals(fired, 10); assertEquals(fired2, 5); testEvent.fire(20, 45); assertEquals(fired, 30); assertEquals(fired2, 50); } @Test public void twoListeners() { fired = 0; fired2 = 0; fired3 = 0; fired4 = 0; Event2 testEvent = new Event2(); testEvent.add(new IListener2() { @Override public void fire(Integer n, Integer m) { fired += n; fired2 += m; } }); testEvent.add(new IListener2() { @Override public void fire(Integer n, Integer m) { fired3 -= n; fired4 -= m; } }); assertEquals(fired, 0); assertEquals(fired2, 0); assertEquals(fired3, 0); assertEquals(fired4, 0); testEvent.fire(5, 10); assertEquals(fired, 5); assertEquals(fired2, 10); assertEquals(fired3, -5); assertEquals(fired4, -10); } @Test public void removeListener() { fired = 0; fired2 = 0; Event2 testEvent = new Event2(); testEvent.add(new IListener2() { @Override public void fire(Integer n, Integer m) { fired += n; fired2 += m; } }); IListener2 rem = new IListener2() { @Override public void fire(Integer n, Integer m) { fail(); } }; assertEquals(fired, 0); assertEquals(fired2, 0); testEvent.add(rem); testEvent.remove(rem); testEvent.fire(10, 20); assertEquals(fired, 10); assertEquals(fired2, 20); } }