#include <gtest/gtest.h> #define protected public #include <crepe/api/BehaviorScript.h> #include <crepe/api/GameObject.h> #include <crepe/api/Metadata.h> #include <crepe/api/Script.h> #include <crepe/manager/ComponentManager.h> #include <crepe/system/ScriptSystem.h> #include "ScriptTest.h" using namespace std; using namespace crepe; using namespace testing; class ScriptECSTest : public ScriptTest { public: class TestComponent : public Component { using Component::Component; }; }; TEST_F(ScriptECSTest, GetOwnComponent) { MyScript & script = this->script; Metadata & metadata = script.get_component<Metadata>(); EXPECT_EQ(metadata.name, OBJ_NAME); } TEST_F(ScriptECSTest, GetOwnComponents) { const unsigned COUNT = 4; for (unsigned i = 0; i < COUNT; i++) entity.add_component<TestComponent>(); MyScript & script = this->script; RefVector<TestComponent> components = script.get_components<TestComponent>(); EXPECT_EQ(components.size(), COUNT); }