drogon/unittest/PubSubServiceUnittest.cpp

25 lines
771 B
C++

#include <gtest/gtest.h>
#include <drogon/PubSubService.h>
#include <string>
#include <iostream>
TEST(PubSubServiceTest, normal)
{
drogon::PubSubService<std::string> service;
auto id=service.subscribe("topic1",
[](const std::string &topic, const std::string &message) {
EXPECT_STREQ(topic.c_str(), "topic1");
EXPECT_STREQ(message.c_str(), "hello world");
});
service.publish("topic1", "hello world");
service.publish("topic2", "hello world");
EXPECT_EQ(service.size(), 1);
service.unsubscribe("topic1", id);
EXPECT_EQ(service.size(), 0);
}
int main(int argc, char **argv)
{
testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
}