1 /*! 2 * \brief Unit tests for \ref MsgHandlerInsertCard 3 * 4 * \copyright Copyright (c) 2016-2021 Governikus GmbH & Co. KG, Germany 5 */ 6 7 #include "messages/MsgHandlerInsertCard.h" 8 9 #include "MessageDispatcher.h" 10 #include "MockReaderManagerPlugIn.h" 11 #include "ReaderManager.h" 12 13 #include <QtPlugin> 14 #include <QTest> 15 16 Q_IMPORT_PLUGIN(MockReaderManagerPlugIn) 17 18 using namespace governikus; 19 20 class test_MsgHandlerInsertCard 21 : public QObject 22 { 23 Q_OBJECT 24 setContext(MessageDispatcher & pDispatcher)25 static void setContext(MessageDispatcher& pDispatcher) 26 { 27 QSharedPointer<WorkflowContext> context(new WorkflowContext()); 28 pDispatcher.init(context); 29 } 30 31 private Q_SLOTS: initTestCase()32 void initTestCase() 33 { 34 const auto readerManager = Env::getSingleton<ReaderManager>(); 35 readerManager->init(); 36 readerManager->isScanRunning(); // just to wait until initialization finished 37 } 38 39 cleanupTestCase()40 void cleanupTestCase() 41 { 42 Env::getSingleton<ReaderManager>()->shutdown(); 43 } 44 45 ctor()46 void ctor() 47 { 48 const QSharedPointer<WorkflowContext> context(new WorkflowContext()); 49 QCOMPARE(context->isStateApproved(), false); 50 51 MsgDispatcherContext ctx; 52 ctx.setWorkflowContext(context); 53 MsgHandlerInsertCard msg(ctx); 54 55 QCOMPARE(msg.toJson(), QByteArray("{\"msg\":\"INSERT_CARD\"}")); 56 QCOMPARE(context->isStateApproved(), true); 57 } 58 59 noReader()60 void noReader() 61 { 62 MessageDispatcher dispatcher; 63 setContext(dispatcher); 64 65 QCOMPARE(dispatcher.processStateChange(QStringLiteral("StateSelectReader")), QByteArray("{\"msg\":\"INSERT_CARD\"}")); 66 } 67 68 readerWithoutCard()69 void readerWithoutCard() 70 { 71 MockReaderManagerPlugIn::getInstance().addReader("MockReader 1"); 72 MockReaderManagerPlugIn::getInstance().addReader("MockReader 2"); 73 MockReaderManagerPlugIn::getInstance().addReader("MockReader 3"); 74 75 MessageDispatcher dispatcher; 76 setContext(dispatcher); 77 78 QCOMPARE(dispatcher.processStateChange(QStringLiteral("StateSelectReader")), QByteArray("{\"msg\":\"INSERT_CARD\"}")); 79 } 80 81 readerWithCard()82 void readerWithCard() 83 { 84 MockReaderManagerPlugIn::getInstance().addReader("MockReader 1"); 85 MockReader* reader = MockReaderManagerPlugIn::getInstance().addReader("MockReader CARD"); 86 reader->setCard(MockCardConfig()); 87 88 MessageDispatcher dispatcher; 89 setContext(dispatcher); 90 91 QCOMPARE(dispatcher.processStateChange(QStringLiteral("StateSelectReader")), QByteArray()); 92 } 93 94 95 }; 96 97 QTEST_GUILESS_MAIN(test_MsgHandlerInsertCard) 98 #include "test_MsgHandlerInsertCard.moc" 99