#ifdef TESTS_BUILD #include "../../extern/catch.hpp" #include "../../src/Battling/EventHooks/EventHook.hpp" #include "../../src/Battling/Models/CreateCreature.hpp" #include "../TestLibrary/TestLibrary.hpp" using namespace CreatureLib::Battling; // TEST_CASE("Build and use event hook", "[Battling]") { // auto eventHook = EventHook(); // std::vector events; // eventHook.RegisterListener([&](const EventData* evt) mutable -> void { events.push_back(evt); }); // for (size_t i = 0; i < 10; i++) { // eventHook.Trigger(nullptr, DamageSource::AttackDamage, 0, 0); // } // REQUIRE(events.size() == 10); // REQUIRE(events[0]->GetKind() == EventDataKind::Damage); //} // // TEST_CASE("Build and use event hook a lot", "[Battling]") { // auto eventHook = EventHook(); // std::vector events; // eventHook.RegisterListener([&](const EventData* evt) mutable -> void { events.push_back(evt); }); // for (size_t i = 0; i < 10000; i++) { // eventHook.Trigger(nullptr, DamageSource::AttackDamage, 0, 0); // } // REQUIRE(events.size() == 10000); //} // // TEST_CASE("Build and use event hook with different types", "[Battling]") { // auto eventHook = EventHook(); // std::vector events; // eventHook.RegisterListener([&](const EventData* evt) mutable -> void { events.push_back(evt); }); // eventHook.Trigger(nullptr, DamageSource::AttackDamage, 0, 0); // eventHook.Trigger(nullptr); // eventHook.Trigger(nullptr, DamageSource::AttackDamage, 0, 0); // eventHook.Trigger(nullptr); // eventHook.Trigger(nullptr, DamageSource::AttackDamage, 0, 0); // eventHook.Trigger(nullptr); // eventHook.Trigger(nullptr, DamageSource::AttackDamage, 0, 0); // eventHook.Trigger(nullptr); //} #endif