ConnectionManagerUnitTests.cpp 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153
  1. /*
  2. * Copyright (c) Contributors to the Open 3D Engine Project.
  3. * For complete copyright and license terms please see the LICENSE at the root of this distribution.
  4. *
  5. * SPDX-License-Identifier: Apache-2.0 OR MIT
  6. *
  7. */
  8. #include <native/unittests/AssetProcessorUnitTests.h>
  9. #include <native/connection/connectionManager.h>
  10. #include <native/connection/connection.h>
  11. #include <QCoreApplication>
  12. const QString s_connectionSettingsPrefix = QStringLiteral("AssetProcessorUnitTests_");
  13. class ConnectionManagerUnitTest
  14. : public UnitTest::AssetProcessorUnitTestBase
  15. {
  16. public:
  17. virtual void SetUp() override;
  18. virtual void TearDown() override;
  19. protected:
  20. void UpdateConnectionManager();
  21. ConnectionManager* m_connectionManager;
  22. };
  23. void ConnectionManagerUnitTest::SetUp()
  24. {
  25. UnitTest::AssetProcessorUnitTestBase::SetUp();
  26. m_connectionManager = ConnectionManager::Get();
  27. }
  28. void ConnectionManagerUnitTest::TearDown()
  29. {
  30. //removing all connections
  31. for (auto iter = m_connectionManager->getConnectionMap().begin(); iter != m_connectionManager->getConnectionMap().end(); iter++)
  32. {
  33. iter.value()->Terminate();
  34. }
  35. // Process all the pending events
  36. QCoreApplication::sendPostedEvents(0, QEvent::DeferredDelete);
  37. QCoreApplication::processEvents();
  38. UnitTest::AssetProcessorUnitTestBase::TearDown();
  39. }
  40. TEST_F(ConnectionManagerUnitTest, AddAndSaveConnections_FeedUserConnections_Success)
  41. {
  42. UpdateConnectionManager();
  43. int count = m_connectionManager->getCount();
  44. EXPECT_EQ(count, 4) << "Count is Invalid";
  45. m_connectionManager->SaveConnections(s_connectionSettingsPrefix);
  46. }
  47. TEST_F(ConnectionManagerUnitTest, LoadConnection_FeedConnectionSettingsPrefix_Success)
  48. {
  49. int count = m_connectionManager->getCount();
  50. EXPECT_EQ(count, 0) << "Count is Invalid";
  51. m_connectionManager->LoadConnections(s_connectionSettingsPrefix);
  52. count = m_connectionManager->getCount();
  53. EXPECT_EQ(count, 4) << "Count is Invalid";
  54. }
  55. TEST_F(ConnectionManagerUnitTest, GetConnection_FeedConnectionId_Success)
  56. {
  57. m_connectionManager->LoadConnections(s_connectionSettingsPrefix);
  58. unsigned int connId = m_connectionManager->GetConnectionId("127.0.0.2", 12345);
  59. EXPECT_NE(connId, 0) << "Connection is not present ,which is Invalid";
  60. Connection* testConnection = m_connectionManager->getConnection(connId);
  61. EXPECT_EQ(testConnection->Identifier().compare("PC Game", Qt::CaseSensitive), 0) << "Identifier is Invalid";
  62. EXPECT_EQ(testConnection->IpAddress().compare("127.0.0.2", Qt::CaseInsensitive), 0) << "IpAddress is Invalid";
  63. EXPECT_EQ(testConnection->Port(), 12345) << "Port is Invalid";
  64. EXPECT_EQ(testConnection->Status(), Connection::Disconnected) << "Status is Invalid";
  65. EXPECT_FALSE(testConnection->AutoConnect()) << "AutoConnect status is Invalid";
  66. }
  67. TEST_F(ConnectionManagerUnitTest, RemoveConnection_FeedConnectionId_Success)
  68. {
  69. // Add a new connection to remove
  70. unsigned int connId = m_connectionManager->addUserConnection();
  71. int count = m_connectionManager->getCount();
  72. EXPECT_EQ(count, 1) << "Count is Invalid";
  73. EXPECT_NE(connId, 0) << "Index of the connection is Invalid";
  74. Connection* testConnection = m_connectionManager->getConnection(connId);
  75. testConnection->SetIdentifier("PC Game");
  76. testConnection->SetIpAddress("98.45.67.89");
  77. testConnection->SetPort(22234);
  78. testConnection->SetStatus(Connection::Connecting);
  79. testConnection->SetAutoConnect(true);
  80. EXPECT_EQ(testConnection->Identifier().compare("PC Game", Qt::CaseSensitive), 0) << "Identifier is Invalid";
  81. EXPECT_EQ(testConnection->IpAddress().compare("98.45.67.89", Qt::CaseInsensitive), 0) << "IpAddress is Invalid";
  82. EXPECT_EQ(testConnection->Port(), 22234) << "Port is Invalid";
  83. EXPECT_EQ(testConnection->Status(), Connection::Connecting) << "Status is Invalid";
  84. EXPECT_TRUE(testConnection->AutoConnect()) << "Autoconnect status is Invalid";
  85. connId = m_connectionManager->GetConnectionId("98.45.67.89", 22234);
  86. EXPECT_NE(connId, 0) << "Connection is not present ,which is Invalid";
  87. m_connectionManager->removeConnection(connId);
  88. // Process all the pending events
  89. QCoreApplication::sendPostedEvents(0, QEvent::DeferredDelete);
  90. QCoreApplication::processEvents();
  91. count = m_connectionManager->getCount();
  92. EXPECT_EQ(count, 0) << "Count is Invalid";
  93. connId = m_connectionManager->GetConnectionId("98.45.67.89", 22234);
  94. EXPECT_EQ(connId, 0) << "Connection is present ,which is Invalid";
  95. }
  96. void ConnectionManagerUnitTest::UpdateConnectionManager()
  97. {
  98. unsigned int connId1 = m_connectionManager->addUserConnection();
  99. unsigned int connId2 = m_connectionManager->addUserConnection();
  100. unsigned int connId3 = m_connectionManager->addUserConnection();
  101. unsigned int connId4 = m_connectionManager->addUserConnection();
  102. Connection* c1 = m_connectionManager->getConnection(connId1);
  103. Connection* c2 = m_connectionManager->getConnection(connId2);
  104. Connection* c3 = m_connectionManager->getConnection(connId3);
  105. Connection* c4 = m_connectionManager->getConnection(connId4);
  106. c1->SetIdentifier("Android Game");
  107. c1->SetStatus(Connection::Disconnected);
  108. c1->SetIpAddress("127.0.0.1");
  109. c1->SetPort(12345);
  110. c1->SetAutoConnect(false);
  111. c2->SetIdentifier("PC Game");
  112. c2->SetStatus(Connection::Disconnected);
  113. c2->SetIpAddress("127.0.0.2");
  114. c2->SetPort(12345);
  115. c2->SetAutoConnect(false);
  116. c3->SetIdentifier("Mac Game");
  117. c3->SetStatus(Connection::Disconnected);
  118. c3->SetIpAddress("127.0.0.3");
  119. c3->SetPort(12345);
  120. c3->SetAutoConnect(false);
  121. c4->SetIdentifier("Android Game");
  122. c4->SetStatus(Connection::Disconnected);
  123. c4->SetIpAddress("127.0.0.4");
  124. c4->SetPort(12345);
  125. c4->SetAutoConnect(false);
  126. }