File indexing completed on 2024-04-21 04:41:09

0001 /*
0002     SPDX-FileCopyrightText: 2019 Volker Krause <vkrause@kde.org>
0003 
0004     SPDX-License-Identifier: LGPL-2.0-or-later
0005 */
0006 
0007 #include <KPublicTransport/Journey>
0008 #include <KPublicTransport/Stopover>
0009 
0010 #include <QTest>
0011 
0012 #define s(x) QStringLiteral(x)
0013 
0014 using namespace KPublicTransport;
0015 
0016 class PlatformTest : public QObject
0017 {
0018     Q_OBJECT
0019 private Q_SLOTS:
0020     void testNormalize_data()
0021     {
0022         QTest::addColumn<QString>("in");
0023         QTest::addColumn<QString>("out");
0024 
0025         QTest::newRow("empty") << QString() << QString();
0026         QTest::newRow("no change") << s("1") << s("1");
0027 
0028         QTest::newRow("prefix1") << s("Platform 2") << s("2");
0029         QTest::newRow("prefix2") << s("pl. 3") << s("3");
0030         QTest::newRow("prefix3") << s("PLATFORM 4") << s("4");
0031 
0032         QTest::newRow("prefix4") << s("Bahnsteig 5 A-B") << s("5 A-B");
0033         QTest::newRow("prefix5") << s("Bstg. 6") << s("6");
0034         QTest::newRow("prefix6") << s("Gleis 7") << s("7");
0035 
0036         QTest::newRow("no info") << s("---") << QString();
0037     }
0038 
0039     void testNormalize()
0040     {
0041         QFETCH(QString, in);
0042         QFETCH(QString, out);
0043 
0044         Stopover dep;
0045         dep.setScheduledPlatform(in);
0046         QCOMPARE(dep.scheduledPlatform(), out);
0047         dep.setExpectedPlatform(in);
0048         QCOMPARE(dep.expectedPlatform(), out);
0049 
0050         JourneySection sec;
0051         sec.setScheduledDeparturePlatform(in);
0052         QCOMPARE(sec.scheduledDeparturePlatform(), out);
0053         sec.setScheduledArrivalPlatform(in);
0054         QCOMPARE(sec.scheduledArrivalPlatform(), out);
0055         sec.setExpectedDeparturePlatform(in);
0056         QCOMPARE(sec.expectedDeparturePlatform(), out);
0057         sec.setExpectedArrivalPlatform(in);
0058         QCOMPARE(sec.expectedArrivalPlatform(), out);
0059     }
0060 
0061     void testPlatformChanged_data()
0062     {
0063         QTest::addColumn<QString>("scheduled");
0064         QTest::addColumn<QString>("expected");
0065         QTest::addColumn<bool>("changed");
0066 
0067         QTest::newRow("empty") << QString() << QString() << false;
0068         QTest::newRow("same") << s("1") << s("1") << false;
0069         QTest::newRow("different") << s("2") << s("3") << true;
0070         QTest::newRow("no expected") << s("4") << QString() << false;
0071         QTest::newRow("no scheduled") << QString() << s("5") << false;
0072     }
0073 
0074     void testPlatformChanged()
0075     {
0076         QFETCH(QString, scheduled);
0077         QFETCH(QString, expected);
0078         QFETCH(bool, changed);
0079 
0080         Stopover dep;
0081         dep.setScheduledPlatform(scheduled);
0082         dep.setExpectedPlatform(expected);
0083         QCOMPARE(dep.platformChanged(), changed);
0084 
0085         JourneySection sec;
0086         sec.setScheduledDeparturePlatform(scheduled);
0087         sec.setExpectedDeparturePlatform(expected);
0088         QCOMPARE(sec.departurePlatformChanged(), changed);
0089         sec.setScheduledArrivalPlatform(scheduled);
0090         sec.setExpectedArrivalPlatform(expected);
0091         QCOMPARE(sec.arrivalPlatformChanged(), changed);
0092     }
0093 };
0094 
0095 QTEST_GUILESS_MAIN(PlatformTest)
0096 
0097 #include "platformtest.moc"