diff options
Diffstat (limited to 'src/test')
| -rw-r--r-- | src/test/CollisionTest.cpp | 1 | ||||
| -rw-r--r-- | src/test/DBTest.cpp | 8 | ||||
| -rw-r--r-- | src/test/InputTest.cpp | 72 | ||||
| -rw-r--r-- | src/test/SaveManagerTest.cpp | 17 | ||||
| -rw-r--r-- | src/test/ScriptTest.cpp | 22 | ||||
| -rw-r--r-- | src/test/ScriptTest.h | 7 | ||||
| -rw-r--r-- | src/test/main.cpp | 3 | 
7 files changed, 95 insertions, 35 deletions
diff --git a/src/test/CollisionTest.cpp b/src/test/CollisionTest.cpp index ff9e7cc..baa95c1 100644 --- a/src/test/CollisionTest.cpp +++ b/src/test/CollisionTest.cpp @@ -54,6 +54,7 @@ public:  	ComponentManager mgr{m};  	CollisionSystem collision_sys{m};  	ScriptSystem script_sys{m}; +	LoopTimerManager loop_timer{m};  	GameObject world = mgr.new_object("world", "", {50, 50});  	GameObject game_object1 = mgr.new_object("object1", "", {50, 50}); diff --git a/src/test/DBTest.cpp b/src/test/DBTest.cpp index 99dedff..7f2c339 100644 --- a/src/test/DBTest.cpp +++ b/src/test/DBTest.cpp @@ -27,3 +27,11 @@ TEST_F(DBTest, Has) {  	db.set("foo", "bar");  	EXPECT_EQ(db.has("foo"), true);  } + +TEST_F(DBTest, MultipleKeys) { +	db.set("foo", "foo"); +	db.set("bar", "bar"); + +	EXPECT_EQ(db.get("foo"), "foo"); +	EXPECT_EQ(db.get("bar"), "bar"); +} diff --git a/src/test/InputTest.cpp b/src/test/InputTest.cpp index 1d29cee..25a1eeb 100644 --- a/src/test/InputTest.cpp +++ b/src/test/InputTest.cpp @@ -2,7 +2,6 @@  #include <crepe/manager/ResourceManager.h>  #include <crepe/system/RenderSystem.h> -  #define protected public  #define private public @@ -215,8 +214,13 @@ TEST_F(InputTest, MouseClick) {  TEST_F(InputTest, testButtonClick) {  	GameObject button_obj = mgr.new_object("body", "person", vec2{0, 0}, 0, 1);  	bool button_clicked = false; -	std::function<void()> on_click = [&]() { button_clicked = true; }; -	auto & button = button_obj.add_component<Button>(vec2{10, 10}, vec2{0, 0}, on_click); +	event_manager.subscribe<ButtonPressEvent>([&](const ButtonPressEvent & event) { +		button_clicked = true; +		EXPECT_EQ(event.metadata.game_object_id, button_obj.id); +		return false; +	}); +	auto & button = button_obj.add_component<Button>(vec2{100, 100}, vec2{0, 0}); +  	bool hover = false;  	button.active = true;  	this->simulate_mouse_click(999, 999, SDL_BUTTON_LEFT); @@ -232,8 +236,13 @@ TEST_F(InputTest, testButtonClick) {  TEST_F(InputTest, buttonPositionCamera) {  	GameObject button_obj = mgr.new_object("body", "person", vec2{50, 50}, 0, 1);  	bool button_clicked = false; -	std::function<void()> on_click = [&]() { button_clicked = true; }; -	auto & button = button_obj.add_component<Button>(vec2{10, 10}, vec2{0, 0}, on_click); +	event_manager.subscribe<ButtonPressEvent>([&](const ButtonPressEvent & event) { +		button_clicked = true; +		EXPECT_EQ(event.metadata.game_object_id, button_obj.id); +		return false; +	}); +	auto & button = button_obj.add_component<Button>(vec2{10, 10}, vec2{0, 0}); +  	button.world_space = false;  	bool hover = false;  	button.active = true; @@ -250,8 +259,12 @@ TEST_F(InputTest, buttonPositionCamera) {  TEST_F(InputTest, buttonPositionWorld) {  	GameObject button_obj = mgr.new_object("body", "person", vec2{50, 50}, 0, 1);  	bool button_clicked = false; -	std::function<void()> on_click = [&]() { button_clicked = true; }; -	auto & button = button_obj.add_component<Button>(vec2{10, 10}, vec2{0, 0}, on_click); +	event_manager.subscribe<ButtonPressEvent>([&](const ButtonPressEvent & event) { +		button_clicked = true; +		EXPECT_EQ(event.metadata.game_object_id, button_obj.id); +		return false; +	}); +	auto & button = button_obj.add_component<Button>(vec2{10, 10}, vec2{0, 0});  	button.world_space = true;  	bool hover = false;  	button.active = true; @@ -267,25 +280,19 @@ TEST_F(InputTest, buttonPositionWorld) {  }  TEST_F(InputTest, testButtonHover) {  	GameObject button_obj = mgr.new_object("body", "person", vec2{0, 0}, 0, 1); -	bool button_clicked = false; -	std::function<void()> on_click = [&]() { button_clicked = true; }; -	auto & button = button_obj.add_component<Button>(vec2{100, 100}, vec2{0, 0}, on_click); +	bool button_hover = false; +	event_manager.subscribe<ButtonEnterEvent>([&](const ButtonEnterEvent & event) { +		button_hover = true; +		EXPECT_EQ(event.metadata.game_object_id, button_obj.id); +		return false; +	}); +	event_manager.subscribe<ButtonExitEvent>([&](const ButtonExitEvent & event) { +		button_hover = false; +		EXPECT_EQ(event.metadata.game_object_id, button_obj.id); +		return false; +	}); +	auto & button = button_obj.add_component<Button>(vec2{100, 100}, vec2{0, 0});  	button.active = true; - -	// Mouse not on button -	SDL_Event event; -	SDL_zero(event); -	event.type = SDL_MOUSEMOTION; -	event.motion.x = 700; -	event.motion.y = 700; -	event.motion.xrel = 10; -	event.motion.yrel = 10; -	SDL_PushEvent(&event); - -	input_system.update(); -	event_manager.dispatch_events(); -	EXPECT_FALSE(button.hover); -  	// Mouse on button  	SDL_Event hover_event;  	SDL_zero(hover_event); @@ -299,4 +306,19 @@ TEST_F(InputTest, testButtonHover) {  	input_system.update();  	event_manager.dispatch_events();  	EXPECT_TRUE(button.hover); +	EXPECT_TRUE(button_hover); +	// Mouse not on button +	SDL_Event event; +	SDL_zero(event); +	event.type = SDL_MOUSEMOTION; +	event.motion.x = 500; +	event.motion.y = 500; +	event.motion.xrel = 10; +	event.motion.yrel = 10; +	SDL_PushEvent(&event); + +	input_system.update(); +	event_manager.dispatch_events(); +	EXPECT_FALSE(button.hover); +	EXPECT_FALSE(button_hover);  } diff --git a/src/test/SaveManagerTest.cpp b/src/test/SaveManagerTest.cpp index e9b0c29..7609e69 100644 --- a/src/test/SaveManagerTest.cpp +++ b/src/test/SaveManagerTest.cpp @@ -27,8 +27,8 @@ TEST_F(SaveManagerTest, ReadWrite) {  	mgr.set<string>("foo", "bar");  	ASSERT_TRUE(mgr.has("foo")); -	ValueBroker value = mgr.get<string>("foo"); -	EXPECT_EQ(value.get(), "bar"); +	string value = mgr.get<string>("foo"); +	EXPECT_EQ(value, "bar");  }  TEST_F(SaveManagerTest, DefaultValue) { @@ -36,5 +36,16 @@ TEST_F(SaveManagerTest, DefaultValue) {  	ASSERT_EQ(value.get(), 3);  	value.set(5); -	ASSERT_EQ(value.get(), 5); +	EXPECT_EQ(value.get(), 5); +} + +TEST_F(SaveManagerTest, MultipleKeys) { +	ValueBroker foo = mgr.get<int>("foo", 1); +	ValueBroker bar = mgr.get<int>("bar", 2); + +	EXPECT_EQ(foo.get(), 1); +	EXPECT_EQ(bar.get(), 2); + +	EXPECT_EQ(mgr.get<int>("foo"), 1); +	EXPECT_EQ(mgr.get<int>("bar"), 2);  } diff --git a/src/test/ScriptTest.cpp b/src/test/ScriptTest.cpp index acdae70..846e398 100644 --- a/src/test/ScriptTest.cpp +++ b/src/test/ScriptTest.cpp @@ -28,7 +28,7 @@ void ScriptTest::SetUp() {  TEST_F(ScriptTest, Default) {  	MyScript & script = this->script;  	EXPECT_CALL(script, init()).Times(0); -	EXPECT_CALL(script, update()).Times(0); +	EXPECT_CALL(script, update(_)).Times(0);  }  TEST_F(ScriptTest, UpdateOnce) { @@ -38,7 +38,7 @@ TEST_F(ScriptTest, UpdateOnce) {  		InSequence seq;  		EXPECT_CALL(script, init()).Times(1); -		EXPECT_CALL(script, update()).Times(1); +		EXPECT_CALL(script, update(_)).Times(1);  		system.update();  	} @@ -46,7 +46,7 @@ TEST_F(ScriptTest, UpdateOnce) {  		InSequence seq;  		EXPECT_CALL(script, init()).Times(0); -		EXPECT_CALL(script, update()).Times(1); +		EXPECT_CALL(script, update(_)).Times(1);  		system.update();  	}  } @@ -59,7 +59,7 @@ TEST_F(ScriptTest, UpdateInactive) {  		InSequence seq;  		EXPECT_CALL(script, init()).Times(0); -		EXPECT_CALL(script, update()).Times(0); +		EXPECT_CALL(script, update(_)).Times(0);  		behaviorscript.active = false;  		system.update();  	} @@ -68,8 +68,20 @@ TEST_F(ScriptTest, UpdateInactive) {  		InSequence seq;  		EXPECT_CALL(script, init()).Times(1); -		EXPECT_CALL(script, update()).Times(1); +		EXPECT_CALL(script, update(_)).Times(1);  		behaviorscript.active = true;  		system.update();  	}  } + +TEST_F(ScriptTest, SaveManager) { +	MyScript & script = this->script; + +	EXPECT_EQ(&script.get_save_manager(), &this->save_manager); +} + +TEST_F(ScriptTest, LoopTimerManager) { +	MyScript & script = this->script; + +	EXPECT_EQ(&script.get_loop_timer(), &this->loop_timer); +} diff --git a/src/test/ScriptTest.h b/src/test/ScriptTest.h index 31fa7c9..f3dbda4 100644 --- a/src/test/ScriptTest.h +++ b/src/test/ScriptTest.h @@ -7,7 +7,10 @@  #include <crepe/api/Script.h>  #include <crepe/manager/ComponentManager.h>  #include <crepe/manager/EventManager.h> +#include <crepe/manager/LoopTimerManager.h> +#include <crepe/manager/SaveManager.h>  #include <crepe/system/ScriptSystem.h> +  class ScriptTest : public testing::Test {  protected:  	crepe::Mediator mediator; @@ -17,6 +20,8 @@ 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 { @@ -24,7 +29,7 @@ public:  	public:  		MOCK_METHOD(void, init, (), (override)); -		MOCK_METHOD(void, update, (), (override)); +		MOCK_METHOD(void, update, (crepe::duration_t), (override));  	};  	crepe::OptionalRef<crepe::BehaviorScript> behaviorscript; diff --git a/src/test/main.cpp b/src/test/main.cpp index ed2aed5..0e1bc75 100644 --- a/src/test/main.cpp +++ b/src/test/main.cpp @@ -1,6 +1,7 @@ -#include <crepe/api/Config.h>  #include <gtest/gtest.h> +#include <crepe/api/Config.h> +  using namespace crepe;  using namespace testing;  |