From 04fdec9b2284517233471691bc887a51c77149b7 Mon Sep 17 00:00:00 2001 From: Alec Thomas Date: Tue, 21 Oct 2014 14:04:51 +1100 Subject: Add test for component destructor called when entity is destroyed. --- entityx/Entity_test.cc | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/entityx/Entity_test.cc b/entityx/Entity_test.cc index a928e9b..cd7b2a1 100644 --- a/entityx/Entity_test.cc +++ b/entityx/Entity_test.cc @@ -542,3 +542,26 @@ TEST_CASE("TestComponentDestructorCalledWhenManagerDestroyed") { } REQUIRE(freed == true); } + +TEST_CASE("TestComponentDestructorCalledWhenEntityDestroyed") { + struct Freed { + explicit Freed(bool &yes) : yes(yes) {} + ~Freed() { yes = true; } + + bool &yes; + }; + + struct Test : Component { + Test(bool &yes) : freed(yes) {} + + Freed freed; + }; + + bool freed = false; + EntityX e; + auto test = e.entities.create(); + test.assign(freed); + REQUIRE(freed == false); + test.destroy(); + REQUIRE(freed == true); +} -- cgit v1.2.3