2019-10-07 12:00:04 +02:00

176 lines
6.5 KiB
C++

#include "unittest.h"
void UnitTest::loginSuccessfully()
{
RequestManager* testAccess = new RequestManager();
QJsonDocument config = testAccess->getConfig();
QSignalSpy spy(testAccess, SIGNAL(successLogin()));
testAccess->login(host, email, password);
spy.wait();
QVERIFY(spy.isValid());
QCOMPARE(spy.count(), 1);
QString json = testAccess->getResponse();
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 = new RequestManager();
QSignalSpy spy(testAccess, SIGNAL(responseReady()));
testAccess->getRequest("/SubjectManager/getSubjects");
spy.wait();
QVERIFY(spy.isValid());
QCOMPARE(spy.count(), 1);
QString json = testAccess->getResponse();
qDebug() << json;
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()
{
RequestManager* testAccess = new RequestManager();
QSignalSpy spy(testAccess, SIGNAL(responseReady()));
testAccess->getRequest("/TokenManager/getTokens");
QCOMPARE(spy.count(), 0);
spy.wait();
QVERIFY(spy.isValid());
QCOMPARE(spy.count(), 1);
qDebug() << testAccess->getResponse();
}
void UnitTest::getTokensOpenManager()
{
RequestManager* testAccess = new RequestManager();
QSignalSpy spy(testAccess, SIGNAL(responseReady()));
testAccess->getRequest("/OpenManager/getTokenSubject");
QCOMPARE(spy.count(), 0);
spy.wait();
QVERIFY(spy.isValid());
QCOMPARE(spy.count(), 1);
QString response = testAccess->getResponse();
qDebug() << response;
QVERIFY(!response.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();
*/
QVERIFY(true);
return;
RequestManager* testAccess = new RequestManager();
QSignalSpy spy(testAccess, SIGNAL(responseReady()));
testAccess->getRequest("/SubjectManager/getSubjects");
spy.wait();
QString response = testAccess->getResponse();
QJsonDocument doc = QJsonDocument::fromJson(response.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()
{
RequestManager* testAccess = new RequestManager();
QSignalSpy spy(testAccess, SIGNAL(responseReady()));
testAccess->getRequest("/TokenManager/getTokens");
spy.wait();
QString response = testAccess->getResponse();
//TODO
/* QJsonDocument doc = QJsonDocument::fromJson(response.toUtf8());
QJsonArray arr = doc.object()["items"].toArray();
auto testSubject = new Subject();
testSubject->fromJSON(arr[1].toObject());
qDebug() << testSubject->getName();
QVERIFY(!testSubject->getName().isEmpty());*/
QVERIFY(true);
}
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), "Hello world");
db->createTestRecord("Does it work?");
QCOMPARE(db->getTestMessage(2), "Does it work?");
}
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\"}";
/*POST /AaaManager/authSession HTTP/1.1
Host: localhost:8080
Authorization: Basic c3BhY2V0aTpFN0ZFQTA3REJDODJGQjlCQTM0QjJFNDUzRTJFRkU4OUYwNTgzRTcxODc1NDM1MDdFRjExRTg0NzI2MDcxRkU0Mjg0NDUzNzJGMkU0NkI0NTVFQjBDNzk3NDdDNTFFMzYyRjQwM0NFMzk0NzNBMkE4QzJERkEwQ0U1Qzk4MjZDMA==
User-Agent: curl/7.65.3
Accept:
Content-Type: application/json
Content-Length: 164
{"password":"E7FEA07DBC82FB9BA34B2E453E2EFE89F0583E7187543507EF11E84726071FE428445372F2E46B455EB0C79747C51E362F403CE39473A2A8C2DFA0CE5C9826C0","username":"spaceti"}*/
qDebug() << tmp.toUtf8();
ssl.write(tmp.toUtf8());
QString data;
while (ssl.waitForReadyRead() && data.isEmpty())
{
data.append(ssl.readAll().data());
}
qDebug() << data;
int index = data.lastIndexOf("id");
QString tkn = data.mid( index + 5, 36);
tkn = tkn + ":";
qDebug() << "parsed token : " <<tkn;
/*
RequestManager* testAccess = new RequestManager();
QJsonDocument config = testAccess->getConfig();
QSignalSpy spy(testAccess, SIGNAL(successLogin()));
testAccess->login(host, email, password);
spy.wait();
QString token = testAccess->getToken();
token = token + ":";*/
tmp = "POST /SubjectManager/getSubjects\r\nHTTP/1.1 Host: 192.168.1.3:8443\r\nAuthorization: Basic " + tkn.toUtf8().toBase64() + "\r\nUser-Agent: curl/7.65.3\r\nAccept: */*)";
qDebug() << tmp.toUtf8();
ssl.write(tmp.toUtf8());
while (ssl.waitForReadyRead())
qDebug() << ssl.readAll().data();
QVERIFY(true);
}
QTEST_MAIN(UnitTest)