File indexing completed on 2024-04-14 04:36:17
0001 /* 0002 SPDX-FileCopyrightText: 2019 Volker Krause <vkrause@kde.org> 0003 0004 SPDX-License-Identifier: LGPL-2.0-or-later 0005 */ 0006 0007 #include <../src/lib/gbfs/gbfs.cpp> 0008 #include <gbfs/gbfsservice.h> 0009 0010 #include <QObject> 0011 #include <QStandardPaths> 0012 #include <QTest> 0013 0014 using namespace KPublicTransport; 0015 0016 #define s(x) QStringLiteral(x) 0017 0018 class GbfsTest : public QObject 0019 { 0020 Q_OBJECT 0021 private Q_SLOTS: 0022 void initTestCase() 0023 { 0024 QStandardPaths::setTestModeEnabled(true); 0025 } 0026 0027 void testFileType() 0028 { 0029 QCOMPARE(GBFS::typeForKeyName(u"system_information"), GBFS::SystemInformation); 0030 QCOMPARE(GBFS::typeForKeyName(u"geofencing_zones"), GBFS::GeofencingZones); 0031 QCOMPARE(GBFS::typeForKeyName(u"geofencing_zones.json"), GBFS::GeofencingZones); 0032 QCOMPARE(GBFS::typeForKeyName(u"geofencing_zones_information"), GBFS::Unknown); 0033 } 0034 0035 void testGenerateSystemId() 0036 { 0037 GBFSService service; 0038 service.discoveryUrl = QUrl(QStringLiteral("https://mds-global-dud.neuron-mobility.com/gbfs/2/")); 0039 QVERIFY(service.systemId.isEmpty()); 0040 service.generateSystemId(); 0041 QCOMPARE(service.systemId, QLatin1String("GAFF_F5kMPFE5ZO2iFmAU0AgBcc=")); 0042 } 0043 0044 void testServiceRepo() 0045 { 0046 const auto &services = GBFSServiceRepository::services(); 0047 QVERIFY(services.size() > 200); 0048 for (const auto &s : services) { 0049 QVERIFY(!s.systemId.isEmpty()); 0050 QVERIFY(!s.boundingBox.isEmpty()); 0051 QVERIFY(!s.discoveryUrl.isEmpty()); 0052 } 0053 } 0054 }; 0055 0056 QTEST_GUILESS_MAIN(GbfsTest) 0057 0058 #include "gbfstest.moc"