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"