Browse Source

Improve test coverage of event base classes

Patrick-Christopher Mattulat 9 months ago
parent
commit
23fa90bd64

+ 16 - 0
test/cases/event/reworked/EventListenerTest.cpp

@@ -15,6 +15,7 @@
 
 using ls::std::core::NullPointerException;
 using ls::std::event::reworked::EventListener;
+using ls::std::event::reworked::EventManager;
 using ::std::make_shared;
 using ::std::string;
 using test::event::Button;
@@ -71,4 +72,19 @@ namespace
         },
         NullPointerException);
   }
+
+  TEST_F(EventListenerTest, subscribe)
+  {
+    auto myButton = make_shared<Button>();
+    ASSERT_TRUE(myButton->subscribe(OnClickEvent().of(make_shared<EventManager>()), [myButton]() mutable { myButton->onClickEvent(); }));
+  }
+
+  TEST_F(EventListenerTest, subscribe_second_time)
+  {
+    auto myButton = make_shared<Button>();
+    auto eventManager = make_shared<EventManager>();
+
+    ASSERT_TRUE(myButton->subscribe(OnClickEvent().of(eventManager), [myButton]() mutable { myButton->onClickEvent(); }));
+    ASSERT_FALSE(myButton->subscribe(OnClickEvent().of(eventManager), [myButton]() mutable { myButton->onClickEvent(); }));
+  }
 }

+ 14 - 12
test/cases/event/reworked/EventManagerTest.cpp

@@ -40,6 +40,8 @@ namespace
   {
     auto eventManager = EventManager();
     ASSERT_EQ(1, eventManager.getNextProvisionId());
+    ASSERT_EQ(1, eventManager.requestListenerId());
+    ASSERT_EQ(2, eventManager.getNextProvisionId());
   }
 
   TEST_F(EventManagerTest, holdsListenerForEvent)
@@ -48,6 +50,18 @@ namespace
     ASSERT_FALSE(eventManager->holdsListenerForEvent(1, OnClickEvent()));
   }
 
+  TEST_F(EventManagerTest, invoke)
+  {
+    auto eventManager = make_shared<EventManager>();
+
+    auto myButton = make_shared<Button>();
+    myButton->subscribe(OnClickEvent().of(eventManager), [myButton]() mutable { myButton->onClickEvent(); });
+
+    ASSERT_FALSE(myButton->isClicked());
+    eventManager->invoke(OnClickEvent());
+    ASSERT_TRUE(myButton->isClicked());
+  }
+
   TEST_F(EventManagerTest, invoke_event_not_known)
   {
     auto eventManager = make_shared<EventManager>();
@@ -87,16 +101,4 @@ namespace
     eventManager->subscribeListenerForEvent(myButton, OnClickEvent(), [myButton]() mutable { myButton->onClickEvent(); });
     ASSERT_TRUE(eventManager->holdsListenerForEvent(myButton->getId(), OnClickEvent()));
   }
-
-  TEST_F(EventManagerTest, invoke)
-  {
-    auto eventManager = make_shared<EventManager>();
-
-    auto myButton = make_shared<Button>();
-    myButton->subscribe(OnClickEvent().of(eventManager), [myButton]() mutable { myButton->onClickEvent(); });
-
-    ASSERT_FALSE(myButton->isClicked());
-    eventManager->invoke(OnClickEvent());
-    ASSERT_TRUE(myButton->isClicked());
-  }
 }