1 /*!
2  * \brief Unit tests for \ref MsgContext
3  *
4  * \copyright Copyright (c) 2016-2021 Governikus GmbH & Co. KG, Germany
5  */
6 
7 #include "messages/MsgContext.h"
8 
9 #include "context/AuthContext.h"
10 #include "InternalActivationContext.h"
11 #include "messages/MsgHandler.h"
12 
13 #include <QtTest>
14 
15 using namespace governikus;
16 
17 class test_MsgContext
18 	: public QObject
19 {
20 	Q_OBJECT
21 
22 	private Q_SLOTS:
apiLevel()23 		void apiLevel()
24 		{
25 			MsgDispatcherContext ctx;
26 			const MsgContext& readOnly = ctx;
27 
28 			QCOMPARE(readOnly.getApiLevel(), MsgHandler::DEFAULT_MSG_LEVEL);
29 			ctx.setApiLevel(MsgLevel::v1);
30 			QCOMPARE(readOnly.getApiLevel(), MsgLevel::v1);
31 		}
32 
33 
stateMsg()34 		void stateMsg()
35 		{
36 			MsgDispatcherContext ctx;
37 			const MsgContext& readOnly = ctx;
38 
39 			QCOMPARE(readOnly.getLastStateMsg(), MsgType::INTERNAL_ERROR);
40 			ctx.addStateMsg(MsgType::INSERT_CARD);
41 			QCOMPARE(readOnly.getLastStateMsg(), MsgType::INSERT_CARD);
42 			ctx.addStateMsg(MsgType::ENTER_PIN);
43 			QCOMPARE(readOnly.getLastStateMsg(), MsgType::ENTER_PIN);
44 			ctx.clear();
45 			QCOMPARE(readOnly.getLastStateMsg(), MsgType::INTERNAL_ERROR);
46 		}
47 
48 
workflowContext()49 		void workflowContext()
50 		{
51 			MsgDispatcherContext ctx;
52 			const MsgContext& readOnly = ctx;
53 
54 			QVERIFY(!readOnly.isActiveWorkflow());
55 			QVERIFY(!readOnly.getContext<AuthContext>());
56 			QVERIFY(!ctx.getContext<AuthContext>());
57 			QVERIFY(!readOnly.getContext());
58 
59 			ctx.setWorkflowContext(QSharedPointer<WorkflowContext>(new WorkflowContext()));
60 			QVERIFY(readOnly.isActiveWorkflow());
61 			QVERIFY(!readOnly.getContext<AuthContext>());
62 			QVERIFY(!ctx.getContext<AuthContext>());
63 			QVERIFY(readOnly.getContext());
64 
65 			ctx.clear();
66 			QVERIFY(!readOnly.isActiveWorkflow());
67 			QVERIFY(!readOnly.getContext<AuthContext>());
68 			QVERIFY(!ctx.getContext<AuthContext>());
69 			QVERIFY(!readOnly.getContext());
70 
71 			ctx.setWorkflowContext(QSharedPointer<AuthContext>(new AuthContext(QSharedPointer<InternalActivationContext>::create(QUrl("http://www.bla.de")))));
72 			QVERIFY(readOnly.isActiveWorkflow());
73 			QVERIFY(readOnly.getContext<AuthContext>());
74 			QVERIFY(ctx.getContext<AuthContext>());
75 			QVERIFY(readOnly.getContext());
76 
77 			QVERIFY(ctx.isActiveWorkflow());
78 			QVERIFY(ctx.getContext<AuthContext>());
79 			QVERIFY(ctx.getContext<AuthContext>());
80 			QVERIFY(ctx.getContext());
81 		}
82 
83 
84 };
85 
86 QTEST_GUILESS_MAIN(test_MsgContext)
87 #include "test_MsgContext.moc"
88