summaryrefslogtreecommitdiff
path: root/core/src/test/java
diff options
context:
space:
mode:
Diffstat (limited to 'core/src/test/java')
-rw-r--r--core/src/test/java/coffee/liz/ecs/model/EntityTest.java21
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();
}