Преглед на файлове

Add EventNotSubscribedException

- add dedicated exception for indicating that
subscribing an event failed
- add test for EventNotSubscribedException class
Patrick-Christopher Mattulat преди 3 години
родител
ревизия
dae2c2ebd8

+ 1 - 0
CMakeLists.txt

@@ -172,6 +172,7 @@ if (${LS_STD_BUILD_WITH_TESTS})
             ${CMAKE_CURRENT_SOURCE_DIR}/test/cases/factory/serialization/json/boxing/SerializableJsonStringFactoryTest.cpp
             ${CMAKE_CURRENT_SOURCE_DIR}/test/cases/factory/serialization/json/event/SerializableJsonEventFactoryTest.cpp
             ${CMAKE_CURRENT_SOURCE_DIR}/test/classes/factory/SerializableTestFactory.cpp
+            ${CMAKE_CURRENT_SOURCE_DIR}/test/cases/exception/EventNotSubscribedExceptionTest.cpp
             ${CMAKE_CURRENT_SOURCE_DIR}/test/cases/exception/FileNotFoundExceptionTest.cpp
             ${CMAKE_CURRENT_SOURCE_DIR}/test/cases/exception/FileOperationExceptionTest.cpp
             ${CMAKE_CURRENT_SOURCE_DIR}/test/cases/exception/IllegalArgumentExceptionTest.cpp

+ 30 - 0
include/ls_std/exception/EventNotSubscribedException.hpp

@@ -0,0 +1,30 @@
+/*
+ * Author:          Patrick-Christopher Mattulat
+ * Company:         Lynar Studios
+ * E-Mail:          webmaster@lynarstudios.com
+ * Created:         2021-05-27
+ * Changed:         2021-05-27
+ *
+ * */
+
+#ifndef LS_STD_EVENT_NOT_SUBSCRIBED_EXCEPTION_HPP
+#define LS_STD_EVENT_NOT_SUBSCRIBED_EXCEPTION_HPP
+
+#include <exception>
+
+namespace ls_std
+{
+  class EventNotSubscribedException : public std::exception
+  {
+    public:
+
+      EventNotSubscribedException() = default;
+
+      const char *what() const noexcept override
+      {
+        return "EventNotSubscribedException thrown - event was not subscribed!";
+      };
+  };
+}
+
+#endif

+ 2 - 1
include/ls_std/ls_std.hpp

@@ -3,7 +3,7 @@
  * Company:         Lynar Studios
  * E-Mail:          webmaster@lynarstudios.com
  * Created:         2020-10-29
- * Changed:         2021-05-02
+ * Changed:         2021-05-27
  *
  * */
 
@@ -27,6 +27,7 @@
 #include "boxing/Long.hpp"
 #include "boxing/String.hpp"
 
+#include "exception/EventNotSubscribedException.hpp"
 #include "exception/FileNotFoundException.hpp"
 #include "exception/FileOperationException.hpp"
 #include "exception/IllegalArgumentException.hpp"

+ 43 - 0
test/cases/exception/EventNotSubscribedExceptionTest.cpp

@@ -0,0 +1,43 @@
+/*
+ * Author:          Patrick-Christopher Mattulat
+ * Company:         Lynar Studios
+ * E-Mail:          webmaster@lynarstudios.com
+ * Created:         2021-05-27
+ * Changed:         2021-05-27
+ *
+ * */
+
+#include <gtest/gtest.h>
+#include <ls_std/ls_std.hpp>
+
+namespace
+{
+  class EventNotSubscribedExceptionTest : public ::testing::Test
+  {
+    protected:
+
+      EventNotSubscribedExceptionTest() = default;
+      ~EventNotSubscribedExceptionTest() override = default;
+
+      void SetUp() override
+      {}
+
+      void TearDown() override
+      {}
+  };
+
+  TEST_F(EventNotSubscribedExceptionTest, constructor)
+  {
+    EXPECT_THROW({
+                   try
+                   {
+                     throw ls_std::EventNotSubscribedException{};
+                   }
+                   catch (const ls_std::EventNotSubscribedException &_exception)
+                   {
+                     EXPECT_STREQ("EventNotSubscribedException thrown - event was not subscribed!", _exception.what());
+                     throw;
+                   }
+                 }, ls_std::EventNotSubscribedException);
+  }
+}