/* * Author: Patrick-Christopher Mattulat * Co-Author: Claude Sonnet 4.6 (LLM) * Company: Lynar Studios * E-Mail: webmaster@lynarstudios.com * Created: 2024-05-16 * Changed: 2026-06-23 * * */ #include #include #include #include #include using ls::standard::core::EventNotHandledException; using ls::standard::event::EventManager; using ls::standard::event::EventParameter; using ::std::make_shared; using ::std::string; using test::event::Button; using test::event::ChangeColorEvent; using test::event::OnClickEvent; using testing::Test; namespace { class EventManagerTest : public Test { public: EventManagerTest() = default; ~EventManagerTest() override = default; static EventParameter generateParameter(const string &_color) { EventParameter parameter{}; parameter.addParameter(_color); return parameter; } }; TEST_F(EventManagerTest, getClassName) { ASSERT_STREQ("EventManager", EventManager().getClassName().c_str()); } TEST_F(EventManagerTest, getNextProvisionId) { auto eventManager = EventManager(); ASSERT_EQ(1, eventManager.getNextProvisionId()); ASSERT_EQ(1, eventManager.requestListenerId()); ASSERT_EQ(2, eventManager.getNextProvisionId()); } TEST_F(EventManagerTest, holdsListenerForEvent) { const auto eventManager = make_shared(); ASSERT_FALSE(eventManager->holdsListenerForEvent(1, OnClickEvent())); } TEST_F(EventManagerTest, invoke) { const auto eventManager = make_shared(); auto myBlueButton = make_shared