summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFelix Morgner <felix.morgner@gmail.com>2025-05-20 16:49:49 +0200
committerFelix Morgner <felix.morgner@gmail.com>2025-05-20 16:49:49 +0200
commitbce0c3d0a21c4a0f53984d55c00d1505957353a3 (patch)
tree7e17b84585e27acb3b57a74978befe70ac8a800b
parent7d9d987d6ccb80aabe98ee1fdb9e5bcc7394ddf2 (diff)
downloadturns-bce0c3d0a21c4a0f53984d55c00d1505957353a3.tar.xz
turns-bce0c3d0a21c4a0f53984d55c00d1505957353a3.zip
lib: add wrapper for id
-rw-r--r--lib/src/turns-participant.h2
-rw-r--r--lib/src/turnsmm/participant.cpp5
-rw-r--r--lib/src/turnsmm/participant.hpp1
-rw-r--r--lib/tests/turns-participant.cpp23
-rw-r--r--lib/tests/turnsmm/participant.cpp10
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<Disposition>(turns_participant_get_disposition(const_cast<BaseObjectType *>(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<BaseObjectType *>(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")