blob: 05e3b07a2b0f4635716af8a1632e856577123ad1 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
|
#include "turns-turn-order.h"
#include "turns-participant.h"
#include <catch2/catch_test_macros.hpp>
#include <gio/gio.h>
#include <glib-object.h>
#include <glibconfig.h>
#include <turns-disposition.h>
SCENARIO("Creating a turn order", "[lib][object][lifetime]")
{
GIVEN("A turn order constructed using turns_turn_order_new()")
{
g_autoptr(TurnsTurnOrder) instance = turns_turn_order_new();
THEN("its participant count is 0")
{
REQUIRE(turns_turn_order_get_participant_count(instance) == 0uz);
}
THEN("its running state is false")
{
REQUIRE_FALSE(turns_turn_order_get_running(instance));
auto property_value = decltype(turns_turn_order_get_participant_count(instance)){};
g_object_get(instance, "running", &property_value, nullptr);
REQUIRE_FALSE(property_value);
}
THEN("its item count is 0")
{
REQUIRE(g_list_model_get_n_items(G_LIST_MODEL(instance)) == 0);
}
THEN("its item type is Turns.Participant")
{
REQUIRE(g_list_model_get_item_type(G_LIST_MODEL(instance)) == turns_participant_get_type());
}
THEN("its first item is NULL")
{
REQUIRE(g_list_model_get_item(G_LIST_MODEL(instance), 0) == nullptr);
REQUIRE(g_list_model_get_object(G_LIST_MODEL(instance), 0) == nullptr);
}
}
}
SCENARIO("Modifying a turn order", "[lib][object][data]")
{
GIVEN("An empty turn order")
{
g_autoptr(TurnsTurnOrder) instance = turns_turn_order_new();
CHECK(turns_turn_order_get_participant_count(instance) == 0);
WHEN("a participant is added")
{
g_autoptr(TurnsParticipant) participant = turns_participant_new_with("Test Participant", 10.0f, TURNS_DISPOSITION_FRIENDLY);
turns_turn_order_add(instance, participant);
THEN("its participant count is 1")
{
REQUIRE(turns_turn_order_get_participant_count(instance) == 1);
}
THEN("its running state is false")
{
REQUIRE_FALSE(turns_turn_order_get_running(instance));
}
THEN("its item count is 1")
{
REQUIRE(g_list_model_get_n_items(G_LIST_MODEL(instance)) == 1);
}
THEN("its first item is the same participant")
{
g_autoptr(TurnsParticipant) item = TURNS_PARTICIPANT(g_list_model_get_item(G_LIST_MODEL(instance), 0));
REQUIRE(item == participant);
g_autoptr(TurnsParticipant) object = TURNS_PARTICIPANT(g_list_model_get_object(G_LIST_MODEL(instance), 0));
REQUIRE(TURNS_PARTICIPANT(object) == participant);
}
}
}
}
|