Added Helper function to ChoiceQueue to move a specific creature's choice up next.
This commit is contained in:
48
tests/BattleTests/ChoiceQueueTests.cpp
Normal file
48
tests/BattleTests/ChoiceQueueTests.cpp
Normal file
@@ -0,0 +1,48 @@
|
||||
#ifdef TESTS_BUILD
|
||||
|
||||
#include "../../extern/catch.hpp"
|
||||
#include "../../src/Battling/Flow/ChoiceQueue.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("Move creature choice up next.", "[Battling]") {
|
||||
auto lib = TestLibrary::Get();
|
||||
auto c1 = CreateCreature(lib, "testSpecies1", 1).Create();
|
||||
auto c2 = CreateCreature(lib, "testSpecies1", 1).Create();
|
||||
auto c3 = CreateCreature(lib, "testSpecies1", 1).Create();
|
||||
auto c4 = CreateCreature(lib, "testSpecies1", 1).Create();
|
||||
|
||||
std::vector<BaseTurnChoice*> choices = {
|
||||
new PassTurnChoice(c1),
|
||||
new PassTurnChoice(c2),
|
||||
new PassTurnChoice(c3),
|
||||
new PassTurnChoice(c4),
|
||||
};
|
||||
|
||||
auto choiceQueue = ChoiceQueue(choices);
|
||||
CHECK(choiceQueue.MoveCreatureChoiceNext(c4));
|
||||
auto currentChoices = choiceQueue.GetInnerQueue();
|
||||
CHECK(currentChoices[0]->GetUser() == c4);
|
||||
CHECK(currentChoices[1]->GetUser() == c1);
|
||||
CHECK(currentChoices[2]->GetUser() == c2);
|
||||
CHECK(currentChoices[3]->GetUser() == c3);
|
||||
|
||||
CHECK_FALSE(choiceQueue.MoveCreatureChoiceNext(c4));
|
||||
delete choiceQueue.Dequeue();
|
||||
delete choiceQueue.Dequeue();
|
||||
CHECK_FALSE(choiceQueue.MoveCreatureChoiceNext(c1));
|
||||
|
||||
delete choiceQueue.Dequeue();
|
||||
delete choiceQueue.Dequeue();
|
||||
|
||||
delete c1;
|
||||
delete c2;
|
||||
delete c3;
|
||||
delete c4;
|
||||
}
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user