Skip to content

Commit 88cd573

Browse files
committed
Test codes have been added
1 parent b9f73ae commit 88cd573

File tree

2 files changed

+117
-0
lines changed

2 files changed

+117
-0
lines changed

test/CMakeLists.txt

+9
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
cmake_minimum_required(VERSION 3.14)
2+
3+
project(test)
4+
5+
find_package(GTest CONFIG REQUIRED)
6+
7+
add_executable(test test.cpp)
8+
9+
target_link_libraries(test PRIVATE libcpp-event-hub GTest::gtest GTest::gtest_main)

test/test.cpp

+108
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,108 @@
1+
#include <gtest/gtest.h>
2+
#include "libcpp-event-hub.hpp"
3+
#include <string>
4+
5+
using namespace lklibs;
6+
7+
TEST(EventHubTest, AddListenerAndEmitString)
8+
{
9+
auto& eventHub = EventHub::getInstance();
10+
11+
bool listenerCalled = false;
12+
13+
auto listenerId = eventHub.addListener<std::string>("testEvent", [&](const std::string& eventName, const std::string& sender, const std::string& data)
14+
{
15+
listenerCalled = true;
16+
17+
EXPECT_EQ(eventName, "testEvent");
18+
EXPECT_EQ(sender, "testSender");
19+
EXPECT_EQ(data, "testData");
20+
});
21+
22+
eventHub.emit("testEvent", "testSender", std::string("testData"));
23+
24+
EXPECT_TRUE(listenerCalled);
25+
26+
eventHub.removeListener("testEvent", listenerId);
27+
}
28+
29+
TEST(EventHubTest, AddListenerAndEmitInt)
30+
{
31+
auto& eventHub = EventHub::getInstance();
32+
33+
bool listenerCalled = false;
34+
35+
auto listenerId = eventHub.addListener<int>("testEvent", [&](const std::string& eventName, const std::string& sender, const int& data)
36+
{
37+
listenerCalled = true;
38+
39+
EXPECT_EQ(eventName, "testEvent");
40+
EXPECT_EQ(sender, "testSender");
41+
EXPECT_EQ(data, 7);
42+
});
43+
44+
eventHub.emit("testEvent", "testSender", 7);
45+
46+
EXPECT_TRUE(listenerCalled);
47+
48+
eventHub.removeListener("testEvent", listenerId);
49+
}
50+
51+
TEST(EventHubTest, GeneralListener)
52+
{
53+
auto& eventHub = EventHub::getInstance();
54+
55+
bool generalListenerCalled = false;
56+
bool specificListenerCalled = false;
57+
58+
auto generalListenerId = eventHub.addListener<std::string>("*", [&](const std::string& eventName, const std::string& sender, const std::string& data)
59+
{
60+
generalListenerCalled = true;
61+
62+
EXPECT_EQ(eventName, "testEvent");
63+
EXPECT_EQ(sender, "testSender");
64+
EXPECT_EQ(data, "testData");
65+
});
66+
67+
auto specificListenerId = eventHub.addListener<std::string>("testEvent", [&](const std::string& eventName, const std::string& sender, const std::string& data)
68+
{
69+
specificListenerCalled = true;
70+
71+
EXPECT_EQ(eventName, "testEvent");
72+
EXPECT_EQ(sender, "testSender");
73+
EXPECT_EQ(data, "testData");
74+
});
75+
76+
eventHub.emit("testEvent", "testSender", std::string("testData"));
77+
78+
EXPECT_TRUE(generalListenerCalled);
79+
EXPECT_TRUE(specificListenerCalled);
80+
81+
eventHub.removeListener("*", generalListenerId);
82+
eventHub.removeListener("testEvent", specificListenerId);
83+
}
84+
85+
TEST(EventHubTest, RemoveListener)
86+
{
87+
auto& eventHub = EventHub::getInstance();
88+
89+
bool listenerCalled = false;
90+
91+
auto listenerId = eventHub.addListener<std::string>("testEvent", [&](const std::string& eventName, const std::string& sender, const std::string& data)
92+
{
93+
listenerCalled = true;
94+
});
95+
96+
eventHub.removeListener("testEvent", listenerId);
97+
98+
eventHub.emit("testEvent", "testSender", std::string("testData"));
99+
100+
EXPECT_FALSE(listenerCalled);
101+
}
102+
103+
int main(int argc, char** argv)
104+
{
105+
testing::InitGoogleTest(&argc, argv);
106+
107+
return RUN_ALL_TESTS();
108+
}

0 commit comments

Comments
 (0)