aboutsummaryrefslogtreecommitdiff
path: root/src/test/model/GroupObserverTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/model/GroupObserverTest.java')
-rw-r--r--src/test/model/GroupObserverTest.java65
1 files changed, 65 insertions, 0 deletions
diff --git a/src/test/model/GroupObserverTest.java b/src/test/model/GroupObserverTest.java
new file mode 100644
index 0000000..618f0eb
--- /dev/null
+++ b/src/test/model/GroupObserverTest.java
@@ -0,0 +1,65 @@
+package model;
+
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+
+public class GroupObserverTest {
+ private GroupObserver target;
+
+ private MockObserver<Integer> obsInt;
+ private MockObserver<String> obsStr;
+
+ private MockObserver<Observer> obsObs;
+
+ private MockObserver<ArrayList> obsArrList;
+
+ private MockObserver<List> obsList;
+
+ @BeforeEach
+ void setup() {
+ target = new GroupObserver();
+ obsInt = new MockObserver<>();
+ obsStr = new MockObserver<>();
+ obsObs = new MockObserver<>();
+ obsArrList = new MockObserver<>();
+ obsList = new MockObserver<>();
+ target.register(Integer.class, obsInt);
+ target.register(String.class, obsStr);
+ target.register(Observer.class, obsObs);
+ target.register(List.class, obsList);
+ target.register(ArrayList.class, obsArrList);
+ }
+
+ @Test
+ void testRegister() {
+ assertEquals(5, target.getRegisteredObserverCount());
+ }
+
+ @Test
+ void testAccept() {
+ target.accept(this, Observer.DIRECTION_CHANGE, 100);
+ assertEquals(0, obsInt.getCount());
+ assertEquals(0, obsStr.getCount());
+
+ target.accept("123", Observer.DIRECTION_CHANGE, 1000);
+ obsStr.assertCalled(Observer.DIRECTION_CHANGE);
+ assertEquals(0, obsInt.getCount());
+ assertEquals(1000, obsStr.getIndex());
+
+ target.accept(114514, Observer.DIRECTION_ADD, 1919810);
+ obsInt.assertCalled(Observer.DIRECTION_ADD);
+ assertEquals(1919810, obsInt.getIndex());
+
+ target.accept(obsInt, Observer.DIRECTION_CHANGE, 1);
+ obsObs.assertCalled(Observer.DIRECTION_CHANGE);
+
+ target.accept(new ArrayList<>(), Observer.DIRECTION_CHANGE, 2);
+ obsArrList.assertCalled(Observer.DIRECTION_CHANGE);
+ assertEquals(0, obsList.getCount());
+ }
+}