diff options
Diffstat (limited to 'lib/tests/turnsmm/turn-order.cpp')
| -rw-r--r-- | lib/tests/turnsmm/turn-order.cpp | 50 |
1 files changed, 45 insertions, 5 deletions
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 <catch2/catch_test_macros.hpp> +#include <turnsmm/enums.hpp> + #include <cstddef> 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<std::size_t>("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<std::size_t>("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<Turns::Participant>(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 |
