소스 검색

Improve test coverage of event base classes

Patrick-Christopher Mattulat 9 달 전
부모
커밋
23fa90bd64
2개의 변경된 파일30개의 추가작업 그리고 12개의 파일을 삭제
  1. 16 0
      test/cases/event/reworked/EventListenerTest.cpp
  2. 14 12
      test/cases/event/reworked/EventManagerTest.cpp

+ 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());
-  }
 }