1
- #include < gtest/gtest .h>
1
+ #include < doctest/doctest .h>
2
2
3
3
#include < atomic>
4
4
#include < eventbus/event_bus.hpp>
5
+ #include < iostream>
5
6
#include < thread>
6
7
7
8
struct test_event_type {
@@ -28,7 +29,7 @@ void free_function_callback(const test_event_type& type_event) {
28
29
std::cout << " Free function callback : " << type_event << " \n " ;
29
30
}
30
31
31
- TEST (EventBus, LambdaRegistrationAndDeregistration ) {
32
+ TEST_CASE ( " lambda registration and de-registration " ) {
32
33
dp::event_bus evt_bus;
33
34
event_handler_counter counter;
34
35
auto registration =
@@ -39,41 +40,41 @@ TEST(EventBus, LambdaRegistrationAndDeregistration) {
39
40
evt_bus.register_handler <test_event_type>([]() { std::cout << " Lambda 1\n " ; });
40
41
const auto lambda_two_reg =
41
42
evt_bus.register_handler <test_event_type>([&test_event](const test_event_type& evt) {
42
- EXPECT_EQ (evt.id , test_event.id );
43
- EXPECT_EQ (evt.event_message , test_event.event_message );
44
- EXPECT_EQ (evt.data_value , test_event.data_value );
43
+ CHECK_EQ (evt.id , test_event.id );
44
+ CHECK_EQ (evt.event_message , test_event.event_message );
45
+ CHECK_EQ (evt.data_value , test_event.data_value );
45
46
});
46
47
47
48
const auto lambda_three_reg = evt_bus.register_handler <test_event_type>(
48
49
[](test_event_type) { std::cout << " Lambda 3 take by copy.\n " ; });
49
50
50
51
// should be 4 because we register a handler in the test fixture SetUp
51
- ASSERT_EQ (evt_bus.handler_count (), 4 );
52
+ REQUIRE_EQ (evt_bus.handler_count (), 4 );
52
53
evt_bus.fire_event (test_event);
53
- EXPECT_EQ (counter.get_count (), 1 );
54
+ CHECK_EQ (counter.get_count (), 1 );
54
55
evt_bus.fire_event (test_event);
55
- EXPECT_EQ (counter.get_count (), 2 );
56
+ CHECK_EQ (counter.get_count (), 2 );
56
57
57
58
evt_bus.remove_handler (lambda_one_reg);
58
59
59
60
evt_bus.fire_event (test_event);
60
- EXPECT_EQ (counter.get_count (), 3 );
61
- EXPECT_EQ (evt_bus.handler_count (), 3 );
61
+ CHECK_EQ (counter.get_count (), 3 );
62
+ CHECK_EQ (evt_bus.handler_count (), 3 );
62
63
63
64
evt_bus.remove_handler (lambda_two_reg);
64
65
65
66
evt_bus.fire_event (test_event);
66
- EXPECT_EQ (counter.get_count (), 4 );
67
- EXPECT_EQ (evt_bus.handler_count (), 2 );
67
+ CHECK_EQ (counter.get_count (), 4 );
68
+ CHECK_EQ (evt_bus.handler_count (), 2 );
68
69
69
70
evt_bus.remove_handler (lambda_three_reg);
70
71
71
72
evt_bus.fire_event (test_event);
72
- EXPECT_EQ (counter.get_count (), 5 );
73
- EXPECT_EQ (evt_bus.handler_count (), 1 );
73
+ CHECK_EQ (counter.get_count (), 5 );
74
+ CHECK_EQ (evt_bus.handler_count (), 1 );
74
75
}
75
76
76
- TEST (EventBus, DeregisterWhileDispatching ) {
77
+ TEST_CASE ( " deregister while dispatching " ) {
77
78
dp::event_bus evt_bus;
78
79
event_handler_counter counter;
79
80
auto registration =
@@ -106,18 +107,18 @@ TEST(EventBus, DeregisterWhileDispatching) {
106
107
for (auto i = 0 ; i < 40 ; ++i) {
107
108
evt_bus.fire_event (test_event_type{3 , " test event" , 3.4 });
108
109
// add 1 because of the test fixture.
109
- EXPECT_EQ (evt_bus.handler_count (), listeners.size () + 1 );
110
+ CHECK_EQ (evt_bus.handler_count (), listeners.size () + 1 );
110
111
}
111
112
112
113
// remove all the registrations
113
114
for (auto & reg : registrations) {
114
- EXPECT_TRUE (evt_bus.remove_handler (reg));
115
+ CHECK (evt_bus.remove_handler (reg));
115
116
}
116
117
117
- EXPECT_EQ (evt_bus.handler_count (), 1 );
118
+ CHECK_EQ (evt_bus.handler_count (), 1 );
118
119
}
119
120
120
- TEST (EventBus, MultiThreaded ) {
121
+ TEST_CASE ( " multi-threaded event dispatch " ) {
121
122
class simple_listener {
122
123
int index_;
123
124
@@ -158,22 +159,22 @@ TEST(EventBus, MultiThreaded) {
158
159
thread_two.join ();
159
160
160
161
// include the event counter
161
- EXPECT_EQ (evt_bus.handler_count (), 3 );
162
+ CHECK_EQ (evt_bus.handler_count (), 3 );
162
163
163
- EXPECT_EQ (event_counter.get_count (), 10 );
164
+ CHECK_EQ (event_counter.get_count (), 10 );
164
165
}
165
166
166
- TEST (EventBus, AutoDeregisterInDtor ) {
167
+ TEST_CASE ( " auto de-register in destructor " ) {
167
168
dp::event_bus evt_bus;
168
169
event_handler_counter counter;
169
170
{
170
171
auto registration = evt_bus.register_handler <test_event_type>(
171
172
&counter, &event_handler_counter::on_test_event);
172
173
}
173
174
174
- EXPECT_EQ (evt_bus.handler_count (), 0 );
175
+ CHECK_EQ (evt_bus.handler_count (), 0 );
175
176
evt_bus.fire_event (test_event_type{});
176
177
evt_bus.fire_event (test_event_type{});
177
178
evt_bus.fire_event (test_event_type{});
178
- EXPECT_EQ (counter.get_count (), 0 );
179
- }
179
+ CHECK_EQ (counter.get_count (), 0 );
180
+ }
0 commit comments