1 /*!
2  * \brief Tests for the class Commands.
3  *
4  * \copyright Copyright (c) 2018-2021 Governikus GmbH & Co. KG, Germany
5  */
6 
7 #include "EABuilder.h"
8 #include "GABuilder.h"
9 #include "PSOBuilder.h"
10 
11 #include <QtTest>
12 
13 using namespace governikus;
14 
15 class test_Commands
16 	: public QObject
17 {
18 	Q_OBJECT
19 
20 	private Q_SLOTS:
test_SetCertificateBody_PSOBuilder()21 		void test_SetCertificateBody_PSOBuilder()
22 		{
23 			PSOBuilder builder(PSOBuilder::P1::VERIFY, PSOBuilder::P2::CERTIFICATE);
24 			const QByteArray data("data");
25 
26 			builder.setCertificateBody(data);
27 			QCOMPARE(builder.mCertificateBody, data);
28 		}
29 
30 
test_SetSignature_PSOBuilder()31 		void test_SetSignature_PSOBuilder()
32 		{
33 			PSOBuilder builder(PSOBuilder::P1::VERIFY, PSOBuilder::P2::CERTIFICATE);
34 			const QByteArray data("data");
35 
36 			builder.setSignature(data);
37 			QCOMPARE(builder.mSignature, data);
38 		}
39 
40 
test_Build_PSOBuilder()41 		void test_Build_PSOBuilder()
42 		{
43 			PSOBuilder builder(PSOBuilder::P1::VERIFY, PSOBuilder::P2::CERTIFICATE);
44 
45 			CommandApdu apdu = builder.build();
46 			QCOMPARE(apdu.getINS(), 0x2a);
47 			QCOMPARE(apdu.getP1(), 0x00);
48 			QCOMPARE(apdu.getP2(), '\xbe');
49 			QCOMPARE(apdu.getData(), QByteArray());
50 		}
51 
52 
test_SetSignatureEABuilder()53 		void test_SetSignatureEABuilder()
54 		{
55 			EABuilder builder;
56 			const QByteArray data("data");
57 
58 			builder.setSignature(data);
59 			QCOMPARE(builder.mSignature, data);
60 		}
61 
62 
test_Build_EABuilder()63 		void test_Build_EABuilder()
64 		{
65 			EABuilder builder;
66 			const QByteArray data("data");
67 
68 			builder.setSignature(data);
69 			CommandApdu apdu = builder.build();
70 
71 			QCOMPARE(apdu.getINS(), char(0x82));
72 			QCOMPARE(apdu.getP1(), 0);
73 			QCOMPARE(apdu.getP2(), 0);
74 			QCOMPARE(apdu.getData(), data);
75 		}
76 
77 
test_SetCaEphemeralPublicKey_GABuilder()78 		void test_SetCaEphemeralPublicKey_GABuilder()
79 		{
80 			GABuilder builder;
81 			const QByteArray data("");
82 
83 			builder.setCaEphemeralPublicKey(data);
84 			QCOMPARE(builder.mCaEphemeralPublicKey, QByteArray::fromHex("8000"));
85 		}
86 
87 
test_SetPaceMappingData_GABuilder()88 		void test_SetPaceMappingData_GABuilder()
89 		{
90 			GABuilder builder;
91 			const QByteArray data("");
92 
93 			builder.setPaceMappingData(data);
94 			QCOMPARE(builder.mPaceMappingData, QByteArray::fromHex("8100"));
95 		}
96 
97 
test_SetPaceEphemeralPublicKey_GABuilder()98 		void test_SetPaceEphemeralPublicKey_GABuilder()
99 		{
100 			GABuilder builder;
101 			const QByteArray data("");
102 
103 			builder.setPaceEphemeralPublicKey(data);
104 			QCOMPARE(builder.mPaceEphemeralPublicKey, QByteArray::fromHex("8300"));
105 		}
106 
107 
test_SetPaceAuthenticationToken_GABuilder()108 		void test_SetPaceAuthenticationToken_GABuilder()
109 		{
110 			GABuilder builder;
111 			const QByteArray data("");
112 
113 			builder.setPaceAuthenticationToken(data);
114 			QCOMPARE(builder.mPaceAuthenticationToken, QByteArray::fromHex("8500"));
115 		}
116 
117 
118 };
119 
120 QTEST_GUILESS_MAIN(test_Commands)
121 #include "test_Commands.moc"
122