#include "unittest.h" void UnitTest::initTestCase() { } void UnitTest::loginSuccessfully() { RequestManager testAccess; QSignalSpy spy(&testAccess, &RequestManager::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() { RequestManager testAccess; QSignalSpy spy(&testAccess, &RequestManager::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"); response->deleteLater(); } void UnitTest::getTokens() { RequestManager testAccess; 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"); response->deleteLater(); } void UnitTest::getTokenSubject() { RequestManager testAccess; QSignalSpy spy(&testAccess, &RequestManager::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()); response->deleteLater(); } void UnitTest::getSubjectsUpdated() { RequestManager testAccess; QSignalSpy spy(&testAccess, &RequestManager::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()); response->deleteLater(); } void UnitTest::getSubjectsDeleted() { RequestManager testAccess; QSignalSpy spy(&testAccess, &RequestManager::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()); response->deleteLater(); } void UnitTest::getTokensUpdated() { RequestManager testAccess; QSignalSpy spy(&testAccess, &RequestManager::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()); response->deleteLater(); } void UnitTest::getTokensDeleted() { RequestManager testAccess; QSignalSpy spy(&testAccess, &RequestManager::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()); response->deleteLater(); } void UnitTest::getAccessGroups() { RequestManager testAccess; QSignalSpy spy(&testAccess, &RequestManager::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()); response->deleteLater(); } void UnitTest::getAccessGroupsUpdated() { RequestManager testAccess; QSignalSpy spy(&testAccess, &RequestManager::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()); response->deleteLater(); } void UnitTest::getAccessGroupsDeleted() { RequestManager testAccess; QSignalSpy spy(&testAccess, &RequestManager::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()); response->deleteLater(); } void UnitTest::getAccessGroupMembership() { RequestManager testAccess; QSignalSpy spy(&testAccess, &RequestManager::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()); response->deleteLater(); } void UnitTest::getAccessGroupMembershipUpdated() { RequestManager testAccess; QSignalSpy spy(&testAccess, &RequestManager::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()); response->deleteLater(); } void UnitTest::getAccessGroupMembershipDeleted() { RequestManager testAccess; QSignalSpy spy(&testAccess, &RequestManager::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()); response->deleteLater(); } void UnitTest::setTokens() { QHash> tokens; auto token = getTestToken(); tokens.insert(token->idToStringWithoutBraces(), token); RequestManager testAccess; QSignalSpy spy(&testAccess, &RequestManager::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()); response->deleteLater(); } void UnitTest::deleteTokens() { RequestManager testAccess; QSignalSpy spy(&testAccess, &RequestManager::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()); response->deleteLater(); } void UnitTest::subjectJSONParser() { RequestManager testAccess; QSignalSpy spy(&testAccess, &RequestManager::responseReady); Response* response = testAccess.getSubjects(); spy.wait(timeout); QString json = response->getJson(); QJsonDocument doc = QJsonDocument::fromJson(json.toUtf8()); QJsonArray arr = doc.object()["items"].toArray(); Subject testSubject; testSubject.fromJSON(arr[1].toObject()); qDebug() << testSubject.getName() << " Size: " << arr.size(); QVERIFY(!testSubject.getName().isEmpty()); response->deleteLater(); } void UnitTest::tokenJSONParser() { RequestManager testAccess; QSignalSpy spy(&testAccess, &RequestManager::responseReady); Response* response = testAccess.getTokens(); spy.wait(timeout); QString json = response->getJson(); QJsonDocument doc = QJsonDocument::fromJson(json.toUtf8()); QJsonArray arr = doc.object()["items"].toArray(); Token testToken; testToken.fromJSON(arr[5].toObject()); qDebug() << testToken.getName() << " Size: " << arr.size(); QVERIFY(!testToken.getName().isEmpty()); response->deleteLater(); } std::shared_ptr UnitTest::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::make_shared(); token->fromJSON(jsonToken); return token; } QTEST_MAIN(UnitTest)