Jelajahi Sumber

Add dedicated exception for socket operation failure

Patrick-Christopher Mattulat 2 tahun lalu
induk
melakukan
74bc1e7757

+ 1 - 0
CMakeLists.txt

@@ -236,6 +236,7 @@ set(TEST_FILES_CORE
             ${CMAKE_CURRENT_SOURCE_DIR}/test/cases/core/exception/IncompleteJsonExceptionTest.cpp
             ${CMAKE_CURRENT_SOURCE_DIR}/test/cases/core/exception/NullPointerExceptionTest.cpp
             ${CMAKE_CURRENT_SOURCE_DIR}/test/cases/core/exception/WrongProtocolExceptionTest.cpp
+            ${CMAKE_CURRENT_SOURCE_DIR}/test/cases/core/exception/SocketOperationFailedExceptionTest.cpp
             ${CMAKE_CURRENT_SOURCE_DIR}/test/cases/core/utils/RegexUtilsTest.cpp
             ${CMAKE_CURRENT_SOURCE_DIR}/test/cases/core/utils/STLUtilsTest.cpp
             ${CMAKE_CURRENT_SOURCE_DIR}/test/cases/core/ClassTest.cpp

+ 30 - 0
include/ls_std/core/exception/SocketOperationFailedException.hpp

@@ -0,0 +1,30 @@
+/*
+ * Author:          Patrick-Christopher Mattulat
+ * Company:         Lynar Studios
+ * E-Mail:          webmaster@lynarstudios.com
+ * Created:         2022-12-27
+ * Changed:         2022-12-27
+ *
+ * */
+
+#ifndef LS_STD_SOCKET_OPERATION_FAILED_EXCEPTION_HPP
+#define LS_STD_SOCKET_OPERATION_FAILED_EXCEPTION_HPP
+
+#include <exception>
+
+namespace ls::std::core
+{
+  class SocketOperationFailedException : public ::std::exception
+  {
+    public:
+
+      explicit SocketOperationFailedException() = default;
+
+      [[nodiscard]] const char *what() const noexcept override
+      {
+        return "SocketOperationFailedException thrown - operation on socket was not successful!";
+      }
+  };
+}
+
+#endif

+ 2 - 1
include/ls_std/ls_std_core.hpp

@@ -3,7 +3,7 @@
  * Company:         Lynar Studios
  * E-Mail:          webmaster@lynarstudios.com
  * Created:         2022-05-13
- * Changed:         2022-12-25
+ * Changed:         2022-12-27
  *
  * */
 
@@ -19,6 +19,7 @@
 #include <ls_std/core/exception/IncompleteJsonException.hpp>
 #include <ls_std/core/exception/NullPointerException.hpp>
 #include <ls_std/core/exception/WrongProtocolException.hpp>
+#include <ls_std/core/exception/SocketOperationFailedException.hpp>
 
 #include <ls_std/core/interface/IBoxing.hpp>
 #include <ls_std/core/interface/IEncoding.hpp>

+ 45 - 0
test/cases/core/exception/SocketOperationFailedExceptionTest.cpp

@@ -0,0 +1,45 @@
+/*
+ * Author:          Patrick-Christopher Mattulat
+ * Company:         Lynar Studios
+ * E-Mail:          webmaster@lynarstudios.com
+ * Created:         2022-12-12
+ * Changed:         2022-12-12
+ *
+ * */
+
+#include <gtest/gtest.h>
+#include <ls_std/ls_std_core.hpp>
+
+using namespace ls::std::core;
+
+namespace
+{
+  class SocketOperationFailedExceptionTest : public ::testing::Test
+  {
+    protected:
+
+      SocketOperationFailedExceptionTest() = default;
+      ~SocketOperationFailedExceptionTest() override = default;
+
+      void SetUp() override
+      {}
+
+      void TearDown() override
+      {}
+  };
+
+  TEST_F(SocketOperationFailedExceptionTest, constructor)
+  {
+    EXPECT_THROW({
+                   try
+                   {
+                     throw SocketOperationFailedException{};
+                   }
+                   catch (const SocketOperationFailedException &_exception)
+                   {
+                     EXPECT_STREQ("SocketOperationFailedException thrown - operation on socket was not successful!", _exception.what());
+                     throw;
+                   }
+                 }, SocketOperationFailedException);
+  }
+}