瀏覽代碼

Add mock for PosixSocket class (unstable)

- add mock class for PosixSocket
- adjust Socket test
Patrick-Christopher Mattulat 2 年之前
父節點
當前提交
6affe9bf11

+ 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-11-16
+ * Changed:         2022-12-09
  *
  * */
 
@@ -23,6 +23,7 @@
 #include <ls_std/core/interface/IEncoding.hpp>
 #include <ls_std/core/interface/IEventSubscriber.hpp>
 #include <ls_std/core/interface/IListener.hpp>
+#include <ls_std/core/interface/IPosixSocket.hpp>
 #include <ls_std/core/interface/IReader.hpp>
 #include <ls_std/core/interface/ISerializable.hpp>
 #include <ls_std/core/interface/IStorable.hpp>

+ 10 - 1
test/cases/network/socket/SocketTest.cpp

@@ -3,14 +3,17 @@
  * Company:         Lynar Studios
  * E-Mail:          webmaster@lynarstudios.com
  * Created:         2020-11-16
- * Changed:         2022-11-18
+ * Changed:         2022-12-09
  *
  * */
 
 #include <gtest/gtest.h>
 #include <ls_std/ls_std_network.hpp>
+#include <ls_std_network_test.hpp>
 
 using namespace ls::std::network;
+using namespace ::testing;
+using namespace ls_std_network_test;
 
 namespace
 {
@@ -49,6 +52,12 @@ namespace
 
   TEST_F(SocketTest, connect)
   {
+    #if defined(unix) || defined(__APPLE__)
+    MockPosixSocket mockPosixSocket{};
+    EXPECT_CALL(mockPosixSocket, connect(_, _, _)).Times(1);
+    ON_CALL(mockPosixSocket, connect(_, _, _)).WillByDefault(Return(true));
+    #endif
+
     Socket socket{generateSocketParameter()};
     ASSERT_TRUE(socket.connect());
   }

+ 30 - 0
test/classes/network/socket/MockPosixSocket.hpp

@@ -0,0 +1,30 @@
+/*
+ * Author:          Patrick-Christopher Mattulat
+ * Company:         Lynar Studios
+ * E-Mail:          webmaster@lynarstudios.com
+ * Created:         2022-12-09
+ * Changed:         2022-12-09
+ *
+ * */
+
+#ifndef LS_STD_MOCK_POSIX_SOCKET_HPP
+#define LS_STD_MOCK_POSIX_SOCKET_HPP
+
+#include <ls_std/ls_std_core.hpp>
+#include <gmock/gmock.h>
+
+namespace ls_std_network_test
+{
+  class MockPosixSocket : public ls::std::core::interface_type::IPosixSocket
+  {
+    public:
+
+      MockPosixSocket() = default;
+      ~MockPosixSocket() override = default;
+
+      MOCK_METHOD(int, connect, (int _socketFileDescriptor, const struct sockaddr *_address, socklen_t _addressLength), (override));
+      MOCK_METHOD(int, create, (int _domain, int _type, int _protocol), (override));
+  };
+}
+
+#endif

+ 15 - 0
test/ls_std_network_test.hpp

@@ -0,0 +1,15 @@
+/*
+ * Author:          Patrick-Christopher Mattulat
+ * Company:         Lynar Studios
+ * E-Mail:          webmaster@lynarstudios.com
+ * Created:         2022-12-09
+ * Changed:         2022-12-09
+ *
+ * */
+
+#ifndef LS_STD_LS_STD_NETWORK_TEST_HPP
+#define LS_STD_LS_STD_NETWORK_TEST_HPP
+
+#include <classes/network/socket/MockPosixSocket.hpp>
+
+#endif