diff options
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()); + } +} |