AusweisApp2/test/qt/ui/json/test_UIPlugInJson.cpp
2019-09-30 17:22:19 +02:00

82 lines
1.8 KiB
C++

/*!
* \brief Unit tests for \ref UIPlugInJsonApi
*
* \copyright Copyright (c) 2018-2019 Governikus GmbH & Co. KG, Germany
*/
#include "UIPlugInJson.h"
#include "LogHandler.h"
#include <QSignalSpy>
#include <QtTest>
using namespace governikus;
class test_UIPlugInJson
: public QObject
{
Q_OBJECT
private:
QJsonObject getJsonObject(const QByteArray& pData)
{
QJsonParseError jsonError;
const auto& json = QJsonDocument::fromJson(pData, &jsonError);
if (jsonError.error == QJsonParseError::NoError)
{
return json.object();
}
return QJsonObject();
}
private Q_SLOTS:
void cleanup()
{
Env::getSingleton<LogHandler>()->reset();
}
void log()
{
Env::getSingleton<LogHandler>()->init();
const QLatin1String testDummy("Yeah, piece of cake!");
qDebug() << testDummy;
const QByteArray msg(R"({"cmd": "GET_LOG"})");
QByteArray result;
UIPlugInJson api;
connect(&api, &UIPlugInJson::fireMessage, this, [&](const QByteArray& pMsg){result = pMsg;});
api.setEnabled();
api.doMessageProcessing(msg);
QVERIFY(!result.isEmpty());
QVERIFY(result.contains(R"("msg":"LOG")"));
auto json = getJsonObject(result);
QVERIFY(!json.isEmpty());
auto data = json["data"].toString();
QVERIFY(!data.isEmpty());
const QLatin1String loggedType("Process type: GET_LOG");
QCOMPARE(data.count(loggedType), 1);
QCOMPARE(data.count(testDummy), 1);
result.clear();
api.doMessageProcessing(msg);
QVERIFY(!result.isEmpty());
json = getJsonObject(result);
QVERIFY(!json.isEmpty());
data = json["data"].toString();
QVERIFY(!data.isEmpty());
QCOMPARE(data.count(loggedType), 2);
QCOMPARE(data.count(testDummy), 1);
}
};
QTEST_GUILESS_MAIN(test_UIPlugInJson)
#include "test_UIPlugInJson.moc"