File indexing completed on 2024-04-28 08:32:32

0001 /*
0002     SPDX-FileCopyrightText: 2021 Volker Krause <vkrause@kde.org>
0003 
0004     SPDX-License-Identifier: LGPL-2.0-or-later
0005 */
0006 
0007 #include "../src/lib/uic/uicrailwaycoach.cpp"
0008 
0009 #include <QTest>
0010 
0011 #define s(x) QStringLiteral(x)
0012 
0013 using namespace KPublicTransport;
0014 
0015 class UicRailwayCoachTest: public QObject
0016 {
0017     Q_OBJECT
0018 private Q_SLOTS:
0019     void testClasses()
0020     {
0021         QCOMPARE(UicRailwayCoach::coachClass(QString(), QString()), VehicleSection::UnknownClass);
0022         QCOMPARE(UicRailwayCoach::coachClass(u"738029947087", u"Bpmbz"), VehicleSection::SecondClass);
0023         QCOMPARE(UicRailwayCoach::coachClass(u"738029947087", QString()), VehicleSection::SecondClass);
0024         QCOMPARE(UicRailwayCoach::coachClass(QString(), u"Afmpz"), VehicleSection::FirstClass);
0025         QCOMPARE(UicRailwayCoach::coachClass(QString(), u"WRmz"), VehicleSection::UnknownClass);
0026         QCOMPARE(UicRailwayCoach::coachClass(QString(), u"DABpza"), VehicleSection::SecondClass | VehicleSection::FirstClass);
0027         QCOMPARE(UicRailwayCoach::coachClass(u"505486720019", u"ABfbdmteeo"), VehicleSection::SecondClass | VehicleSection::FirstClass);
0028         QCOMPARE(UicRailwayCoach::coachClass(u"615485711035", u"ARmpee"), VehicleSection::FirstClass);
0029     }
0030 
0031     void testDeckCount()
0032     {
0033         QCOMPARE(UicRailwayCoach::deckCount(QString(), QString()), 1);
0034         QCOMPARE(UicRailwayCoach::deckCount(u"738029947087", u"Bpmbz"), 1);
0035         QCOMPARE(UicRailwayCoach::deckCount(u"738029947087", QString()), 1);
0036         QCOMPARE(UicRailwayCoach::deckCount(QString(), u"Afmpz"), 1);
0037         QCOMPARE(UicRailwayCoach::deckCount(QString(), u"DABpza"), 2);
0038         QCOMPARE(UicRailwayCoach::deckCount(u"505486720019", u"ABfbdmteeo"), 2);
0039         QCOMPARE(UicRailwayCoach::deckCount(u"615485711035", u"ARmpee"), 1);
0040         QCOMPARE(UicRailwayCoach::deckCount(u"508126339000", u"Bmpz-dl"), 2);
0041     }
0042 
0043     void testFeatures()
0044     {
0045         QCOMPARE(UicRailwayCoach::features(QString(), QString()), VehicleSection::NoFeatures);
0046         QCOMPARE(UicRailwayCoach::features(u"738029947087", u"Bpmbz"), VehicleSection::AirConditioning | VehicleSection::WheelchairAccessible);
0047         QCOMPARE(UicRailwayCoach::features(u"738029947087", QString()), VehicleSection::AirConditioning);
0048         QCOMPARE(UicRailwayCoach::features(u"738180907342", u"Afmpz"), VehicleSection::AirConditioning);
0049         QCOMPARE(UicRailwayCoach::features(QString(), u"WRmz"), VehicleSection::Restaurant);
0050         QCOMPARE(UicRailwayCoach::features(u"938054112686", u"WRmz"), VehicleSection::Restaurant);
0051         QCOMPARE(UicRailwayCoach::features(u"508086818566", u"DBpbzfa"), VehicleSection::WheelchairAccessible | VehicleSection::AirConditioning);
0052         QCOMPARE(UicRailwayCoach::features(u"738185905341", u"ARbmpz"), VehicleSection::Restaurant | VehicleSection::WheelchairAccessible | VehicleSection::AirConditioning);
0053         QCOMPARE(UicRailwayCoach::features(u"508086818566", QString()), VehicleSection::NoFeatures);
0054         QCOMPARE(UicRailwayCoach::features(u"918061465699", u"E1465"), VehicleSection::NoFeatures);
0055         QCOMPARE(UicRailwayCoach::features(u"505486720019", u"ABfbdmteeo"), VehicleSection::WheelchairAccessible | VehicleSection::BikeStorage);
0056         QCOMPARE(UicRailwayCoach::features(u"615485711035", u"ARmpee"), VehicleSection::Restaurant);
0057     }
0058 
0059     void testType()
0060     {
0061         QCOMPARE(UicRailwayCoach::type(QString(), QString()), VehicleSection::UnknownType);
0062         QCOMPARE(UicRailwayCoach::type(u"738029947087", u"Bpmbz"), VehicleSection::PassengerCar);
0063         QCOMPARE(UicRailwayCoach::type(u"738029947087", QString()), VehicleSection::PassengerCar);
0064         QCOMPARE(UicRailwayCoach::type(u"738180907342", u"Afmpz"), VehicleSection::ControlCar);
0065         QCOMPARE(UicRailwayCoach::type(QString(), u"WRmz"), VehicleSection::RestaurantCar);
0066         QCOMPARE(UicRailwayCoach::type(u"938054112686", u"WRmz"), VehicleSection::RestaurantCar);
0067         QCOMPARE(UicRailwayCoach::type(u"508086818566", u"DBpbzfa"), VehicleSection::ControlCar);
0068         QCOMPARE(UicRailwayCoach::type(u"738185905341", u"ARbmpz"), VehicleSection::PassengerCar);
0069         QCOMPARE(UicRailwayCoach::type(u"918111162346", u"TZF"), VehicleSection::Engine);
0070         QCOMPARE(UicRailwayCoach::type(u"918061465699", u"E1465"), VehicleSection::Engine);
0071         QEXPECT_FAIL("", "not detectable?", Continue);
0072         QCOMPARE(UicRailwayCoach::type(u"938054020061", u"I4020"), VehicleSection::PowerCar);
0073         QCOMPARE(UicRailwayCoach::type(u"938058080061", u"Bpmzf"), VehicleSection::ControlCar);
0074         QCOMPARE(UicRailwayCoach::type(u"505486720019", u"ABfbdmteeo"), VehicleSection::ControlCar);
0075         QCOMPARE(UicRailwayCoach::type(u"615485711035", u"ARmpee"), VehicleSection::PassengerCar);
0076         QCOMPARE(UicRailwayCoach::type(u"618072900000", u"WLABmz"), VehicleSection::SleepingCar);
0077         QCOMPARE(UicRailwayCoach::type(u"618159900000", u"Bcmz"), VehicleSection::CouchetteCar);
0078         QCOMPARE(UicRailwayCoach::type(u"738159913000", u"Bbcmvz"), VehicleSection::CouchetteCar);
0079     }
0080 };
0081 
0082 QTEST_APPLESS_MAIN(UicRailwayCoachTest)
0083 
0084 #include "uicrailwaycoachtest.moc"