From 842097d321e2ad9eedd7a171cdcca001d112de55 Mon Sep 17 00:00:00 2001 From: Felix Morgner Date: Fri, 16 May 2025 18:39:44 +0200 Subject: lib: implement addition of participants --- lib/tests/turnsmm/turn-order.cpp | 50 ++++++++++++++++++++++++++++++++++++---- 1 file changed, 45 insertions(+), 5 deletions(-) (limited to 'lib/tests/turnsmm') diff --git a/lib/tests/turnsmm/turn-order.cpp b/lib/tests/turnsmm/turn-order.cpp index ed9d586..089e6eb 100644 --- a/lib/tests/turnsmm/turn-order.cpp +++ b/lib/tests/turnsmm/turn-order.cpp @@ -4,6 +4,8 @@ #include +#include + #include SCENARIO("Creating a turn order", "[lib][object][lifetime]") @@ -12,32 +14,70 @@ SCENARIO("Creating a turn order", "[lib][object][lifetime]") { auto instance = Turns::TurnOrder{}; - THEN("it's participant count is 0") + THEN("its participant count is 0") { REQUIRE(instance.get_participant_count() == 0uz); REQUIRE(instance.get_property("participant-count") == 0); } - THEN("it's running state is false") + THEN("its running state is false") { REQUIRE_FALSE(instance.get_running()); REQUIRE_FALSE(instance.get_property("running")); } - THEN("it's item count is 0") + THEN("its item count is 0") { REQUIRE(instance.get_n_items() == 0); } - THEN("it's item type is Turns.Participant") + THEN("its item type is Turns.Participant") { REQUIRE(instance.get_item_type() == Turns::Participant::get_type()); } - THEN("it's first item is NULL") + THEN("its first item is NULL") { REQUIRE(instance.get_object(0) == nullptr); REQUIRE(instance.get_typed_object(0) == nullptr); } } +} + +SCENARIO("Modifying a turn order", "[lib][object][data]") +{ + GIVEN("An empty turn order") + { + auto instance = Turns::TurnOrder{}; + CHECK(instance.get_participant_count() == 0); + + WHEN("a participant is added") + { + auto participant = Turns::Participant::create("Test Participant", 10.0f, Turns::Disposition::Friendly); + instance.add(participant); + + THEN("its participant count is 1") + { + REQUIRE(instance.get_participant_count() == 1); + } + + THEN("its running state is false") + { + REQUIRE_FALSE(instance.get_running()); + } + + THEN("its item count is 1") + { + REQUIRE(instance.get_n_items() == 1); + } + + THEN("its first item is the same participant") + { + auto obj = instance.get_object(0); + auto cnt = obj->gobj()->ref_count; + REQUIRE(cnt > 0); + REQUIRE(obj == participant); + } + } + } } \ No newline at end of file -- cgit v1.2.3