#include #include "serversdk/requestmanager.h" #include "serversdk/databasetable.h" #include "serversdk/core.h" class LoginTable : public serversdk::DatabaseTable { Q_OBJECT TABLE_PROPERTY(QString, username, set_username, ""); TABLE_PROPERTY(QString, password, set_password, "") }; class Token : public serversdk::DatabaseTable { Q_OBJECT TABLE_PROPERTY(QUuid, id, set_id, ""); public: QString idWithoutCurlyBraces() { return a_id.toString().mid(1, 36); } }; namespace serversdk { class RequestManagerTest : public QObject { Q_OBJECT private: Q_SLOT void colnodAuthorization_test(); Q_SLOT void colnodGetUpdatedTokens_test(); Q_SLOT void notConncetion_test(); std::shared_ptr colnodLoginRequest(); }; std::shared_ptr RequestManagerTest::colnodLoginRequest() { // Colnod auto login = std::make_unique(); login->set_username("spaceti"); login->set_password("E7FEA07DBC82FB9BA34B2E453E2EFE89F0583E7187543507EF11E84726071FE428445372F2E46B455EB0C79747C51E362F403CE39473A2A8C2DFA0CE5C9826C0"); auto loginRequest = std::make_shared("POST", "https://192.168.1.3:8443/AaaManager/authSession", login->jsonData()); loginRequest->setUserName(login->username()); loginRequest->setPassword(login->password()); return loginRequest; } void RequestManagerTest::colnodAuthorization_test() { serversdk::RequestManager reqMan; reqMan.setIgnoreSsl(true); auto loginRequest = colnodLoginRequest(); QCOMPARE(loginRequest->basicAuthorization(), QStringLiteral("Basic c3BhY2V0aTpFN0ZFQTA3REJDODJGQjlCQTM0QjJFNDUzRTJFRkU4OUYwNTgzRTcxODc1NDM1MDdFRjExRTg0NzI2MDcxRkU0Mjg0NDUzNzJGMkU0NkI0NTVFQjBDNzk3NDdDNTFFMzYyRjQwM0NFMzk0NzNBMkE4QzJERkEwQ0U1Qzk4MjZDMA==")); QSignalSpy loginFinished(loginRequest.get(), &serversdk::Request::finished); reqMan.processRequest(loginRequest); QVERIFY(loginFinished.wait()); QCOMPARE(loginFinished.count(), 1 ); auto data = loginRequest->responseData(); Token token; QVERIFY(token.id().isNull()); // must be null token.fromJson(data); QVERIFY(!token.id().isNull()); // mut not be null ( authentication token ) } void RequestManagerTest::colnodGetUpdatedTokens_test() { serversdk::RequestManager reqMan; reqMan.setIgnoreSsl(true); auto loginRequest = colnodLoginRequest(); QCOMPARE(loginRequest->basicAuthorization(), QStringLiteral("Basic c3BhY2V0aTpFN0ZFQTA3REJDODJGQjlCQTM0QjJFNDUzRTJFRkU4OUYwNTgzRTcxODc1NDM1MDdFRjExRTg0NzI2MDcxRkU0Mjg0NDUzNzJGMkU0NkI0NTVFQjBDNzk3NDdDNTFFMzYyRjQwM0NFMzk0NzNBMkE4QzJERkEwQ0U1Qzk4MjZDMA==")); QSignalSpy spyFinished(loginRequest.get(), &serversdk::Request::finished); reqMan.processRequest(loginRequest); QVERIFY(spyFinished.wait()); QCOMPARE(spyFinished.count(), 1 ); auto data = loginRequest->responseData(); Token token; QVERIFY(token.id().isNull()); // must be null token.fromJson(data); QVERIFY(!token.id().isNull()); // mut not be null ( authentication token ) QByteArray array = R"({"timestamp": 1570109859681})"; auto tokensRequest = std::make_shared("POST", "https://192.168.1.3:8443/TokenManager/getTokensUpdated", array); tokensRequest->setUserName(token.idWithoutCurlyBraces()); QSignalSpy tokensFinished(tokensRequest.get(), &serversdk::Request::finished); reqMan.processRequest(tokensRequest); QVERIFY(tokensRequest->networkReply()); QVERIFY(tokensFinished.wait()); QCOMPARE(tokensFinished.count(), 1 ); QVERIFY(tokensRequest->status() == 200); //qDebug() << tokensRequest->responseData(); } void RequestManagerTest::notConncetion_test() { serversdk::RequestManager reqMan; reqMan.setIgnoreSsl(true); auto tokensRequest = std::make_shared("POST", "https://localhost:9999/TokenManager/getTokensUpdated", QByteArray("{}")); //QTest::ignoreMessage(QtWarningMsg, QRegularExpression("POST.*error.*")); reqMan.processRequest(tokensRequest); QVERIFY(tokensRequest->networkReply()); QSignalSpy tokensFinished(tokensRequest.get(), &serversdk::Request::finished); QVERIFY(tokensFinished.wait()); QCOMPARE(tokensFinished.count(), 1 ); QCOMPARE(tokensRequest->status(), 0); //qDebug() << tokensRequest->responseData(); } } QTEST_GUILESS_MAIN(serversdk::RequestManagerTest) #include "tst_requestmanager.moc"