SocketTest.cpp 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. /*
  2. * Author: Patrick-Christopher Mattulat
  3. * Company: Lynar Studios
  4. * E-Mail: webmaster@lynarstudios.com
  5. * Created: 2020-11-16
  6. * Changed: 2022-12-12
  7. *
  8. * */
  9. #include <gtest/gtest.h>
  10. #include <ls_std/ls_std_network.hpp>
  11. using namespace ls::std::network;
  12. using namespace ::testing;
  13. using namespace ls_std_network_test;
  14. using namespace ::std;
  15. namespace
  16. {
  17. class SocketTest : public ::testing::Test
  18. {
  19. protected:
  20. SocketTest() = default;
  21. ~SocketTest() override = default;
  22. void SetUp() override
  23. {}
  24. void TearDown() override
  25. {}
  26. static SocketParameter generateSocketParameter()
  27. {
  28. SocketParameter socketParameter{};
  29. socketParameter.protocolFamilyType = ProtocolFamilyType::PROTOCOL_FAMILY_TYPE_IPV4;
  30. SocketAddress socketAddress{};
  31. socketAddress.protocolType = ProtocolType::PROTOCOL_TYPE_TCP;
  32. socketAddress.ipAddress = "127.0.0.1";
  33. socketAddress.port = 2220;
  34. socketParameter.socketAddress = socketAddress;
  35. return socketParameter;
  36. }
  37. };
  38. TEST_F(SocketTest, getClassName)
  39. {
  40. ASSERT_STREQ("Socket", Socket{generateSocketParameter()}.getClassName().c_str());
  41. }
  42. TEST_F(SocketTest, bind)
  43. {
  44. SocketParameter parameter = generateSocketParameter();
  45. #if defined(unix) || defined(__APPLE__)
  46. shared_ptr<MockPosixSocket> mockSocket = make_shared<MockPosixSocket>();
  47. parameter.posixSocket = mockSocket;
  48. EXPECT_CALL(*mockSocket, create(_, _, _)).Times(AtLeast(1));
  49. ON_CALL(*mockSocket, create(_, _, _)).WillByDefault(Return(0));
  50. EXPECT_CALL(*mockSocket, bind(_, _, _)).Times(AtLeast(1));
  51. ON_CALL(*mockSocket, bind(_, _, _)).WillByDefault(Return(0));
  52. #endif
  53. Socket socket{parameter};
  54. ASSERT_TRUE(socket.bind());
  55. }
  56. TEST_F(SocketTest, connect)
  57. {
  58. SocketParameter parameter = generateSocketParameter();
  59. #if defined(unix) || defined(__APPLE__)
  60. shared_ptr<MockPosixSocket> mockSocket = make_shared<MockPosixSocket>();
  61. parameter.posixSocket = mockSocket;
  62. EXPECT_CALL(*mockSocket, create(_, _, _)).Times(AtLeast(1));
  63. ON_CALL(*mockSocket, create(_, _, _)).WillByDefault(Return(0));
  64. EXPECT_CALL(*mockSocket, connect(_, _, _)).Times(AtLeast(1));
  65. ON_CALL(*mockSocket, connect(_, _, _)).WillByDefault(Return(0));
  66. #endif
  67. Socket socket{parameter};
  68. ASSERT_TRUE(socket.connect());
  69. }
  70. TEST_F(SocketTest, isInitialized)
  71. {
  72. Socket socket{generateSocketParameter()};
  73. ASSERT_TRUE(socket.isInitialized());
  74. }
  75. }