2019-11-18 17:07:39 +01:00

304 lines
9.3 KiB
C++

#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<QString, std::shared_ptr<Token>> tokens;
auto token = getTestToken();
tokens.insert(token->id(), 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<QString> 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<Token> 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>();
//token->fromJSON(jsonToken);
return token;
}
QTEST_MAIN(UnitTest)