File indexing completed on 2024-04-21 04:41:08
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/LocationHistoryModel> 0008 0009 #include <QAbstractItemModelTester> 0010 #include <QStandardPaths> 0011 #include <QTest> 0012 0013 using namespace KPublicTransport; 0014 0015 class LocationHistoryModelTest : public QObject 0016 { 0017 Q_OBJECT 0018 private Q_SLOTS: 0019 void initTestCase() 0020 { 0021 QStandardPaths::setTestModeEnabled(true); 0022 } 0023 0024 void testHistoryModel() 0025 { 0026 { 0027 LocationHistoryModel model; 0028 QAbstractItemModelTester modelTest(&model); 0029 0030 model.clear(); 0031 QCOMPARE(model.rowCount(), 0); 0032 0033 Location loc; 0034 loc.setName(QStringLiteral("Randa")); 0035 loc.setCoordinate(46.09901, 7.78315); 0036 model.addLocation(loc); 0037 QCOMPARE(model.rowCount(), 1); 0038 0039 auto idx = model.index(0, 0); 0040 QCOMPARE(model.data(idx, LocationHistoryModel::LocationRole).value<Location>().name(), QLatin1String("Randa")); 0041 QCOMPARE(model.data(idx, LocationHistoryModel::LastUsedRole).value<QDateTime>().date(), QDate::currentDate()); 0042 QCOMPARE(model.data(idx, LocationHistoryModel::UseCountRole).toInt(), 1); 0043 0044 loc.setIdentifier(QStringLiteral("uic"), QStringLiteral("8501687")); 0045 model.addLocation(loc); 0046 QCOMPARE(model.rowCount(), 1); 0047 idx = model.index(0, 0); 0048 QCOMPARE(model.data(idx, LocationHistoryModel::LocationRole).value<Location>().name(), QLatin1String("Randa")); 0049 QCOMPARE(model.data(idx, LocationHistoryModel::LocationRole).value<Location>().identifier(QStringLiteral("uic")), QLatin1String("8501687")); 0050 QCOMPARE(model.data(idx, LocationHistoryModel::LastUsedRole).value<QDateTime>().date(), QDate::currentDate()); 0051 QCOMPARE(model.data(idx, LocationHistoryModel::UseCountRole).toInt(), 2); 0052 0053 Location loc2; 0054 loc2.setName(QStringLiteral("Brussels Gare du Midi")); 0055 loc2.setCoordinate(50.83588, 4.33620); 0056 model.addLocation(loc2); 0057 QCOMPARE(model.rowCount(), 2); 0058 idx = model.index(1, 0); 0059 QCOMPARE(model.data(idx, LocationHistoryModel::LocationRole).value<Location>().name(), QLatin1String("Brussels Gare du Midi")); 0060 QCOMPARE(model.data(idx, LocationHistoryModel::UseCountRole).toInt(), 1); 0061 0062 QVERIFY(model.removeRow(1)); 0063 QCOMPARE(model.rowCount(), 1); 0064 idx = model.index(0, 0); 0065 QCOMPARE(model.data(idx, LocationHistoryModel::LocationRole).value<Location>().name(), QLatin1String("Randa")); 0066 } 0067 { 0068 LocationHistoryModel model; 0069 QAbstractItemModelTester modelTest(&model); 0070 QCOMPARE(model.rowCount(), 1); 0071 auto idx = model.index(0, 0); 0072 QCOMPARE(model.data(idx, LocationHistoryModel::LocationRole).value<Location>().name(), QLatin1String("Randa")); 0073 QCOMPARE(model.data(idx, LocationHistoryModel::LastUsedRole).value<QDateTime>().date(), QDate::currentDate()); 0074 QCOMPARE(model.data(idx, LocationHistoryModel::UseCountRole).toInt(), 2); 0075 } 0076 } 0077 }; 0078 0079 QTEST_GUILESS_MAIN(LocationHistoryModelTest) 0080 0081 #include "locationhistorymodeltest.moc"