File indexing completed on 2024-05-12 05:17:29
0001 /* 0002 SPDX-FileCopyrightText: 2023 Volker Krause <vkrause@kde.org> 0003 SPDX-License-Identifier: LGPL-2.0-or-later 0004 */ 0005 0006 #include "../lib/era/elbticket.h" 0007 0008 #include <QDebug> 0009 #include <QObject> 0010 #include <QTest> 0011 0012 using namespace KItinerary; 0013 0014 class EraElbTicketTest: public QObject 0015 { 0016 Q_OBJECT 0017 private Q_SLOTS: 0018 void parseElbTicket() 0019 { 0020 // standard ERA ELB single segment 0021 auto ticket = ELBTicket::parse("eRIVXXX007123456789121110019ELGAA 01003006034216GBSPXBEBMI09116 91160340130422 XX"); 0022 QVERIFY(ticket); 0023 QCOMPARE(ticket->pnr(), QLatin1StringView("XXX007")); 0024 QCOMPARE(ticket->numberAdults(), 1); 0025 QCOMPARE(ticket->numberChildren(), 0); 0026 QVERIFY(ticket->segment1().isValid()); 0027 QVERIFY(!ticket->segment2().isValid()); 0028 QCOMPARE(ticket->segment1().arrivalStation(), 0029 QLatin1StringView("BEBMI")); 0030 0031 QDateTime contextDt({2022, 2, 1}, { 8, 0 }, QTimeZone::UTC); 0032 QCOMPARE(ticket->emissionDate(contextDt), QDate(2013, 1, 6)); 0033 QCOMPARE(ticket->validFromDate(contextDt), QDate(2013, 2, 3)); 0034 QCOMPARE(ticket->validUntilDate(contextDt), QDate(2013, 8, 4)); 0035 QCOMPARE(ticket->segment1().departureDate(contextDt), QDate(2013, 2, 3)); 0036 0037 // single segment with Eurostar signature (?) trailer 0038 ticket = ELBTicket::parse("eRIVXXX007123456789121110019ELGAA 01003006034216GBSPXBEBMI09116 91160340130422 XXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"); 0039 QVERIFY(ticket); 0040 QVERIFY(ticket->segment1().isValid()); 0041 QVERIFY(!ticket->segment2().isValid()); 0042 } 0043 }; 0044 0045 QTEST_GUILESS_MAIN(EraElbTicketTest) 0046 0047 #include "eraelbtickettest.moc"