]> code.bitgloo.com Git - clyne/entityx.git/commitdiff
Add test 'TestComponentRemovedEventOnEntityDestroyed'
authorZack Mulgrew <zack@zackthehuman.com>
Thu, 4 Feb 2016 06:28:00 +0000 (22:28 -0800)
committerZack Mulgrew <zack@zackthehuman.com>
Thu, 4 Feb 2016 06:28:00 +0000 (22:28 -0800)
entityx/Entity_test.cc

index 2076ed7951a08bbb701231bb896e443395c79bdd..e07a5679173ab285f9b63dfda89a5a1ee684b174 100644 (file)
@@ -405,6 +405,27 @@ TEST_CASE_METHOD(EntityManagerFixture, "TestComponentRemovedEvent") {
   REQUIRE(!(e.component<Direction>()));
 }
 
+TEST_CASE_METHOD(EntityManagerFixture, "TestComponentRemovedEventOnEntityDestroyed") {
+  struct ComponentRemovedReceiver : public Receiver<ComponentRemovedReceiver> {
+    void receive(const ComponentRemovedEvent<Direction> &event) {
+      removed = true;
+    }
+
+    bool removed = false;
+  };
+
+  ComponentRemovedReceiver receiver;
+  ev.subscribe<ComponentRemovedEvent<Direction>>(receiver);
+
+  REQUIRE(!(receiver.removed));
+
+  Entity e = em.create();
+  e.assign<Direction>(1.0, 2.0);
+  e.destroy();
+
+  REQUIRE(receiver.removed);
+}
+
 TEST_CASE_METHOD(EntityManagerFixture, "TestEntityAssignment") {
   Entity a, b;
   a = em.create();