diff options
author | Yuuta Liang <yuutaw@student.cs.ubc.ca> | 2023-11-23 08:09:01 +0800 |
---|---|---|
committer | Yuuta Liang <yuutaw@student.cs.ubc.ca> | 2023-11-23 08:09:01 +0800 |
commit | 65ea6c17a0c1348aa9ef4e158102ddf173936882 (patch) | |
tree | 7615366f76b6c94f46d8039aa20091f9ccd5609a /src/test/model/GroupObserverTest.java | |
parent | b94b18c133f06cb176d8aa8bb40a8e24918d9ed6 (diff) | |
download | jca-65ea6c17a0c1348aa9ef4e158102ddf173936882.tar jca-65ea6c17a0c1348aa9ef4e158102ddf173936882.tar.gz jca-65ea6c17a0c1348aa9ef4e158102ddf173936882.tar.bz2 jca-65ea6c17a0c1348aa9ef4e158102ddf173936882.zip |
Add GUI
Signed-off-by: Yuuta Liang <yuutaw@student.cs.ubc.ca>
Diffstat (limited to 'src/test/model/GroupObserverTest.java')
-rw-r--r-- | src/test/model/GroupObserverTest.java | 65 |
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()); + } +} |