File indexing completed on 2024-04-28 15:59:45
0001 /* 0002 SPDX-FileCopyrightText: 2018 Volker Krause <vkrause@kde.org> 0003 0004 SPDX-License-Identifier: LGPL-2.0-or-later 0005 */ 0006 0007 #include <KPublicTransport/Attribution> 0008 #include <KPublicTransport/Manager> 0009 #include <KPublicTransport/JourneyRequest> 0010 #include <KPublicTransport/JourneyReply> 0011 #include <KPublicTransport/LocationRequest> 0012 #include <KPublicTransport/LocationReply> 0013 #include <KPublicTransport/Location> 0014 #include <KPublicTransport/StopoverReply> 0015 #include <KPublicTransport/StopoverRequest> 0016 #include <KPublicTransport/VehicleLayoutRequest> 0017 #include <KPublicTransport/VehicleLayoutReply> 0018 0019 #include <QSignalSpy> 0020 #include <QTest> 0021 0022 using namespace KPublicTransport; 0023 0024 class PublicTransportManagerTest : public QObject 0025 { 0026 Q_OBJECT 0027 private Q_SLOTS: 0028 void initTestCase() 0029 { 0030 qputenv("TZ", "UTC"); 0031 } 0032 0033 void testQueryLocation() 0034 { 0035 Manager mgr; 0036 auto reply = mgr.queryLocation({}); 0037 QVERIFY(reply); 0038 QSignalSpy spy(reply, &Reply::finished); 0039 QVERIFY(spy.wait(100)); 0040 QCOMPARE(spy.size(), 1); 0041 QCOMPARE(reply->error(), Reply::InvalidRequest); 0042 delete reply; 0043 } 0044 0045 void testInvalidQueryJourney_data() 0046 { 0047 QTest::addColumn<JourneyRequest>("request"); 0048 QTest::newRow("empty") << JourneyRequest(); 0049 0050 Location loc; 0051 loc.setCoordinate(52.0, 13.0); 0052 JourneyRequest req; 0053 req.setFrom(loc); 0054 QTest::newRow("only from") << req; 0055 0056 req.setFrom({}); 0057 req.setTo(loc); 0058 QTest::newRow("only to") << req; 0059 } 0060 0061 void testInvalidQueryJourney() 0062 { 0063 QFETCH(JourneyRequest, request); 0064 Manager mgr; 0065 auto reply = mgr.queryJourney(request); 0066 QVERIFY(reply); 0067 QSignalSpy spy(reply, &Reply::finished); 0068 QVERIFY(spy.wait(100)); 0069 QCOMPARE(spy.size(), 1); 0070 QCOMPARE(reply->error(), Reply::InvalidRequest); 0071 delete reply; 0072 } 0073 0074 void testQueryDepartures() 0075 { 0076 Manager mgr; 0077 auto reply = mgr.queryStopover({}); 0078 QVERIFY(reply); 0079 QSignalSpy spy(reply, &Reply::finished); 0080 QVERIFY(spy.wait(100)); 0081 QCOMPARE(spy.size(), 1); 0082 QCOMPARE(reply->error(), Reply::InvalidRequest); 0083 delete reply; 0084 } 0085 0086 void testAttributions() 0087 { 0088 Manager mgr; 0089 QVERIFY(mgr.attributions().size() > 0); 0090 } 0091 0092 void testInvalidVehicleLayoutQuery() 0093 { 0094 Manager mgr; 0095 auto reply = mgr.queryVehicleLayout(VehicleLayoutRequest()); 0096 QVERIFY(reply); 0097 QSignalSpy spy(reply, &Reply::finished); 0098 QVERIFY(spy.wait(100)); 0099 QCOMPARE(spy.size(), 1); 0100 QCOMPARE(reply->error(), Reply::InvalidRequest); 0101 delete reply; 0102 } 0103 }; 0104 0105 QTEST_GUILESS_MAIN(PublicTransportManagerTest) 0106 0107 #include "publictransportmanagertest.moc"