aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/test/CollisionTest.cpp22
1 files changed, 14 insertions, 8 deletions
diff --git a/src/test/CollisionTest.cpp b/src/test/CollisionTest.cpp
index b15db71..5ee560a 100644
--- a/src/test/CollisionTest.cpp
+++ b/src/test/CollisionTest.cpp
@@ -24,13 +24,14 @@ class CollisionHandler : public Script {
public:
int box_id;
EventManager & evmgr = EventManager::get_instance();
+ function<void(const CollisionEvent& ev)> test_fn = [](const CollisionEvent & ev) { };
CollisionHandler(int box_id) {
this->box_id = box_id;
}
bool on_collision(const CollisionEvent& ev) {
- Log::logf("Box {} event x={} y={}", box_id, ev.info.move_back_value.x, ev.info.move_back_value.y);
+ test_fn(ev);
return true;
}
@@ -54,8 +55,8 @@ public:
GameObject game_object1 = mgr.new_object("object1", "", { 0, 0 });
GameObject game_object2 = mgr.new_object("object2", "", { 0, 0 });
- Script * script_object1_ref = nullptr;
- Script * script_object2_ref = nullptr;
+ CollisionHandler * script_object1_ref = nullptr;
+ CollisionHandler * script_object2_ref = nullptr;
void SetUp() override {
world.add_component<Rigidbody>(Rigidbody::Data{
@@ -87,7 +88,7 @@ public:
});
game_object1.add_component<BoxCollider>(Vector2{0, 0}, 20, 20);
BehaviorScript & script_object1 = game_object1.add_component<BehaviorScript>().set_script<CollisionHandler>(1);
- script_object1_ref = script_object1.script.get();
+ script_object1_ref = static_cast<CollisionHandler*>(script_object1.script.get());
ASSERT_NE(script_object1_ref, nullptr);
game_object2.add_component<Rigidbody>(Rigidbody::Data{
@@ -103,7 +104,7 @@ public:
});
game_object2.add_component<BoxCollider>(Vector2{0, 0}, 20, 20);
BehaviorScript & script_object2 = game_object2.add_component<BehaviorScript>().set_script<CollisionHandler>(2);
- script_object2_ref = script_object2.script.get();
+ script_object2_ref = static_cast<CollisionHandler*>(script_object2.script.get());
ASSERT_NE(script_object2_ref, nullptr);
// Ensure Script::init() is called on all BehaviorScript instances
@@ -112,7 +113,12 @@ public:
};
TEST_F(CollisionTest, collision_example) {
+ script_object1_ref->test_fn = [](const CollisionEvent & ev) {
+ Log::logf("event x={} y={}", ev.info.move_back_value.x, ev.info.move_back_value.y);
+ EXPECT_TRUE(true);
+ };
collision_sys.update();
+
// should be nullptr after update with no collision
//ASSERT_EQ(MyScriptCollider1::last_collision_info_1, nullptr);
//ASSERT_EQ(MyScriptCollider2::last_collision_info_2, nullptr);
@@ -123,9 +129,9 @@ TEST_F(CollisionTest, collision_example) {
}
TEST_F(CollisionTest, collision_box_box_dynamic) {
- // change object data before calling update
- Transform & test = mgr.get_components_by_id<Transform>(game_object1.id).front().get();
- // call collision collision_sys update
+ script_object1_ref->test_fn = [](const CollisionEvent & ev) {
+ EXPECT_TRUE(false);
+ };
collision_sys.update();
// should be nullptr after update with no collision
// ASSERT_NE(MyScriptCollider1::last_collision_info_1, nullptr);