colnod-connector/test/unitTests/complextest.cpp
2019-11-18 17:07:39 +01:00

203 lines
7.5 KiB
C++

#include "complextest.h"
void ComplexTest::initTestCase()
{
// auto reqMan1 = new RequestManager;
// QList<QString> ids;
// ids.append("582c982d-6fd7-4856-8548-7ce542791c7a");
// ids.append("3ff23b41-3da3-4b33-82ce-d8e2d8c9a546");
// Response* deleteTokensResp = reqMan1->deleteTokens(ids);
// QSignalSpy deleteTokensRespSpy(deleteTokensResp, &Response::ready);
// QCOMPARE(deleteTokensRespSpy.count(), 0);
// deleteTokensRespSpy.wait(timeout);
// QTest::qWait(2500);
// Logger *logger = Logger::getLogger();
start = QDateTime::currentMSecsSinceEpoch()-2000;
api = new SyncManager();
qDebug() << start;
}
void ComplexTest::cleanupTestCase()
{
// QList<QString> ids;
// ids.append("582c982d-6fd7-4856-8548-7ce542791c7a");
// ids.append("3ff23b41-3da3-4b33-82ce-d8e2d8c9a546");
// auto reqMan = new RequestManager;
// Response* deleteTokensResp = reqMan->deleteTokens(ids);
// QSignalSpy deleteTokensRespSpy(deleteTokensResp, &Response::ready);
// QCOMPARE(deleteTokensRespSpy.count(), 0);
// deleteTokensRespSpy.wait(timeout);
// QCOMPARE(deleteTokensRespSpy.count(), 1);
}
void ComplexTest::complexTest()
{
// // LOGIN_BEGIN
// reqMan = new RequestManager;
// QSignalSpy loginSpy(reqMan, &RequestManager::successLogin);
// auto loginResp = reqMan->login();
// QSignalSpy loginRespSpy(loginResp.get(), &Response::ready);
// QCOMPARE(loginSpy.count(), 0);
// QCOMPARE(loginRespSpy.count(), 0);
// loginSpy.wait(timeout);
// QCOMPARE(loginResp->getStatusCode(), 200); // HTTP status code check
// QCOMPARE(loginSpy.count(), 1); // Checking multiple calls
// QCOMPARE(loginRespSpy.count(), 1);
// auto doc0 = getJsonDoc(loginResp->getJson());
// QVERIFY(doc0.object()["id"].isString());
// // LOGIN_END
// // NUMBER_OF_SUBJECTS_AND_TOKENS_BEGIN
// int numOfSubjects = getNumOfSubjects();
// QCOMPARE(numOfSubjects, 2893); // should be still the same, if false db has been changed
// int numOfTokens = getNumOfTokens();
// QCOMPARE(numOfTokens, 2881); // should be still the same, if false db has been changed, or deleteTokens didnt work in previous test
// // NUMBER_OF_SUBJECTS_AND_TOKENS_END
// // ADD_TOKENS_CHECK_BEGIN
// QHash<QString, std::shared_ptr<Token>> tokens;
// auto token = getTestToken();
// tokens.insert(token->idToStringWithoutBraces(), token);
// Response* setTokensResp = reqMan->setTokens(tokens);
// QSignalSpy setTokensRespSpy(setTokensResp, &Response::ready);
// QCOMPARE(setTokensRespSpy.count(), 0);
// setTokensRespSpy.wait(timeout);
// QCOMPARE(setTokensRespSpy.count(), 1);
// QCOMPARE(setTokensResp->getStatusCode(), 200);
// QCOMPARE(getNumOfTokens(), numOfTokens + 1);
// // ADD_TOKENS_CHEK_END
// // CHECK_UPDATED_TOKENS_BEGIN
// Response* getTokensUpdatedResp = reqMan->getTokensUpdated(start);
// //start = QDateTime::currentMSecsSinceEpoch();
// QSignalSpy getTokensUpdatedRespSpy(getTokensUpdatedResp, &Response::ready);
// QCOMPARE(getTokensUpdatedRespSpy.count(), 0);
// getTokensUpdatedRespSpy.wait(timeout);
// QCOMPARE(getTokensUpdatedResp->getStatusCode(), 200);
// QCOMPARE(getTokensUpdatedRespSpy.count(), 1);
// auto doc1 = getJsonDoc(getTokensUpdatedResp->getJson());
// QCOMPARE(doc1.object()["items"].toArray().size(), 1);
// // CHECK_UPDATED_TOKENS_END
// // DELETE_TOKENS_CHECK_BEGIN
// QList<QString> ids;
// ids.append("062c93f6-ba3e-46af-a3a6-7a2988d1f0e9");
// Response* deleteTokensResp = reqMan->deleteTokens(ids);
// QSignalSpy deleteTokensRespSpy(deleteTokensResp, &Response::ready);
// QCOMPARE(deleteTokensRespSpy.count(), 0);
// deleteTokensRespSpy.wait(timeout);
// QCOMPARE(deleteTokensRespSpy.count(), 1);
// QCOMPARE(deleteTokensResp->getStatusCode(), 200);
// // DELETE_TOKENS_CHECK_END
// // CHECK_DELETED_TOKENS_BEGIN
// Response* getTokensDeletedResp = reqMan->getTokensDeleted(start);
// start = QDateTime::currentMSecsSinceEpoch();
// QSignalSpy getTokensDeletedRespSpy(getTokensDeletedResp, &Response::ready);
// QCOMPARE(getTokensDeletedRespSpy.count(), 0);
// getTokensDeletedRespSpy.wait(timeout);
// QCOMPARE(getTokensDeletedResp->getStatusCode(), 200);
// QCOMPARE(getTokensDeletedRespSpy.count(), 1);
// auto doc2 = getJsonDoc(getTokensDeletedResp->getJson());
// QCOMPARE(doc2.object()["items"].toArray().size(), 1);
// QVERIFY(doc2.object()["items"].toArray().contains("062c93f6-ba3e-46af-a3a6-7a2988d1f0e9"));
// // CHECK_DELETED_TOKENS_END
// // LAST_TESTS (for sure)
// QCOMPARE(loginSpy.count(), 1); // Checking multiple calls
// QCOMPARE(loginRespSpy.count(), 1);
// QCOMPARE(getNumOfSubjects(), numOfSubjects);
// QCOMPARE(getNumOfTokens(), numOfTokens);
}
void ComplexTest::fullSync()
{
/* api->prepareDatabase();
api->loadDataFromColnod();
QSignalSpy spy(api, &SyncManager::dataDownloaded);
spy.wait(timeout);
api->loadDataFromDB();
api->syncDataFromColnodToDB();
api->syncDataFromDBToColnod();
QSignalSpy processSpy(api, &SyncManager::dataUpdatedToColnod);
processSpy.wait(timeout);
QSignalSpy finish(api, &SyncManager::syncFinished);
finish.wait(timeout); */
}
void ComplexTest::syncLastUpdated()
{
// Logger::log("ahoj");
// api->loadDataFromColnod();
// QSignalSpy spy(api, &SyncManager::dataDownloaded);
// spy.wait(timeout);
// api->loadDataFromDB();
// api->syncDataFromColnodToDB();
// api->syncDataFromDBToColnod();
// QSignalSpy processSpy(api, &SyncManager::dataUpdatedToColnod);
// processSpy.wait(timeout);
// QSignalSpy finish(api, &SyncManager::syncFinished);
// finish.wait(timeout);
// qDebug() << "All right, at least should be.";
}
void ComplexTest::testingStuff()
{
//DatabaseManager* db = new DatabaseManager("192.168.1.94", "deloitte", "postgres", "34rjkciea12");
//DatabaseManager* db = new DatabaseManager("localhost", "deloitte", "postgres", "34rjkciea12");
//db->makeTestingLast_sync();
}
// HELPFUL_FUNCTIONS
int ComplexTest::getNumOfSubjects()
{
auto reqMan = new RequestManager;
Response* subjectsResp = reqMan->getSubjects();
QSignalSpy subjectsRespSpy(subjectsResp, &Response::ready);
subjectsRespSpy.wait(timeout);
auto doc = getJsonDoc(subjectsResp->getJson());
return doc.object()["items"].toArray().size();
}
int ComplexTest::getNumOfTokens()
{
auto reqMan = new RequestManager;
Response* tokensResp = reqMan->getTokens();
QSignalSpy tokensRespSpy(tokensResp, &Response::ready);
tokensRespSpy.wait(timeout);
auto doc = getJsonDoc(tokensResp->getJson());
return doc.object()["items"].toArray().size();
}
QJsonDocument ComplexTest::getJsonDoc(const QString &json)
{
return QJsonDocument::fromJson(json.toUtf8());
}
std::shared_ptr<Token> ComplexTest::getTestToken()
{
QJsonObject jsonToken;
jsonToken.insert("id", "062c93f6-ba3e-46af-a3a6-7a2988d1f0e9");
jsonToken.insert("name", "test");
jsonToken.insert("description", "mobile");
jsonToken.insert("tokenType", "Token");
jsonToken.insert("tokenBits", 32);
jsonToken.insert("tokenData", "7B9D32");
jsonToken.insert("timeToLive", 255);
jsonToken.insert("authErrors", 255);
QJsonArray flags;
flags.push_back("Enabled");
flags.push_back("NoValidity");
jsonToken.insert("flags", flags);
jsonToken.insert("subjectId", "72b37f7e-5761-4e6c-8e87-20c0bed0d904");
auto token = std::shared_ptr<Token>();
//token->fromJSON(jsonToken);
return token;
}
//QTEST_MAIN(ComplexTest)