From 65ea6c17a0c1348aa9ef4e158102ddf173936882 Mon Sep 17 00:00:00 2001 From: Yuuta Liang Date: Thu, 23 Nov 2023 08:09:01 +0800 Subject: Add GUI Signed-off-by: Yuuta Liang --- src/test/model/GroupObserverTest.java | 65 +++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 src/test/model/GroupObserverTest.java (limited to 'src/test/model/GroupObserverTest.java') 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 obsInt; + private MockObserver obsStr; + + private MockObserver obsObs; + + private MockObserver obsArrList; + + private MockObserver 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()); + } +} -- cgit v1.2.3