File indexing completed on 2024-04-28 15:59:44
0001 /* 0002 SPDX-FileCopyrightText: 2019 Volker Krause <vkrause@kde.org> 0003 0004 SPDX-License-Identifier: LGPL-2.0-or-later 0005 */ 0006 0007 #include "testhelpers.h" 0008 #include "backends/oebbvehiclelayoutparser.cpp" 0009 #include "uic/uicrailwaycoach.cpp" 0010 0011 #include <QFile> 0012 #include <QJsonObject> 0013 #include <QJsonDocument> 0014 #include <QJsonValue> 0015 #include <QTest> 0016 #include <QTimeZone> 0017 0018 #define s(x) QStringLiteral(x) 0019 0020 using namespace KPublicTransport; 0021 0022 class OebbParserTest : public QObject 0023 { 0024 Q_OBJECT 0025 private Q_SLOTS: 0026 void initTestCase() 0027 { 0028 qputenv("TZ", "UTC"); 0029 } 0030 0031 void testVehicleLayoutParse_data() 0032 { 0033 QTest::addColumn<QString>("inFileName"); 0034 QTest::addColumn<QString>("departureFileName"); 0035 0036 QTest::newRow("rj-forward") 0037 << s(SOURCE_DIR "/data/oebb/rj-forward-input.json") 0038 << s(SOURCE_DIR "/data/oebb/rj-forward-departure.json"); 0039 0040 QTest::newRow("rj-no-platform-sectors") 0041 << s(SOURCE_DIR "/data/oebb/rj-no-platform-sectors-input.json") 0042 << s(SOURCE_DIR "/data/oebb/rj-no-platform-sectors-departure.json"); 0043 0044 QTest::newRow("ic-no-platform-data") 0045 << s(SOURCE_DIR "/data/oebb/ic-no-platform-data-input.json") 0046 << s(SOURCE_DIR "/data/oebb/ic-no-platform-data-departure.json"); 0047 0048 QTest::newRow("regionalexpress") 0049 << s(SOURCE_DIR "/data/oebb/regional-express-input.json") 0050 << s(SOURCE_DIR "/data/oebb/regional-express-departure.json"); 0051 0052 QTest::newRow("sbahn") 0053 << s(SOURCE_DIR "/data/oebb/sbahn-input.json") 0054 << s(SOURCE_DIR "/data/oebb/sbahn-departure.json"); 0055 0056 QTest::newRow("nightjet") 0057 << s(SOURCE_DIR "/data/oebb/nightjet-input.json") 0058 << s(SOURCE_DIR "/data/oebb/nightjet-departure.json"); 0059 0060 QTest::newRow("per-coach-occupancy") 0061 << s(SOURCE_DIR "/data/oebb/rjx-per-coach-occupancy-input.json") 0062 << s(SOURCE_DIR "/data/oebb/rjx-per-coach-occupancy-departure.json"); 0063 } 0064 0065 void testVehicleLayoutParse() 0066 { 0067 QFETCH(QString, inFileName); 0068 QFETCH(QString, departureFileName); 0069 0070 KPublicTransport::OebbVehicleLayoutParser parser; 0071 0072 QVERIFY(parser.parse(Test::readFile(inFileName))); 0073 const auto departureJson = Stopover::toJson(parser.stopover); 0074 const auto departureRef = QJsonDocument::fromJson(Test::readFile(departureFileName)).object(); 0075 QVERIFY(!departureJson.isEmpty()); 0076 QVERIFY(Test::compareJson(departureFileName, departureJson, departureRef)); 0077 } 0078 }; 0079 0080 QTEST_GUILESS_MAIN(OebbParserTest) 0081 0082 #include "oebbparsertest.moc"