#pragma once #include #include #include #include #include #include #include #include #include class ScriptTest : public testing::Test { protected: crepe::Mediator mediator; static constexpr const char * OBJ_NAME = "foo"; public: crepe::ComponentManager component_manager{mediator}; crepe::ScriptSystem system{mediator}; crepe::EventManager event_mgr{mediator}; crepe::LoopTimerManager loop_timer{mediator}; crepe::SaveManager save_manager{mediator}; crepe::GameObject entity = component_manager.new_object(OBJ_NAME); class MyScript : public crepe::Script { // NOTE: explicitly stating `public:` is not required on actual scripts public: MOCK_METHOD(void, init, (), (override)); MOCK_METHOD(void, update, (), (override)); }; crepe::OptionalRef behaviorscript; crepe::OptionalRef script; virtual void SetUp(); };