From bce0c3d0a21c4a0f53984d55c00d1505957353a3 Mon Sep 17 00:00:00 2001 From: Felix Morgner Date: Tue, 20 May 2025 16:49:49 +0200 Subject: lib: add wrapper for id --- lib/src/turns-participant.h | 2 +- lib/src/turnsmm/participant.cpp | 5 +++++ lib/src/turnsmm/participant.hpp | 1 + lib/tests/turns-participant.cpp | 23 +++++++++++++++++------ lib/tests/turnsmm/participant.cpp | 10 ++++++++++ 5 files changed, 34 insertions(+), 7 deletions(-) diff --git a/lib/src/turns-participant.h b/lib/src/turns-participant.h index 6ed8ac6..edfdf9e 100644 --- a/lib/src/turns-participant.h +++ b/lib/src/turns-participant.h @@ -68,7 +68,7 @@ TurnsParticipantDisposition turns_participant_get_disposition(TurnsParticipant c * @brief Get the id of a participant. * * @param self A participant instance. The value *must not* be NULL. - * @return The id of the instance. The value is owned by the caller of the function. + * @return The id of the instance. The data ist owned by the instance. */ gchar const * turns_participant_get_id(TurnsParticipant const * self); diff --git a/lib/src/turnsmm/participant.cpp b/lib/src/turnsmm/participant.cpp index 38dfb3e..170c3a2 100644 --- a/lib/src/turnsmm/participant.cpp +++ b/lib/src/turnsmm/participant.cpp @@ -110,6 +110,11 @@ namespace Turns return static_cast(turns_participant_get_disposition(const_cast(unwrap(this)))); } + auto Participant::get_id() const noexcept -> Glib::ustring + { + return Glib::convert_const_gchar_ptr_to_ustring(turns_participant_get_id(unwrap(this))); + } + auto Participant::get_name() const -> Glib::ustring { return turns_participant_get_name(const_cast(unwrap(this))); diff --git a/lib/src/turnsmm/participant.hpp b/lib/src/turnsmm/participant.hpp index b23fd42..c76cc29 100644 --- a/lib/src/turnsmm/participant.hpp +++ b/lib/src/turnsmm/participant.hpp @@ -47,6 +47,7 @@ namespace Turns [[nodiscard]] auto get_active() const noexcept -> bool; [[nodiscard]] auto get_defeated() const noexcept -> bool; [[nodiscard]] auto get_disposition() const noexcept -> Disposition; + [[nodiscard]] auto get_id() const noexcept -> Glib::ustring; [[nodiscard]] auto get_name() const -> Glib::ustring; [[nodiscard]] auto get_priority() const noexcept -> float; diff --git a/lib/tests/turns-participant.cpp b/lib/tests/turns-participant.cpp index f8ca2b3..7b9f22e 100644 --- a/lib/tests/turns-participant.cpp +++ b/lib/tests/turns-participant.cpp @@ -23,32 +23,42 @@ SCENARIO("Creating a participant", "[lib][object][lifetime]") { g_autoptr(TurnsParticipant) instance = turns_participant_new(); - THEN("it's name is empty") + THEN("its name is empty") { auto name = turns_participant_get_name(instance); REQUIRE(name); REQUIRE(std::string{name}.empty()); } - THEN("it's priority is 0.0f") + THEN("its priority is 0.0f") { REQUIRE(turns_participant_get_priority(instance) == Catch::Approx{0.0}); } - THEN("it's disposition is neutral") + THEN("its disposition is neutral") { REQUIRE(turns_participant_get_disposition(instance) == TURNS_PARTICIPANT_DISPOSITION_NEUTRAL); } - THEN("it's active state is false") + THEN("its active state is false") { REQUIRE_FALSE(turns_participant_get_active(instance)); } - THEN("it's defeated state is false") + THEN("its defeated state is false") { REQUIRE_FALSE(turns_participant_get_defeated(instance)); } + + THEN("its id is not null") + { + REQUIRE(turns_participant_get_id(instance) != nullptr); + } + + THEN("its id is a valid UUID") + { + REQUIRE(g_uuid_string_is_valid(turns_participant_get_id(instance))); + } } GIVEN("A participant constructed using turns_participant_new_with(...)") @@ -135,7 +145,8 @@ SCENARIO("Modifying a participant", "[lib][object][data]") WHEN("a new disposition is set") { - auto new_value = GENERATE(TURNS_PARTICIPANT_DISPOSITION_FRIENDLY, TURNS_PARTICIPANT_DISPOSITION_HOSTILE, TURNS_PARTICIPANT_DISPOSITION_SECRET); + auto new_value = + GENERATE(TURNS_PARTICIPANT_DISPOSITION_FRIENDLY, TURNS_PARTICIPANT_DISPOSITION_HOSTILE, TURNS_PARTICIPANT_DISPOSITION_SECRET); CHECK_FALSE(turns_participant_get_disposition(instance) == new_value); turns_participant_set_disposition(instance, new_value); diff --git a/lib/tests/turnsmm/participant.cpp b/lib/tests/turnsmm/participant.cpp index bcfa99c..f52abbd 100644 --- a/lib/tests/turnsmm/participant.cpp +++ b/lib/tests/turnsmm/participant.cpp @@ -39,6 +39,16 @@ SCENARIO("Creating a participant", "[lib][object][lifetime]") { REQUIRE_FALSE(instance.get_defeated()); } + + THEN("its id is not empty") + { + REQUIRE_FALSE(instance.get_id().empty()); + } + + THEN("its id is a valid UUID") + { + REQUIRE(g_uuid_string_is_valid(instance.get_id().c_str())); + } } GIVEN("A participant constructed using the 3-parameter constructor") -- cgit v1.2.3