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"