From 2bc1cb77dfe8edf29ccb4064be23078cdd06038b Mon Sep 17 00:00:00 2001 From: Elizabeth Alexander Hunt Date: Sat, 28 Feb 2026 15:19:31 -0800 Subject: Simplify event emissions --- .../test/java/coffee/liz/ecs/model/EntityTest.java | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) (limited to 'core/src/test') diff --git a/core/src/test/java/coffee/liz/ecs/model/EntityTest.java b/core/src/test/java/coffee/liz/ecs/model/EntityTest.java index bb17296..5be4cdb 100644 --- a/core/src/test/java/coffee/liz/ecs/model/EntityTest.java +++ b/core/src/test/java/coffee/liz/ecs/model/EntityTest.java @@ -9,7 +9,6 @@ import static org.junit.jupiter.api.Assertions.assertTrue; import coffee.liz.ecs.events.ComponentAdded; import coffee.liz.ecs.events.ComponentRemoved; import coffee.liz.ecs.events.EntityEvent; -import coffee.liz.ecs.events.Hook; import lombok.RequiredArgsConstructor; @@ -21,6 +20,7 @@ import org.junit.jupiter.params.provider.MethodSource; import java.util.Collection; import java.util.List; import java.util.concurrent.atomic.AtomicInteger; +import java.util.function.Consumer; import java.util.stream.Stream; final class EntityTest { @@ -69,6 +69,23 @@ final class EntityTest { assertSame(replacement, entity.get(AlphaComponent.class)); } + @Test + public void replacingExistingComponentDoesNotEmitAddedEvent() { + final Entity entity = Entity.builder().id(18).build(); + final AtomicInteger addedCount = new AtomicInteger(0); + final Consumer hook = entity.subscribe(event -> { + if (event instanceof ComponentAdded) { + addedCount.incrementAndGet(); + } + }); + + entity.add(new AlphaComponent("initial")); + entity.add(new AlphaComponent("replacement")); + + assertEquals(1, addedCount.get()); + entity.unsubscribe(hook); + } + @Test public void removeClearsComponentPresence() { final Entity entity = Entity.builder().id(45).build(); @@ -87,7 +104,7 @@ final class EntityTest { final AtomicInteger addedCount = new AtomicInteger(0); final AtomicInteger removedCount = new AtomicInteger(0); - final Hook hook = entity.subscribe(event -> { + final Consumer hook = entity.subscribe(event -> { if (event instanceof ComponentAdded) { addedCount.incrementAndGet(); } -- cgit v1.2.3-70-g09d2