2017-07-03 09:33:28 +02:00
|
|
|
/*!
|
|
|
|
* \brief Unit tests for \ref MsgHandlerEnterPuk
|
|
|
|
*
|
2019-05-22 10:08:38 +02:00
|
|
|
* \copyright Copyright (c) 2016-2019 Governikus GmbH & Co. KG, Germany
|
2017-07-03 09:33:28 +02:00
|
|
|
*/
|
|
|
|
|
|
|
|
#include "messages/MsgHandlerEnterPuk.h"
|
|
|
|
|
2019-01-03 15:06:22 +01:00
|
|
|
#include "MsgHandlerEnterPassword.h"
|
|
|
|
|
2017-07-03 09:33:28 +02:00
|
|
|
#include "MessageDispatcher.h"
|
2017-09-15 10:23:30 +02:00
|
|
|
#include "ReaderManager.h"
|
2017-07-03 09:33:28 +02:00
|
|
|
|
2019-01-03 15:06:22 +01:00
|
|
|
#include "MockReaderManagerPlugIn.h"
|
|
|
|
|
2017-07-03 09:33:28 +02:00
|
|
|
#include <QtPlugin>
|
2019-01-03 15:06:22 +01:00
|
|
|
#include <QtTest>
|
2017-07-03 09:33:28 +02:00
|
|
|
|
|
|
|
Q_IMPORT_PLUGIN(MockReaderManagerPlugIn)
|
|
|
|
|
|
|
|
using namespace governikus;
|
|
|
|
|
|
|
|
class test_MsgHandlerEnterPuk
|
|
|
|
: public QObject
|
|
|
|
{
|
|
|
|
Q_OBJECT
|
|
|
|
|
2019-01-03 15:06:22 +01:00
|
|
|
static void setValidPukState(MessageDispatcher& pDispatcher,
|
|
|
|
bool pSelectReader = true,
|
|
|
|
bool pBasicReader = true,
|
|
|
|
const PacePasswordId pPasswordID = PacePasswordId::PACE_PUK)
|
2017-07-03 09:33:28 +02:00
|
|
|
{
|
2019-01-03 15:06:22 +01:00
|
|
|
setValidState(pDispatcher, pSelectReader, pBasicReader, pPasswordID);
|
2017-07-03 09:33:28 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private Q_SLOTS:
|
2017-09-15 10:23:30 +02:00
|
|
|
void initTestCase()
|
|
|
|
{
|
2019-01-03 15:06:22 +01:00
|
|
|
const auto readerManager = Env::getSingleton<ReaderManager>();
|
|
|
|
readerManager->init();
|
|
|
|
readerManager->getPlugInInfos(); // just to wait until initialization finished
|
2017-09-15 10:23:30 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void cleanupTestCase()
|
|
|
|
{
|
2019-01-03 15:06:22 +01:00
|
|
|
Env::getSingleton<ReaderManager>()->shutdown();
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void cleanup()
|
|
|
|
{
|
|
|
|
MockReaderManagerPlugIn::getInstance().removeAllReader();
|
2017-09-15 10:23:30 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
|
2017-07-03 09:33:28 +02:00
|
|
|
void stateMsg()
|
|
|
|
{
|
|
|
|
MessageDispatcher dispatcher;
|
2019-01-03 15:06:22 +01:00
|
|
|
setValidPukState(dispatcher);
|
2017-07-03 09:33:28 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
|
2017-09-15 10:23:30 +02:00
|
|
|
void undefined()
|
|
|
|
{
|
|
|
|
MessageDispatcher dispatcher;
|
2019-01-03 15:06:22 +01:00
|
|
|
setValidPukState(dispatcher);
|
2017-09-15 10:23:30 +02:00
|
|
|
|
2019-01-03 15:06:22 +01:00
|
|
|
const QByteArray msg(R"({"cmd": "SET_PUK"})");
|
|
|
|
QCOMPARE(dispatcher.processCommand(msg), addReaderData(R"({"error":"Value cannot be undefined","msg":"ENTER_PUK"})"));
|
2017-09-15 10:23:30 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void invalid()
|
|
|
|
{
|
|
|
|
MessageDispatcher dispatcher;
|
2019-01-03 15:06:22 +01:00
|
|
|
setValidPukState(dispatcher);
|
2017-09-15 10:23:30 +02:00
|
|
|
|
2019-01-03 15:06:22 +01:00
|
|
|
const QByteArray msg(R"({"cmd": "SET_PUK", "value": 12345667890})");
|
|
|
|
QCOMPARE(dispatcher.processCommand(msg), addReaderData(R"({"error":"Invalid value","msg":"ENTER_PUK"})"));
|
2017-09-15 10:23:30 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void badInput()
|
|
|
|
{
|
|
|
|
MessageDispatcher dispatcher;
|
2019-01-03 15:06:22 +01:00
|
|
|
setValidPukState(dispatcher);
|
2017-09-15 10:23:30 +02:00
|
|
|
|
2019-01-03 15:06:22 +01:00
|
|
|
QByteArray msg(R"({"cmd": "SET_PUK", "value": "123456"})");
|
|
|
|
const QByteArray expected(addReaderData(R"({"error":"You must provide 10 digits","msg":"ENTER_PUK"})"));
|
2017-09-15 10:23:30 +02:00
|
|
|
QCOMPARE(dispatcher.processCommand(msg), expected);
|
|
|
|
|
2019-01-03 15:06:22 +01:00
|
|
|
msg = (R"({"cmd": "SET_PUK", "value": "12345"})");
|
2017-09-15 10:23:30 +02:00
|
|
|
QCOMPARE(dispatcher.processCommand(msg), expected);
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void badState()
|
|
|
|
{
|
|
|
|
MessageDispatcher dispatcher;
|
2019-01-03 15:06:22 +01:00
|
|
|
setValidPukState(dispatcher, true, true, PacePasswordId::UNKNOWN);
|
2017-09-15 10:23:30 +02:00
|
|
|
|
2019-01-03 15:06:22 +01:00
|
|
|
QByteArray msg(R"({"cmd": "SET_PUK", "value": "123456789"})");
|
2017-09-15 10:23:30 +02:00
|
|
|
QCOMPARE(dispatcher.processCommand(msg), QByteArray("{\"error\":\"SET_PUK\",\"msg\":\"BAD_STATE\"}"));
|
|
|
|
|
2019-01-03 15:06:22 +01:00
|
|
|
msg = (R"({"cmd": "SET_PUK", "value": "1234567890"})");
|
2017-09-15 10:23:30 +02:00
|
|
|
QCOMPARE(dispatcher.processCommand(msg), QByteArray("{\"error\":\"SET_PUK\",\"msg\":\"BAD_STATE\"}"));
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void noDirectResponseIfPukLooksValid()
|
|
|
|
{
|
|
|
|
MessageDispatcher dispatcher;
|
2019-01-03 15:06:22 +01:00
|
|
|
setValidPukState(dispatcher);
|
2017-09-15 10:23:30 +02:00
|
|
|
|
2019-01-03 15:06:22 +01:00
|
|
|
const QByteArray msg(R"({"cmd": "SET_PUK", "value": "1234567890"})");
|
2017-09-15 10:23:30 +02:00
|
|
|
QCOMPARE(dispatcher.processCommand(msg), QByteArray());
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2019-01-03 15:06:22 +01:00
|
|
|
void pinPadReader()
|
2017-09-15 10:23:30 +02:00
|
|
|
{
|
|
|
|
MessageDispatcher dispatcher;
|
2019-01-03 15:06:22 +01:00
|
|
|
setValidPukState(dispatcher, true, false);
|
2017-09-15 10:23:30 +02:00
|
|
|
|
2019-01-03 15:06:22 +01:00
|
|
|
QByteArray msg(R"({"cmd": "SET_PUK", "value": "1234567890"})");
|
|
|
|
QByteArray expected(addReaderData(R"({"error":"Value cannot be defined","msg":"ENTER_PUK"})", true));
|
|
|
|
QCOMPARE(dispatcher.processCommand(msg), expected);
|
2017-09-15 10:23:30 +02:00
|
|
|
|
2019-01-03 15:06:22 +01:00
|
|
|
msg = QByteArray(R"({"cmd": "SET_PUK", "value": ""})");
|
|
|
|
expected = QByteArray(addReaderData(R"({"error":"Value cannot be defined","msg":"ENTER_PUK"})", true));
|
|
|
|
QCOMPARE(dispatcher.processCommand(msg), expected);
|
2017-09-15 10:23:30 +02:00
|
|
|
|
2019-01-03 15:06:22 +01:00
|
|
|
msg = QByteArray(R"({"cmd": "SET_PUK"})");
|
|
|
|
QCOMPARE(dispatcher.processCommand(msg), QByteArray());
|
2017-09-15 10:23:30 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
|
2017-07-03 09:33:28 +02:00
|
|
|
};
|
|
|
|
|
|
|
|
QTEST_GUILESS_MAIN(test_MsgHandlerEnterPuk)
|
|
|
|
#include "test_MsgHandlerEnterPuk.moc"
|