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"