// // Created by Zoe Roux on 5/17/21. // #include "Entity/Entity.hpp" #include "Component/Position/PositionComponent.hpp" #include #include #include using namespace WAL; using namespace BBM; TEST_CASE("Component", "[Entity]") { Scene scene; Entity entity(scene, "Bob"); entity.addComponent(2, 3, 4); SECTION("Check value") { auto &pos = entity.getComponent(); REQUIRE(entity.hasComponent()); REQUIRE(pos.position == Vector3f(2, 3, 4)); } SECTION("Prevent duplicates") { REQUIRE_THROWS_AS(entity.addComponent(), DuplicateError); } SECTION("Remove component") { entity.removeComponent(); REQUIRE_THROWS_AS(entity.getComponent(), NotFoundError); REQUIRE_THROWS_AS(entity.removeComponent(), NotFoundError); } } TEST_CASE("ComponentNotFound", "[Entity]") { Scene scene; Entity entity(scene, "Bob"); REQUIRE_THROWS_AS(entity.getComponent(), NotFoundError); } TEST_CASE("Add component by reference", "[Entity]") { Scene scene; Entity entity(scene, "Bob"); PositionComponent component(entity, 4, 5, 6); REQUIRE(&entity.addComponent(component) == &entity); REQUIRE(entity.getComponent().position == Vector3f(4, 5, 6)); }