aboutsummaryrefslogtreecommitdiff
path: root/tests/common
diff options
context:
space:
mode:
authorCarbenium <carbenium@outlook.com>2020-07-25 18:16:17 +0200
committerPeter Keresztes Schmidt <carbenium@outlook.com>2020-07-26 23:20:11 +0200
commit7865c1c197f4eb9165ef3ab26eb4f750a5b58960 (patch)
treecc8e31ac68bc062a0cc0b0ccf3af936728845195 /tests/common
parent4470b9122379dc846b322a441951a03913912b71 (diff)
Core/EventMap: Clarify documentation of ScheduleEvent
Diffstat (limited to 'tests/common')
-rw-r--r--tests/common/test-EventMap.cpp39
1 files changed, 29 insertions, 10 deletions
diff --git a/tests/common/test-EventMap.cpp b/tests/common/test-EventMap.cpp
index 9a28361d930..21d5591872f 100644
--- a/tests/common/test-EventMap.cpp
+++ b/tests/common/test-EventMap.cpp
@@ -77,21 +77,40 @@ TEST_CASE("Schedule an event", "[EventMap]")
}
}
-// TODO: The semantics of this case are not well defined.
-// Document them first, check consumers and adapt test
-// accordingly.
-TEST_CASE("Schedule existing event", "[EventMap][!mayfail]")
+TEST_CASE("Schedule existing event", "[EventMap]")
{
EventMap eventMap;
- eventMap.ScheduleEvent(EVENT_1, 1s);
- eventMap.ScheduleEvent(EVENT_1, 1s);
+ SECTION("Same time")
+ {
+ eventMap.ScheduleEvent(EVENT_1, 1s);
+ eventMap.ScheduleEvent(EVENT_1, 1s);
- eventMap.Update(1000);
- uint32 id = eventMap.ExecuteEvent();
+ eventMap.Update(1000);
+ uint32 id = eventMap.ExecuteEvent();
+ REQUIRE(id == EVENT_1);
- REQUIRE(id == EVENT_1);
- REQUIRE(eventMap.Empty());
+ id = eventMap.ExecuteEvent();
+ REQUIRE(id == EVENT_1);
+
+ REQUIRE(eventMap.Empty());
+ }
+
+ SECTION("Different time")
+ {
+ eventMap.ScheduleEvent(EVENT_1, 1s);
+ eventMap.ScheduleEvent(EVENT_1, 2s);
+
+ eventMap.Update(1000);
+ uint32 id = eventMap.ExecuteEvent();
+ REQUIRE(id == EVENT_1);
+
+ eventMap.Update(1000);
+ id = eventMap.ExecuteEvent();
+ REQUIRE(id == EVENT_1);
+
+ REQUIRE(eventMap.Empty());
+ }
}
TEST_CASE("Cancel a scheduled event", "[EventMap]")