diff options
Diffstat (limited to 'core/src/test/java')
| -rw-r--r-- | core/src/test/java/coffee/liz/ecs/model/EntityTest.java | 21 |
1 files changed, 19 insertions, 2 deletions
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 { @@ -70,6 +70,23 @@ final class EntityTest { } @Test + public void replacingExistingComponentDoesNotEmitAddedEvent() { + final Entity entity = Entity.builder().id(18).build(); + final AtomicInteger addedCount = new AtomicInteger(0); + final Consumer<EntityEvent> 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(); entity.add(new BetaComponent(2)); @@ -87,7 +104,7 @@ final class EntityTest { final AtomicInteger addedCount = new AtomicInteger(0); final AtomicInteger removedCount = new AtomicInteger(0); - final Hook<EntityEvent> hook = entity.subscribe(event -> { + final Consumer<EntityEvent> hook = entity.subscribe(event -> { if (event instanceof ComponentAdded) { addedCount.incrementAndGet(); } |
