#ifdef TESTS_BUILD #include "../../extern/doctest.hpp" #include "../../src/Battling/Models/Battle.hpp" #include "../../src/Battling/Models/BattleSide.hpp" #include "../../src/Battling/Models/CreateCreature.hpp" #include "../../src/Battling/TurnChoices/PassTurnChoice.hpp" #include "../TestLibrary/TestLibrary.hpp" using namespace CreatureLib::Battling; TEST_CASE("Set Choice one-sized side") { auto lib = TestLibrary::Get(); auto battle = Battle(lib, {}); auto side = BattleSide(0, &battle, 1); auto c = CreateCreature(TestLibrary::Get(), "testSpecies1"_cnc, 5).Create(); side.SetCreature(c, 0); auto choice = new PassTurnChoice(c); side.SetChoice(choice); delete c; } TEST_CASE("Set Choice one-sized side, validate all choices set") { auto lib = TestLibrary::Get(); auto battle = Battle(lib, {}); auto side = BattleSide(0, &battle, 1); auto c = CreateCreature(TestLibrary::Get(), "testSpecies1"_cnc, 5).Create(); side.SetCreature(c, 0); auto choice = new PassTurnChoice(c); REQUIRE_FALSE(side.AllChoicesSet()); side.SetChoice(choice); REQUIRE(side.AllChoicesSet()); delete c; } TEST_CASE("Set Choice two-sized side") { auto lib = TestLibrary::Get(); auto battle = Battle(lib, {}); auto side = BattleSide(0, &battle, 2); auto c1 = CreateCreature(TestLibrary::Get(), "testSpecies1"_cnc, 5).Create(); auto c2 = CreateCreature(TestLibrary::Get(), "testSpecies1"_cnc, 5).Create(); side.SetCreature(c1, 0); side.SetCreature(c2, 1); auto choice1 = new PassTurnChoice(c1); auto choice2 = new PassTurnChoice(c2); side.SetChoice(choice1); side.SetChoice(choice2); delete c1; delete c2; } TEST_CASE("Set Choice two-sized side, validate all choices set") { auto lib = TestLibrary::Get(); auto battle = Battle(lib, {}); auto side = BattleSide(0, &battle, 2); auto c1 = CreateCreature(TestLibrary::Get(), "testSpecies1"_cnc, 5).Create(); auto c2 = CreateCreature(TestLibrary::Get(), "testSpecies1"_cnc, 5).Create(); side.SetCreature(c1, 0); side.SetCreature(c2, 1); auto choice1 = new PassTurnChoice(c1); auto choice2 = new PassTurnChoice(c2); REQUIRE_FALSE(side.AllChoicesSet()); side.SetChoice(choice1); REQUIRE_FALSE(side.AllChoicesSet()); side.SetChoice(choice2); REQUIRE(side.AllChoicesSet()); delete c1; delete c2; } #endif