#include "unittest.h" void UnitTest::initTestCase() { } void UnitTest::loginSuccessfully() { auto testAccess = new RequestManager(); QSignalSpy spy(testAccess, SIGNAL(successLogin())); QVERIFY(spy.isValid()); testAccess->login(); spy.wait(timeout); QCOMPARE(spy.count(), 1); QString json = testAccess->jsonResponse; qDebug() << json; QJsonDocument doc = QJsonDocument::fromJson(json.toUtf8()); QVERIFY2(doc.object().value("id").isString(), "No parameter 'id' in response"); } //POST request w/o datas void UnitTest::getSubjects() { auto* testAccess = new RequestManager(); QSignalSpy spy(testAccess, SIGNAL(responseReady())); QVERIFY(spy.isValid()); Response* response = testAccess->getSubjects(); QSignalSpy spy1(response, &Response::ready); spy.wait(timeout); QCOMPARE(spy.count(), 1); QCOMPARE(spy1.count(), 1); QString json = response->getJson(); QJsonDocument doc = QJsonDocument::fromJson(json.toUtf8()); QVERIFY(doc.isObject()); QVERIFY2(doc.object().value("items").isArray(), "No parameter 'id' in response"); qDebug() << doc.object().value("items").toArray()[0].toObject()["id"].toString(); QVERIFY2(doc.object().value("items").toArray()[0].toObject()["id"].isString(), "ada"); } void UnitTest::getTokens() { auto* testAccess = new RequestManager(); Response* response = testAccess->getTokens(); QSignalSpy spy(response, &Response::ready); QCOMPARE(spy.count(), 0); spy.wait(timeout); QVERIFY(spy.isValid()); QCOMPARE(spy.count(), 1); QString json = response->getJson(); QJsonDocument doc = QJsonDocument::fromJson(json.toUtf8()); QVERIFY(doc.isObject()); QVERIFY2(doc.object().value("items").isArray(), "No parameter 'id' in response"); qDebug() << doc.object().value("items").toArray()[0].toObject()["id"].toString(); QVERIFY2(doc.object().value("items").toArray()[0].toObject()["id"].isString(), "ada"); } void UnitTest::getTokenSubject() { auto* testAccess = new RequestManager(); QSignalSpy spy(testAccess, SIGNAL(responseReady())); Response* response = testAccess->getTokenSubject(); QCOMPARE(spy.count(), 0); spy.wait(timeout); QVERIFY(spy.isValid()); QCOMPARE(spy.count(), 1); QString json = response->getJson(); QVERIFY(!json.isEmpty()); } void UnitTest::getSubjectsUpdated() { auto* testAccess = new RequestManager(); QSignalSpy spy(testAccess, SIGNAL(responseReady())); Response* response = testAccess->getSubjectsUpdated(epochMS); QCOMPARE(spy.count(), 0); spy.wait(timeout); QVERIFY(spy.isValid()); QCOMPARE(spy.count(), 1); QString json = response->getJson(); QVERIFY(!json.isEmpty()); } void UnitTest::getSubjectsDeleted() { auto* testAccess = new RequestManager(); QSignalSpy spy(testAccess, SIGNAL(responseReady())); Response* response = testAccess->getSubjectsDeleted(epochMS); QCOMPARE(spy.count(), 0); spy.wait(timeout); QVERIFY(spy.isValid()); QCOMPARE(spy.count(), 1); QString json = response->getJson(); QVERIFY(!json.isEmpty()); } void UnitTest::getTokensUpdated() { auto* testAccess = new RequestManager(); QSignalSpy spy(testAccess, SIGNAL(responseReady())); Response* response = testAccess->getTokensUpdated(epochMS); QCOMPARE(spy.count(), 0); spy.wait(timeout); QVERIFY(spy.isValid()); QCOMPARE(spy.count(), 1); QString json = response->getJson(); QVERIFY(!json.isEmpty()); } void UnitTest::getTokensDeleted() { auto* testAccess = new RequestManager(); QSignalSpy spy(testAccess, SIGNAL(responseReady())); Response* response = testAccess->getTokensDeleted(epochMS); QCOMPARE(spy.count(), 0); spy.wait(timeout); QVERIFY(spy.isValid()); QCOMPARE(spy.count(), 1); QString json = response->getJson(); QVERIFY(!json.isEmpty()); } void UnitTest::getAccessGroups() { auto* testAccess = new RequestManager(); QSignalSpy spy(testAccess, SIGNAL(responseReady())); Response* response = testAccess->getAccessGroups(); QCOMPARE(spy.count(), 0); spy.wait(timeout); QVERIFY(spy.isValid()); QCOMPARE(spy.count(), 1); QString json = response->getJson(); QVERIFY(!json.isEmpty()); } void UnitTest::getAccessGroupsUpdated() { auto* testAccess = new RequestManager(); QSignalSpy spy(testAccess, SIGNAL(responseReady())); Response* response = testAccess->getAccessGroupsUpdated(epochMS); QCOMPARE(spy.count(), 0); spy.wait(timeout); QVERIFY(spy.isValid()); QCOMPARE(spy.count(), 1); QString json = response->getJson(); QVERIFY(!json.isEmpty()); } void UnitTest::getAccessGroupsDeleted() { auto* testAccess = new RequestManager(); QSignalSpy spy(testAccess, SIGNAL(responseReady())); Response* response = testAccess->getAccessGroupsDeleted(epochMS); QCOMPARE(spy.count(), 0); spy.wait(timeout); QVERIFY(spy.isValid()); QCOMPARE(spy.count(), 1); QString json = response->getJson(); QVERIFY(!json.isEmpty()); } void UnitTest::getAccessGroupMembership() { auto* testAccess = new RequestManager(); QSignalSpy spy(testAccess, SIGNAL(responseReady())); Response* response = testAccess->getAccessGroupMembership(); QCOMPARE(spy.count(), 0); spy.wait(timeout); QVERIFY(spy.isValid()); QCOMPARE(spy.count(), 1); QString json = response->getJson(); QVERIFY(!json.isEmpty()); } void UnitTest::getAccessGroupMembershipUpdated() { auto* testAccess = new RequestManager(); QSignalSpy spy(testAccess, SIGNAL(responseReady())); Response* response = testAccess->getAccessGroupMembershipUpdated(epochMS); QCOMPARE(spy.count(), 0); spy.wait(timeout); QVERIFY(spy.isValid()); QCOMPARE(spy.count(), 1); QString json = response->getJson(); QVERIFY(!json.isEmpty()); } void UnitTest::getAccessGroupMembershipDeleted() { auto* testAccess = new RequestManager(); QSignalSpy spy(testAccess, SIGNAL(responseReady())); Response* response = testAccess->getAccessGroupMembershipDeleted(epochMS); QCOMPARE(spy.count(), 0); spy.wait(timeout); QVERIFY(spy.isValid()); QCOMPARE(spy.count(), 1); QString json = response->getJson(); QVERIFY(!json.isEmpty()); } void UnitTest::setTokens() { QFile jsonData(QDir::current().filePath("tokens.json")); QVERIFY2(jsonData.open(QIODevice::ReadOnly), "Couldn't open config file tokens.json"); QJsonDocument doc = QJsonDocument::fromJson(jsonData.readAll()); QJsonObject obj = doc.object(); QJsonArray arr = obj["items"].toArray(); qDebug() << arr; QHash> tokens; for (auto object : arr) { auto token = std::shared_ptr(); token->fromJSON(object.toObject()); tokens.insert(token->idToStringWithoutBraces(), token); } auto testAccess = new RequestManager(); QSignalSpy spy(testAccess, SIGNAL(responseReady())); Response* response = testAccess->setTokens(tokens); QCOMPARE(spy.count(), 0); spy.wait(timeout); QVERIFY(spy.isValid()); QCOMPARE(spy.count(), 1); QString json = response->getJson(); QVERIFY(!json.isEmpty()); } void UnitTest::deleteTokens() { auto* testAccess = new RequestManager(); QSignalSpy spy(testAccess, SIGNAL(responseReady())); QList ids; ids.append("582c982d-6fd7-4856-8548-7ce542791c7a"); ids.append("3ff23b41-3da3-4b33-82ce-d8e2d8c9a546"); Response* response = testAccess->deleteTokens(ids); QCOMPARE(spy.count(), 0); spy.wait(timeout); QVERIFY(spy.isValid()); QCOMPARE(spy.count(), 1); QString json = response->getJson(); QVERIFY(!json.isEmpty()); } void UnitTest::subjectJSONParser() { /* QFile jsonData(QDir::current().filePath("subjects.json")); if (!jsonData.open(QIODevice::ReadOnly)) { qCritical() << "Couldn't open config file config.json" << QDir::current().filePath("subjects.json"); QCoreApplication::exit(-1); return; } QJsonDocument doc = QJsonDocument::fromJson(jsonData.readAll()); QJsonObject obj = doc.object(); QJsonArray arr = obj["items"].toArray(); */ auto* testAccess = new RequestManager(); QSignalSpy spy(testAccess, SIGNAL(responseReady())); Response* response = testAccess->getSubjects(); spy.wait(timeout); QString json = response->getJson(); QJsonDocument doc = QJsonDocument::fromJson(json.toUtf8()); QJsonArray arr = doc.object()["items"].toArray(); auto testSubject = new Subject(); testSubject->fromJSON(arr[1].toObject()); qDebug() << testSubject->getName() << " Size: " << arr.size(); QVERIFY(!testSubject->getName().isEmpty()); } void UnitTest::tokenJSONParser() { auto* testAccess = new RequestManager(); QSignalSpy spy(testAccess, SIGNAL(responseReady())); Response* response = testAccess->getTokens(); spy.wait(timeout); QString json = response->getJson(); QJsonDocument doc = QJsonDocument::fromJson(json.toUtf8()); QJsonArray arr = doc.object()["items"].toArray(); auto testToken = new Token(); testToken->fromJSON(arr[5].toObject()); qDebug() << testToken->getName() << " Size: " << arr.size(); QVERIFY(!testToken->getName().isEmpty()); } //void UnitTest::connectToDB() //{ // DatabaseManager *db = new DatabaseManager("192.168.1.94", "deloitte", "postgres", "34rjkciea12"); // QVERIFY(db->getOpened()); // qDebug() << db->getTestMessage(1); // QVERIFY(true); // QCOMPARE(db->getTestMessage(1), QStringLiteral("Hello world")); // QCOMPARE(db->getTestMessage(db->createTestRecord("Now it's diffrent")), QStringLiteral("Now it's diffrent")); //} /* void UnitTest::debugConnection() { QSslSocket ssl;// = new QSslSocket(); ssl.connectToHostEncrypted("192.168.1.3", 8443); ssl.ignoreSslErrors(); if (!ssl.waitForEncrypted()) { qDebug() << ssl.errorString(); } QString tmp = "POST /AaaManager/authSession HTTP/1.1\r\nHost: 192.168.1.3:8443\r\nAuthorization: Basic c3BhY2V0aTpFN0ZFQTA3REJDODJGQjlCQTM0QjJFNDUzRTJFRkU4OUYwNTgzRTcxODc1NDM1MDdFRjExRTg0NzI2MDcxRkU0Mjg0NDUzNzJGMkU0NkI0NTVFQjBDNzk3NDdDNTFFMzYyRjQwM0NFMzk0NzNBMkE4QzJERkEwQ0U1Qzk4MjZDMA==\r\nUser-Agent: curl/7.65.3\r\nAccept: **\r\nContent-Type: application/json\r\nContent-Length: 164\r\n\r\n{\"password\":\"E7FEA07DBC82FB9BA34B2E453E2EFE89F0583E7187543507EF11E84726071FE428445372F2E46B455EB0C79747C51E362F403CE39473A2A8C2DFA0CE5C9826C0\",\"username\":\"spaceti\"}"; qDebug().noquote() << tmp.toUtf8(); ssl.write(tmp.toUtf8()); QString data; while (ssl.waitForReadyRead() && data.isEmpty()) { data.append(ssl.readAll().data()); } qDebug().noquote() << data; int index = data.lastIndexOf("id"); QString tkn = data.mid( index + 5, 36); tkn = tkn + ":"; qDebug() << "parsed token : " <localSaveTokens(); QVERIFY(true); } void UnitTest::getUuid() { qDebug() << QUuid::createUuid().toString().mid(1,36); QCOMPARE(1,1); } //QTEST_MAIN(UnitTest)