summaryrefslogtreecommitdiffstats
path: root/test/jrummikub/util
diff options
context:
space:
mode:
Diffstat (limited to 'test/jrummikub/util')
-rw-r--r--test/jrummikub/util/Event3Test.java153
1 files changed, 153 insertions, 0 deletions
diff --git a/test/jrummikub/util/Event3Test.java b/test/jrummikub/util/Event3Test.java
new file mode 100644
index 0000000..34aa851
--- /dev/null
+++ b/test/jrummikub/util/Event3Test.java
@@ -0,0 +1,153 @@
+package jrummikub.util;
+
+import static org.junit.Assert.*;
+
+import org.junit.Test;
+
+/**
+ * Test class for {@link Event2}
+ */
+public class Event3Test {
+
+ int fired, fired2, fired3, fired4, fired5, fired6;
+
+ /** */
+ @Test
+ public void singleListener() {
+ fired = 0;
+ fired2 = 0;
+ fired3 = 0;
+ Event3<Integer, Integer, Integer> testEvent = new Event3<Integer, Integer, Integer>();
+ testEvent.add(new IListener3<Integer, Integer, Integer>() {
+
+ @Override
+ public void handle(Integer n, Integer m, Integer o) {
+ fired += n;
+ fired2 += m;
+ fired3 += o;
+ }
+ });
+ assertEquals(fired, 0);
+ assertEquals(fired2, 0);
+ assertEquals(fired3, 0);
+ testEvent.emit(10, 5, 3);
+ assertEquals(fired, 10);
+ assertEquals(fired2, 5);
+ assertEquals(fired3, 3);
+ testEvent.emit(20, 45, 42);
+ assertEquals(fired, 30);
+ assertEquals(fired2, 50);
+ assertEquals(fired3, 45);
+ }
+
+ /** */
+ @Test
+ public void twoListeners() {
+ fired = 0;
+ fired2 = 0;
+ fired3 = 0;
+ fired4 = 0;
+ fired5 = 0;
+ fired6 = 0;
+ Event3<Integer, Integer, Integer> testEvent = new Event3<Integer, Integer, Integer>();
+ testEvent.add(new IListener3<Integer, Integer, Integer>() {
+
+ @Override
+ public void handle(Integer n, Integer m, Integer o) {
+ fired += n;
+ fired2 += m;
+ fired3 += o;
+ }
+ });
+ testEvent.add(new IListener3<Integer, Integer, Integer>() {
+
+ @Override
+ public void handle(Integer n, Integer m, Integer o) {
+ fired4 -= n;
+ fired5 -= m;
+ fired6 -= o;
+ }
+ });
+ assertEquals(fired, 0);
+ assertEquals(fired2, 0);
+ assertEquals(fired3, 0);
+ assertEquals(fired4, 0);
+ assertEquals(fired5, 0);
+ assertEquals(fired6, 0);
+ testEvent.emit(5, 10, 4);
+ assertEquals(fired, 5);
+ assertEquals(fired2, 10);
+ assertEquals(fired3, 4);
+ assertEquals(fired4, -5);
+ assertEquals(fired5, -10);
+ assertEquals(fired6, -4);
+ }
+
+ /** */
+ @Test
+ public void removeListener() {
+ fired = 0;
+ fired2 = 0;
+ fired3 = 0;
+ Event3<Integer, Integer, Integer> testEvent = new Event3<Integer, Integer, Integer>();
+ testEvent.add(new IListener3<Integer, Integer, Integer>() {
+
+ @Override
+ public void handle(Integer n, Integer m, Integer o) {
+ fired += n;
+ fired2 += m;
+ fired3 += o;
+ }
+ });
+ IListener3<Integer, Integer, Integer> rem = new IListener3<Integer, Integer, Integer>() {
+
+ @Override
+ public void handle(Integer n, Integer m, Integer o) {
+ fail();
+ }
+ };
+ assertEquals(fired, 0);
+ assertEquals(fired2, 0);
+ assertEquals(fired3, 0);
+ testEvent.add(rem);
+ testEvent.remove(rem);
+ testEvent.emit(10, 20, 30);
+ assertEquals(fired, 10);
+ assertEquals(fired2, 20);
+ assertEquals(fired3, 30);
+ }
+
+ /** */
+ @Test
+ public void removeListenerByConnection() {
+ fired = 0;
+ fired2 = 0;
+ fired3 = 0;
+ Event3<Integer, Integer, Integer> testEvent = new Event3<Integer, Integer, Integer>();
+ testEvent.add(new IListener3<Integer, Integer, Integer>() {
+
+ @Override
+ public void handle(Integer n, Integer m, Integer o) {
+ fired += n;
+ fired2 += m;
+ fired3 += o;
+ }
+ });
+ IListener3<Integer, Integer, Integer> rem = new IListener3<Integer, Integer, Integer>() {
+
+ @Override
+ public void handle(Integer n, Integer m, Integer o) {
+ fail();
+ }
+ };
+ assertEquals(fired, 0);
+ assertEquals(fired2, 0);
+ assertEquals(fired3, 0);
+ Connection connection = testEvent.add(rem);
+ connection.remove();
+ testEvent.emit(10, 20, 30);
+ assertEquals(fired, 10);
+ assertEquals(fired2, 20);
+ assertEquals(fired3, 30);
+ }
+}