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"