From 823b406fe625ef6e7870e75d590e69545001456f Mon Sep 17 00:00:00 2001 From: Lars Simon Winzer Date: Mon, 27 Apr 2026 00:41:17 +0200 Subject: [PATCH 1/3] Test: Add unit tests for EventBus --- .../server/network/events/EventBusTest.java | 49 +++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 src/test/java/ch/unibas/dmi/dbis/cs108/casono/server/network/events/EventBusTest.java diff --git a/src/test/java/ch/unibas/dmi/dbis/cs108/casono/server/network/events/EventBusTest.java b/src/test/java/ch/unibas/dmi/dbis/cs108/casono/server/network/events/EventBusTest.java new file mode 100644 index 0000000..afdc9af --- /dev/null +++ b/src/test/java/ch/unibas/dmi/dbis/cs108/casono/server/network/events/EventBusTest.java @@ -0,0 +1,49 @@ +package ch.unibas.dmi.dbis.cs108.casono.server.network.events; + +import static org.junit.jupiter.api.Assertions.*; + +import java.util.concurrent.atomic.AtomicBoolean; +import java.util.concurrent.atomic.AtomicInteger; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + +public class EventBusTest { + private EventBus eventBus; + + @BeforeEach + void setUp() { + eventBus = new EventBus(); + } + + static class TestEvent implements Event {} + + @Test + void singleSubscriberReceivesEvent() { + AtomicBoolean called = new AtomicBoolean(false); + eventBus.subscribe(TestEvent.class, e -> called.set(true)); + eventBus.publish(new TestEvent()); + assertTrue(called.get()); + } + + @Test + void multipleSubscribersReceiveEvent() { + AtomicInteger counter = new AtomicInteger(0); + eventBus.subscribe(TestEvent.class, e -> counter.incrementAndGet()); + eventBus.subscribe(TestEvent.class, e -> counter.incrementAndGet()); + eventBus.publish(new TestEvent()); + assertEquals(2, counter.get()); + } + + @Test + void publishNullThrowsNpe() { + assertThrows(NullPointerException.class, () -> eventBus.publish((Event) null)); + } + + @Test + void subscribingToBaseEventDoesNotReceiveSubclass() { + AtomicBoolean called = new AtomicBoolean(false); + eventBus.subscribe(Event.class, e -> called.set(true)); + eventBus.publish(new TestEvent()); + assertFalse(called.get()); + } +} From b158be26e391c07c2979cb0ac9ba8ea87557be43 Mon Sep 17 00:00:00 2001 From: Lars Simon Winzer Date: Mon, 27 Apr 2026 00:45:53 +0200 Subject: [PATCH 2/3] Style: Add 'test' prefix to methods --- .../cs108/casono/server/network/events/EventBusTest.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/test/java/ch/unibas/dmi/dbis/cs108/casono/server/network/events/EventBusTest.java b/src/test/java/ch/unibas/dmi/dbis/cs108/casono/server/network/events/EventBusTest.java index afdc9af..cc4424c 100644 --- a/src/test/java/ch/unibas/dmi/dbis/cs108/casono/server/network/events/EventBusTest.java +++ b/src/test/java/ch/unibas/dmi/dbis/cs108/casono/server/network/events/EventBusTest.java @@ -18,7 +18,7 @@ public class EventBusTest { static class TestEvent implements Event {} @Test - void singleSubscriberReceivesEvent() { + void testSingleSubscriberReceivesEvent() { AtomicBoolean called = new AtomicBoolean(false); eventBus.subscribe(TestEvent.class, e -> called.set(true)); eventBus.publish(new TestEvent()); @@ -26,7 +26,7 @@ public class EventBusTest { } @Test - void multipleSubscribersReceiveEvent() { + void testMultipleSubscribersReceiveEvent() { AtomicInteger counter = new AtomicInteger(0); eventBus.subscribe(TestEvent.class, e -> counter.incrementAndGet()); eventBus.subscribe(TestEvent.class, e -> counter.incrementAndGet()); @@ -35,12 +35,12 @@ public class EventBusTest { } @Test - void publishNullThrowsNpe() { + void testPublishNullThrowsNpe() { assertThrows(NullPointerException.class, () -> eventBus.publish((Event) null)); } @Test - void subscribingToBaseEventDoesNotReceiveSubclass() { + void testSubscribingToBaseEventDoesNotReceiveSubclass() { AtomicBoolean called = new AtomicBoolean(false); eventBus.subscribe(Event.class, e -> called.set(true)); eventBus.publish(new TestEvent()); From d36a78eee43eed1eaf5ad3f2a94ef6aaadbf23a3 Mon Sep 17 00:00:00 2001 From: Lars Simon Winzer Date: Mon, 27 Apr 2026 00:50:44 +0200 Subject: [PATCH 3/3] Style: Change order and visibility of nested class to private --- .../dbis/cs108/casono/server/network/events/EventBusTest.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/test/java/ch/unibas/dmi/dbis/cs108/casono/server/network/events/EventBusTest.java b/src/test/java/ch/unibas/dmi/dbis/cs108/casono/server/network/events/EventBusTest.java index cc4424c..9fc434a 100644 --- a/src/test/java/ch/unibas/dmi/dbis/cs108/casono/server/network/events/EventBusTest.java +++ b/src/test/java/ch/unibas/dmi/dbis/cs108/casono/server/network/events/EventBusTest.java @@ -10,13 +10,13 @@ import org.junit.jupiter.api.Test; public class EventBusTest { private EventBus eventBus; + private class TestEvent implements Event {} + @BeforeEach void setUp() { eventBus = new EventBus(); } - static class TestEvent implements Event {} - @Test void testSingleSubscriberReceivesEvent() { AtomicBoolean called = new AtomicBoolean(false);