File indexing completed on 2024-05-12 05:17:30

0001 /*
0002     SPDX-FileCopyrightText: 2019 Volker Krause <vkrause@kde.org>
0003 
0004     SPDX-License-Identifier: LGPL-2.0-or-later
0005 */
0006 
0007 #include "extractorutil.h"
0008 
0009 #include <KItinerary/Flight>
0010 #include <KItinerary/Place>
0011 
0012 #include <QTest>
0013 
0014 using namespace KItinerary;
0015 
0016 #define s(x) QStringLiteral(x)
0017 
0018 class ExtractorUtilTest : public QObject
0019 {
0020     Q_OBJECT
0021 private Q_SLOTS:
0022     void testTerminalExtraction_data()
0023     {
0024         QTest::addColumn<QString>("input");
0025         QTest::addColumn<QString>("airportName");
0026         QTest::addColumn<QString>("terminalName");
0027 
0028         QTest::newRow("empty") << QString() << QString() << QString();
0029         QTest::newRow("no terminal") << s("Paris Charles de Gaulle") << s("Paris Charles de Gaulle") << QString();
0030         QTest::newRow("CDG 1") << s("PARIS, FR (CHARLES DE GAULLE), TERMINAL 2E") << s("PARIS, FR (CHARLES DE GAULLE)") << s("2E");
0031         QTest::newRow("CDG 2") << s("Paris Charles de Gaulle (Terminal 2D)") << s("Paris Charles de Gaulle") << s("2D");
0032         QTest::newRow("CDG 3") << s("PARIS FR CHARLES DE GAULLE TERMINAL 2G - AEROGARE 2 TERMINAL G") << s("PARIS FR CHARLES DE GAULLE") << s("2G");
0033         QTest::newRow("LHR") << s("London/Heathrow-Terminal 2") << s("London/Heathrow") << s("2");
0034         QTest::newRow("MAD") << s("MADRID, ES (BARAJAS), TERMINAL 4S") << s("MADRID, ES (BARAJAS)") << s("4S");
0035         QTest::newRow("DTW") << s("DETROIT, MI (METROPOLITAN WAYNE CO), TERMINAL EM") << s("DETROIT, MI (METROPOLITAN WAYNE CO)") << s("EM");
0036         QTest::newRow("MRS") << s("MARSEILLE FR - PROVENCE - TERMINAL 1A") << s("MARSEILLE FR - PROVENCE") << s("1A");
0037         QTest::newRow("MUC") << s("München (Terminal 1)") << s("München") << s("1");
0038         QTest::newRow("GTW EN") << s("London Gatwick (North Terminal)") << s("London Gatwick") << s("North");
0039         QTest::newRow("GTW DE") << s("London Gatwick (Terminal Nord)") << s("London Gatwick") << s("Nord");
0040         QTest::newRow("TXL") << s("Berlin Tegel (Terminal C)") << s("Berlin Tegel") << s("C");
0041     }
0042 
0043     void testTerminalExtraction()
0044     {
0045         QFETCH(QString, input);
0046         QFETCH(QString, airportName);
0047         QFETCH(QString, terminalName);
0048 
0049         Airport a;
0050         a.setName(input);
0051         Flight f;
0052         f.setDepartureAirport(a);
0053         f.setArrivalAirport(a);
0054 
0055         const auto out = ExtractorUtil::extractTerminals(f);
0056         QCOMPARE(out.departureAirport().name(), airportName);
0057         QCOMPARE(out.departureTerminal(), terminalName);
0058         QCOMPARE(out.arrivalAirport().name(), airportName);
0059         QCOMPARE(out.arrivalTerminal(), terminalName);
0060 
0061         const auto out2 = ExtractorUtil::extractTerminals(out);
0062         QCOMPARE(out, out2);
0063     }
0064 };
0065 
0066 QTEST_GUILESS_MAIN(ExtractorUtilTest)
0067 
0068 #include "extractorutiltest.moc"