File indexing completed on 2024-04-28 15:59:41
0001 /* 0002 SPDX-FileCopyrightText: 2020 Volker Krause <vkrause@kde.org> 0003 0004 SPDX-License-Identifier: LGPL-2.0-or-later 0005 */ 0006 0007 #include "geo/geojson.cpp" 0008 #include "backends/accessibilitycloudparser.cpp" 0009 0010 #include <QFile> 0011 #include <QJsonArray> 0012 #include <QJsonDocument> 0013 #include <QJsonObject> 0014 #include <QJsonValue> 0015 #include <QTest> 0016 0017 #define s(x) QStringLiteral(x) 0018 0019 using namespace KPublicTransport; 0020 0021 class AccessibilityCloudTest : public QObject 0022 { 0023 Q_OBJECT 0024 private: 0025 QByteArray readFile(const QString &fn) 0026 { 0027 QFile f(fn); 0028 f.open(QFile::ReadOnly); 0029 return f.readAll(); 0030 } 0031 0032 private Q_SLOTS: 0033 void testParseLocation_data() 0034 { 0035 QTest::addColumn<QString>("inFileName"); 0036 QTest::addColumn<QString>("refFileName"); 0037 QTest::addColumn<QString>("attrFileName"); 0038 0039 QTest::newRow("equipment") 0040 << s(SOURCE_DIR "/data/a11y-cloud/equipment.in.json") 0041 << s(SOURCE_DIR "/data/a11y-cloud/equipment.out.json") 0042 << s(SOURCE_DIR "/data/a11y-cloud/equipment.attribution.json"); 0043 } 0044 0045 void testParseLocation() 0046 { 0047 QFETCH(QString, inFileName); 0048 QFETCH(QString, refFileName); 0049 QFETCH(QString, attrFileName); 0050 0051 AccessibilityCloudParser p; 0052 QVERIFY(p.parseLocations(readFile(inFileName))); 0053 const auto jsonRes = Location::toJson(p.locations); 0054 0055 const auto ref = QJsonDocument::fromJson(readFile(refFileName)).array(); 0056 0057 if (jsonRes != ref) { 0058 qDebug().noquote() << QJsonDocument(jsonRes).toJson(); 0059 } 0060 QVERIFY(!jsonRes.empty()); 0061 QCOMPARE(jsonRes, ref); 0062 0063 const auto attrRes = Attribution::toJson(p.attributions); 0064 const auto attrRef = QJsonDocument::fromJson(readFile(attrFileName)).array(); 0065 0066 if (attrRes != attrRef) { 0067 qDebug().noquote() << QJsonDocument(attrRes).toJson(); 0068 } 0069 QVERIFY(!attrRes.empty()); 0070 QCOMPARE(attrRes, attrRef); 0071 } 0072 }; 0073 0074 QTEST_GUILESS_MAIN(AccessibilityCloudTest) 0075 0076 #include "accessibilitycloudtest.moc"