From 02cdbd367d701d8d858806f45bfe2f15b392bb59 Mon Sep 17 00:00:00 2001 From: JAROWMR Date: Wed, 20 Nov 2024 11:37:49 +0100 Subject: made test function and fixed static value --- src/test/CollisionTest.cpp | 60 +++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 54 insertions(+), 6 deletions(-) (limited to 'src/test/CollisionTest.cpp') diff --git a/src/test/CollisionTest.cpp b/src/test/CollisionTest.cpp index 3c2ee6e..5da26cc 100644 --- a/src/test/CollisionTest.cpp +++ b/src/test/CollisionTest.cpp @@ -1,3 +1,4 @@ +#include #include #include @@ -9,7 +10,8 @@ #include #include -#include +#include +#include using namespace std; @@ -19,10 +21,10 @@ using namespace crepe; class MyScript : public Script { public: - static crepe::CollisionSystem::CollisionInfo last_collision_info; + static const crepe::CollisionSystem::CollisionInfo* last_collision_info; private: static bool oncollision(const CollisionEvent& test) { - std::cout << "test collision: " << test.info.first.collider.game_object_id << std::endl; + last_collision_info = &test.info; return true; } void init() { @@ -37,14 +39,60 @@ class MyScript : public Script { class CollisionTest : public ::testing::Test { public: ComponentManager component_manager; - PhysicsSystem system{component_manager}; + CollisionSystem system{component_manager}; void SetUp() override { + MyScript::last_collision_info = nullptr; ComponentManager & mgr = this->component_manager; + if(mgr.get_components_by_id(0).empty()) + { + create_test_world(); + create_test_components(); + } + reset_test_components(); + } + + void create_test_world() { + double screen_size_width = 640; + double screen_size_height = 480; + double world_collider = 1000; + ComponentManager & mgr = this->component_manager; + GameObject world = mgr.new_object("Name", "Tag", Vector2{screen_size_width/2, screen_size_height/2}, 0, 1); + world.add_component(Rigidbody::Data{ + .mass = 0, + .gravity_scale = 0, + .body_type = Rigidbody::BodyType::STATIC, + .constraints = {0, 0, 0}, + .use_gravity = false, + .bounce = false, + .offset = {0,0} + }); + world.add_component(Vector2{0, 0-(screen_size_height/2+world_collider/2)}, world_collider, world_collider);; // Top + world.add_component(Vector2{0, screen_size_height/2+world_collider/2}, world_collider, world_collider); // Bottom + world.add_component(Vector2{0-(screen_size_width/2+world_collider/2), 0}, world_collider, world_collider); // Left + world.add_component(Vector2{screen_size_width/2+world_collider/2, 0}, world_collider, world_collider); // right + } + + void create_test_components() + { + + } + + void reset_test_components() + { + } }; TEST_F(CollisionTest, collision) { -//read static data -const CollisionEvent& test = MyScript::last_collision_info; + // change object data before calling update + + // call collision system update + system.update(); + // should not be nullptr after update + ASSERT_NE(MyScript::last_collision_info, nullptr); + + // check if values are correct + EXPECT_EQ(MyScript::last_collision_info->first.collider.game_object_id, 1); + EXPECT_EQ(MyScript::last_collision_info->second.collider.game_object_id, 2); } -- cgit v1.2.3