File indexing completed on 2024-04-21 04:41:07
0001 /* 0002 SPDX-FileCopyrightText: 2021 Volker Krause <vkrause@kde.org> 0003 0004 SPDX-License-Identifier: LGPL-2.0-or-later 0005 */ 0006 0007 #include <KPublicTransport/JourneyRequest> 0008 0009 #include <QTest> 0010 0011 #define s(x) QStringLiteral(x) 0012 0013 using namespace KPublicTransport; 0014 0015 namespace KPublicTransport { 0016 class JourneyRequestTest : public QObject 0017 { 0018 Q_OBJECT 0019 private Q_SLOTS: 0020 void testAccessEgressModeValidation() 0021 { 0022 JourneyRequest req; 0023 0024 // there always has to be at least one access/egress mode 0025 req.setAccessModes(std::vector<IndividualTransport>{}); 0026 req.setEgressModes(std::vector<IndividualTransport>{}); 0027 req.validate(); 0028 QCOMPARE(req.accessModes().size(), 1); 0029 QCOMPARE(req.accessModes()[0], IndividualTransport{IndividualTransport::Walk}); 0030 QCOMPARE(req.egressModes().size(), 1); 0031 QCOMPARE(req.egressModes()[0], IndividualTransport{IndividualTransport::Walk}); 0032 0033 // parking is not a valid qualifier for egress 0034 req.setEgressModes(std::vector<IndividualTransport>{{IndividualTransport::Bike, IndividualTransport::Park}}); 0035 req.validate(); 0036 QCOMPARE(req.egressModes()[0], IndividualTransport{IndividualTransport::Walk}); 0037 0038 // when taking a bike on public transport, we also need to take it off again 0039 req.setAccessModes(std::vector<IndividualTransport>{{IndividualTransport::Bike}}); 0040 req.validate(); 0041 QCOMPARE(req.egressModes().size(), 2); 0042 QCOMPARE(req.egressModes()[1], IndividualTransport{IndividualTransport::Bike}); 0043 0044 // cars can't be taken on a train 0045 req.setAccessModes(std::vector<IndividualTransport>{{IndividualTransport::Car}}); 0046 req.validate(); 0047 QCOMPARE(req.accessModes().size(), 1); 0048 QCOMPARE(req.accessModes()[0], IndividualTransport{IndividualTransport::Walk}); 0049 // ... and that also means we wont have a bike to take of the train again 0050 QCOMPARE(req.egressModes().size(), 1); 0051 QCOMPARE(req.egressModes()[0], IndividualTransport{IndividualTransport::Walk}); 0052 } 0053 }; 0054 } 0055 0056 QTEST_GUILESS_MAIN(JourneyRequestTest) 0057 0058 #include "journeyrequesttest.moc"