mirror of
https://gitlab.com/spaceti-app/integrations/common/server-sdk.git
synced 2026-07-12 18:20:41 +02:00
115 lines
3.6 KiB
C++
115 lines
3.6 KiB
C++
#include <QtTest>
|
|
|
|
#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();
|
|
|
|
std::shared_ptr<Request> colnodLoginRequest();
|
|
};
|
|
|
|
std::shared_ptr<Request> RequestManagerTest::colnodLoginRequest()
|
|
{
|
|
// Colnod
|
|
auto login = std::make_unique<LoginTable>();
|
|
login->set_username("spaceti");
|
|
login->set_password("E7FEA07DBC82FB9BA34B2E453E2EFE89F0583E7187543507EF11E84726071FE428445372F2E46B455EB0C79747C51E362F403CE39473A2A8C2DFA0CE5C9826C0");
|
|
|
|
auto loginRequest = std::make_shared<serversdk::Request>("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<serversdk::Request>("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();
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
QTEST_GUILESS_MAIN(serversdk::RequestManagerTest)
|
|
|
|
#include "tst_requestmanager.moc"
|