File indexing completed on 2024-05-19 05:17:52
0001 /* 0002 SPDX-FileCopyrightText: 2021 Volker Krause <vkrause@kde.org> 0003 SPDX-License-Identifier: LGPL-2.0-or-later 0004 */ 0005 0006 #include "testhelpers.h" 0007 0008 #include "tickettokencomparator_p.h" 0009 0010 #include <QTest> 0011 0012 using namespace KItinerary; 0013 0014 #define s(x) QStringLiteral(x) 0015 0016 class TicketTokenComparatorTest : public QObject 0017 { 0018 Q_OBJECT 0019 private Q_SLOTS: 0020 void testNonEqual_data() 0021 { 0022 QTest::addColumn<QVariant>("lhs"); 0023 QTest::addColumn<QVariant>("rhs"); 0024 0025 QTest::newRow("type mismatch") << QVariant(s("123456")) << QVariant(QByteArray("123456")); 0026 0027 const auto uic = Test::readFile(QStringLiteral(SOURCE_DIR "/uic918-3/valid/Testw_VOW8XG6_A9E8DXL_0.bin")); 0028 auto uic2 = uic; 0029 uic2[10] = 'X'; // changes the signature key id 0030 QTest::newRow("uic-semantic-nonequal") << QVariant(uic) << QVariant(uic2); 0031 } 0032 0033 void testNonEqual() 0034 { 0035 QFETCH(QVariant, lhs); 0036 QFETCH(QVariant, rhs); 0037 0038 QVERIFY(!TicketTokenComparator::isSame(lhs, rhs)); 0039 QVERIFY(!TicketTokenComparator::isSame(rhs, lhs)); 0040 } 0041 0042 void testEqual_data() 0043 { 0044 QTest::addColumn<QVariant>("lhs"); 0045 QTest::addColumn<QVariant>("rhs"); 0046 0047 QTest::newRow("both-empty") << QVariant() << QVariant(); 0048 QTest::newRow("equal-qstring") << QVariant(s("123456")) << QVariant(s("123456")); 0049 QTest::newRow("equal-qbytearray") << QVariant(QByteArray("123456")) << QVariant(QByteArray("123456")); 0050 QTest::newRow("empty-qstring") << QVariant(s("123456")) << QVariant(); 0051 QTest::newRow("empty-qbytearray") << QVariant(QByteArray("123456")) << QVariant(); 0052 0053 QTest::newRow("iata-prefix") 0054 << QVariant(s("M1DESMARAIS/LUC EAB12C3 YULFRAAC 0834 326J003A0027 167>5321WW1325BAC 0014123456002001412346700100141234789012A0141234567890 1AC AC 1234567890123 4PCYLX58Z^108ABCDEFGH")) 0055 << QVariant(s("M1DESMARAIS/LUC EABC123 YULFRAAC 0834 326J001A0025 100")); 0056 0057 const auto uic = Test::readFile(QStringLiteral(SOURCE_DIR "/uic918-3/valid/Testw_VOW8XG6_A9E8DXL_0.bin")); 0058 auto uic2 = uic; 0059 uic2[32] = 0x42; // changes the signature 0060 QTest::newRow("uic-byte-equal") << QVariant(uic) << QVariant(uic); 0061 QTest::newRow("uic-semantic-equal") << QVariant(uic) << QVariant(uic2); 0062 } 0063 0064 void testEqual() 0065 { 0066 QFETCH(QVariant, lhs); 0067 QFETCH(QVariant, rhs); 0068 0069 QEXPECT_FAIL("iata-prefix", "IATA BCBP token comparison not implemented yet", Abort); 0070 QVERIFY(TicketTokenComparator::isSame(lhs, rhs)); 0071 QVERIFY(TicketTokenComparator::isSame(rhs, lhs)); 0072 } 0073 }; 0074 0075 QTEST_GUILESS_MAIN(TicketTokenComparatorTest) 0076 0077 #include "tickettokencomparatortest.moc"