فهرست منبع

Migrate the legacy ConnectionManagerUnitTests (#12652)

Signed-off-by: Junbo Liang <[email protected]>
Junbo Liang 2 سال پیش
والد
کامیت
c0c6b732d7

+ 0 - 1
Code/Tools/AssetProcessor/assetprocessor_test_files.cmake

@@ -82,7 +82,6 @@ set(FILES
     native/unittests/ConnectionUnitTests.cpp
     native/unittests/ConnectionUnitTests.h
     native/unittests/ConnectionManagerUnitTests.cpp
-    native/unittests/ConnectionManagerUnitTests.h
     native/unittests/FileWatcherUnitTests.cpp
     native/unittests/FileWatcherUnitTests.h
     native/unittests/PlatformConfigurationUnitTests.cpp

+ 72 - 163
Code/Tools/AssetProcessor/native/unittests/ConnectionManagerUnitTests.cpp

@@ -5,202 +5,116 @@
  * SPDX-License-Identifier: Apache-2.0 OR MIT
  *
  */
-#include "ConnectionManagerUnitTests.h"
-#include "native/connection/connectionManager.h"
-#include "native/connection/connection.h"
+
+#include <native/unittests/AssetProcessorUnitTests.h>
+
+#include <native/connection/connectionManager.h>
+#include <native/connection/connection.h>
+
 #include <QCoreApplication>
 
 const QString s_connectionSettingsPrefix = QStringLiteral("AssetProcessorUnitTests_");
 
-ConnectionManagerUnitTest::ConnectionManagerUnitTest()
+class ConnectionManagerUnitTest
+    : public UnitTest::AssetProcessorUnitTestBase
 {
-    m_connectionManager = ConnectionManager::Get();
-    QObject::connect(m_connectionManager, &ConnectionManager::ConnectionRemoved, this,  &ConnectionManagerUnitTest::ConnectionDeleted);
-    QObject::connect(this, &ConnectionManagerUnitTest::RunFirstPhaseofUnitTestsForConnectionManager, this, &ConnectionManagerUnitTest::RunFirstPartOfUnitTestsForConnectionManager);
-    QObject::connect(this, &ConnectionManagerUnitTest::AllConnectionsRemoved, this, &ConnectionManagerUnitTest::RunSecondPartOfUnitTestsForConnectionManager);
-    QObject::connect(this, &ConnectionManagerUnitTest::ConnectionRemoved, this, &ConnectionManagerUnitTest::RunThirdPartOfUnitTestsForConnectionManager);
-}
+public:
 
-void ConnectionManagerUnitTest::StartTest()
-{
-    UpdateConnectionManager();
-}
+    virtual void SetUp() override;
+    virtual void TearDown() override;
 
-int ConnectionManagerUnitTest::UnitTestPriority() const
-{
-    return -10;
-}
+protected:
+    void UpdateConnectionManager();
+    ConnectionManager* m_connectionManager;
+};
 
-ConnectionManagerUnitTest::~ConnectionManagerUnitTest()
+void ConnectionManagerUnitTest::SetUp()
 {
+    UnitTest::AssetProcessorUnitTestBase::SetUp();
+
+    m_connectionManager = ConnectionManager::Get();
 }
 
-void ConnectionManagerUnitTest::RunFirstPartOfUnitTestsForConnectionManager()
+void ConnectionManagerUnitTest::TearDown()
 {
-    int count = m_connectionManager->getCount();
-    if (count != 4)
-    {
-        Q_EMIT UnitTestFailed("Count is Invalid");
-        return;
-    }
-    m_connectionManager->SaveConnections(s_connectionSettingsPrefix);
     //removing all connections
     for (auto iter = m_connectionManager->getConnectionMap().begin(); iter != m_connectionManager->getConnectionMap().end(); iter++)
     {
         iter.value()->Terminate();
     }
+
+    // Process all the pending events
+    QCoreApplication::sendPostedEvents(0, QEvent::DeferredDelete);
+    QCoreApplication::processEvents();
+
+    UnitTest::AssetProcessorUnitTestBase::TearDown();
 }
 
-void ConnectionManagerUnitTest::RunSecondPartOfUnitTestsForConnectionManager()
+TEST_F(ConnectionManagerUnitTest, AddAndSaveConnections_FeedUserConnections_Success)
 {
+    UpdateConnectionManager();
+
     int count = m_connectionManager->getCount();
-    if (count != 0)
-    {
-        Q_EMIT UnitTestFailed("Count is Invalid");
-        return;
-    }
+    EXPECT_EQ(count, 4) << "Count is Invalid";
+    m_connectionManager->SaveConnections(s_connectionSettingsPrefix);
+}
+
+TEST_F(ConnectionManagerUnitTest, LoadConnection_FeedConnectionSettingsPrefix_Success)
+{
+    int count = m_connectionManager->getCount();
+    EXPECT_EQ(count, 0) << "Count is Invalid";
     m_connectionManager->LoadConnections(s_connectionSettingsPrefix);
     count = m_connectionManager->getCount();
-    if (count != 4)
-    {
-        Q_EMIT UnitTestFailed("Count is Invalid");
-        return;
-    }
+    EXPECT_EQ(count, 4) << "Count is Invalid";
+}
+
+TEST_F(ConnectionManagerUnitTest, GetConnection_FeedConnectionId_Success)
+{
+    m_connectionManager->LoadConnections(s_connectionSettingsPrefix);
     unsigned int connId = m_connectionManager->GetConnectionId("127.0.0.2", 12345);
-    if (connId == 0)
-    {
-        Q_EMIT UnitTestFailed("Connection is not present ,which is Invalid");
-        return;
-    }
+    EXPECT_NE(connId, 0) << "Connection is not present ,which is Invalid";
     Connection* testConnection = m_connectionManager->getConnection(connId);
-    if (testConnection->Identifier().compare("PC Game", Qt::CaseSensitive) != 0)
-    {
-        Q_EMIT UnitTestFailed("Identifier is Invalid");
-        return;
-    }
-    if (testConnection->IpAddress().compare("127.0.0.2", Qt::CaseInsensitive) != 0)
-    {
-        Q_EMIT UnitTestFailed("IpAddress is Invalid");
-        return;
-    }
-    if (testConnection->Port() != 12345)
-    {
-        Q_EMIT UnitTestFailed("Port is Invalid");
-        return;
-    }
-    if (testConnection->Status() != Connection::Disconnected)
-    {
-        Q_EMIT UnitTestFailed("Status is Invalid");
-        return;
-    }
-    if (testConnection->AutoConnect() != false)
-    {
-        Q_EMIT UnitTestFailed("autoConnect status is Invalid");
-        return;
-    }
+    EXPECT_EQ(testConnection->Identifier().compare("PC Game", Qt::CaseSensitive), 0) << "Identifier is Invalid";
+    EXPECT_EQ(testConnection->IpAddress().compare("127.0.0.2", Qt::CaseInsensitive), 0) << "IpAddress is Invalid";
+    EXPECT_EQ(testConnection->Port(), 12345) << "Port is Invalid";
+    EXPECT_EQ(testConnection->Status(), Connection::Disconnected) << "Status is Invalid";
+    EXPECT_FALSE(testConnection->AutoConnect()) << "AutoConnect status is Invalid";
+}
 
-    connId = m_connectionManager->addUserConnection();
-    count = m_connectionManager->getCount();
-    if (count != 5)
-    {
-        Q_EMIT UnitTestFailed("Count is Invalid");
-        return;
-    }
-    if (connId == 0)
-    {
-        Q_EMIT UnitTestFailed("Index of the connection is Invalid");
-        return;
-    }
-    testConnection = m_connectionManager->getConnection(connId);
+TEST_F(ConnectionManagerUnitTest, RemoveConnection_FeedConnectionId_Success)
+{
+    // Add a new connection to remove
+    unsigned int connId = m_connectionManager->addUserConnection();
+    int count = m_connectionManager->getCount();
+    EXPECT_EQ(count, 1) << "Count is Invalid";
+    EXPECT_NE(connId, 0) << "Index of the connection is Invalid";
+    Connection* testConnection = m_connectionManager->getConnection(connId);
     testConnection->SetIdentifier("PC Game");
     testConnection->SetIpAddress("98.45.67.89");
     testConnection->SetPort(22234);
     testConnection->SetStatus(Connection::Connecting);
     testConnection->SetAutoConnect(true);
 
-    if (testConnection->Identifier().compare("PC Game", Qt::CaseSensitive) != 0)
-    {
-        Q_EMIT UnitTestFailed("Identifier is Invalid");
-        return;
-    }
-    if (testConnection->IpAddress().compare("98.45.67.89", Qt::CaseInsensitive) != 0)
-    {
-        Q_EMIT UnitTestFailed("IpAddress is Invalid");
-        return;
-    }
-    if (testConnection->Port() != 22234)
-    {
-        Q_EMIT UnitTestFailed("Port is Invalid");
-        return;
-    }
-    if (testConnection->Status() != Connection::Connecting)
-    {
-        Q_EMIT UnitTestFailed("Status is Invalid");
-        return;
-    }
-    if (testConnection->AutoConnect() != true)
-    {
-        Q_EMIT UnitTestFailed("Autoconnect status is Invalid");
-        return;
-    }
+    EXPECT_EQ(testConnection->Identifier().compare("PC Game", Qt::CaseSensitive), 0) << "Identifier is Invalid";
+    EXPECT_EQ(testConnection->IpAddress().compare("98.45.67.89", Qt::CaseInsensitive), 0) << "IpAddress is Invalid";
+    EXPECT_EQ(testConnection->Port(), 22234) << "Port is Invalid";
+    EXPECT_EQ(testConnection->Status(), Connection::Connecting) << "Status is Invalid";
+    EXPECT_TRUE(testConnection->AutoConnect()) << "Autoconnect status is Invalid";
     connId = m_connectionManager->GetConnectionId("98.45.67.89", 22234);
-    if (connId == 0)
-    {
-        Q_EMIT UnitTestFailed("Connection is not present ,which is Invalid");
-        return;
-    }
-    count = m_connectionManager->getCount();
-    if (count != 5)
-    {
-        Q_EMIT UnitTestFailed("Count is Invalid");
-        return;
-    }
-    m_connectionManager->removeConnection(connId);
-}
+    EXPECT_NE(connId, 0) << "Connection is not present ,which is Invalid";
 
-void ConnectionManagerUnitTest::RunThirdPartOfUnitTestsForConnectionManager()
-{
-    int count = m_connectionManager->getCount();
-    if (count != 4)
-    {
-        Q_EMIT UnitTestFailed("Count is Invalid");
-        return;
-    }
-
-    unsigned int connId = m_connectionManager->GetConnectionId("98.45.67.89", 22234);
-    if (connId != 0)
-    {
-        Q_EMIT UnitTestFailed("Connection is present ,which is Invalid");
-        return;
-    }
-
-    QObject::disconnect(this, &ConnectionManagerUnitTest::AllConnectionsRemoved, this, &ConnectionManagerUnitTest::RunSecondPartOfUnitTestsForConnectionManager);
-    QObject::connect(this, &ConnectionManagerUnitTest::AllConnectionsRemoved, this, &ConnectionManagerUnitTest::RunFourthPartOfUnitTestsForConnectionManager);
-    //removing all connections
-    for (auto iter = m_connectionManager->getConnectionMap().begin(); iter != m_connectionManager->getConnectionMap().end(); iter++)
-    {
-        iter.value()->Terminate();
-    }
-}
+    m_connectionManager->removeConnection(connId);
+    // Process all the pending events
+    QCoreApplication::sendPostedEvents(0, QEvent::DeferredDelete);
+    QCoreApplication::processEvents();
 
-void ConnectionManagerUnitTest::RunFourthPartOfUnitTestsForConnectionManager()
-{
-    qApp->processEvents();
+    count = m_connectionManager->getCount();
+    EXPECT_EQ(count, 0) << "Count is Invalid";
 
-    Q_EMIT UnitTestPassed();
+    connId = m_connectionManager->GetConnectionId("98.45.67.89", 22234);
+    EXPECT_EQ(connId, 0) << "Connection is present ,which is Invalid";
 }
 
-void ConnectionManagerUnitTest::ConnectionDeleted(unsigned int connId)
-{
-    if (m_connectionManager->getConnectionMap().isEmpty())
-    {
-        Q_EMIT AllConnectionsRemoved();
-    }
-    else if (connId == 9)
-    {
-        Q_EMIT ConnectionRemoved();
-    }
-}
 
 void ConnectionManagerUnitTest::UpdateConnectionManager()
 {
@@ -235,9 +149,4 @@ void ConnectionManagerUnitTest::UpdateConnectionManager()
     c4->SetIpAddress("127.0.0.4");
     c4->SetPort(12345);
     c4->SetAutoConnect(false);
-    Q_EMIT RunFirstPhaseofUnitTestsForConnectionManager();
 }
-
-
-REGISTER_UNIT_TEST(ConnectionManagerUnitTest)
-

+ 0 - 47
Code/Tools/AssetProcessor/native/unittests/ConnectionManagerUnitTests.h

@@ -1,47 +0,0 @@
-/*
- * Copyright (c) Contributors to the Open 3D Engine Project.
- * For complete copyright and license terms please see the LICENSE at the root of this distribution.
- *
- * SPDX-License-Identifier: Apache-2.0 OR MIT
- *
- */
-#ifndef CONNECTIONMANAGERUNITTEST_H
-#define CONNECTIONMANAGERUNITTEST_H
-
-#if !defined(Q_MOC_RUN)
-#include "UnitTestRunner.h"
-#endif
-
-class ConnectionManager;
-
-class ConnectionManagerUnitTest
-    : public UnitTestRun
-{
-    Q_OBJECT
-public:
-    explicit ConnectionManagerUnitTest();
-    virtual void StartTest() override;
-    virtual int UnitTestPriority() const override;
-    virtual ~ConnectionManagerUnitTest();
-
-
-Q_SIGNALS:
-    void RunFirstPhaseofUnitTestsForConnectionManager();
-    void ConnectionRemoved();
-    void AllConnectionsRemoved();
-
-public Q_SLOTS:
-
-    void RunFirstPartOfUnitTestsForConnectionManager();
-    void RunSecondPartOfUnitTestsForConnectionManager();
-    void RunThirdPartOfUnitTestsForConnectionManager();
-    void RunFourthPartOfUnitTestsForConnectionManager();
-
-    void ConnectionDeleted(unsigned int connId);
-
-private:
-    void UpdateConnectionManager();
-    ConnectionManager* m_connectionManager;
-};
-
-#endif // CONNECTIONMANAGERUNITTEST_H