File indexing completed on 2025-01-12 10:31:48
0001 /* 0002 SPDX-FileCopyrightText: 2018-2024 Laurent Montel <montel@kde.org> 0003 0004 SPDX-License-Identifier: LGPL-2.0-or-later 0005 */ 0006 0007 #include "usercompletermodeltest.h" 0008 #include "model/usercompletermodel.h" 0009 #include "test_model_helpers.h" 0010 #include <QSignalSpy> 0011 #include <QTest> 0012 0013 QTEST_GUILESS_MAIN(UserCompleterModelTest) 0014 0015 UserCompleterModelTest::UserCompleterModelTest(QObject *parent) 0016 : QObject(parent) 0017 { 0018 } 0019 0020 void UserCompleterModelTest::shouldHaveDefaultValue() 0021 { 0022 UserCompleterModel w; 0023 QSignalSpy rowInsertedSpy(&w, &UserCompleterModel::rowsInserted); 0024 QSignalSpy rowABTInserted(&w, &UserCompleterModel::rowsAboutToBeInserted); 0025 QCOMPARE(w.rowCount(), 0); 0026 QCOMPARE(rowInsertedSpy.count(), 0); 0027 QCOMPARE(rowABTInserted.count(), 0); 0028 } 0029 0030 void UserCompleterModelTest::shouldAddValues() 0031 { 0032 UserCompleterModel w; 0033 QVector<User> users; 0034 QSignalSpy rowInsertedSpy(&w, &UserCompleterModel::rowsInserted); 0035 QSignalSpy rowABTInserted(&w, &UserCompleterModel::rowsAboutToBeInserted); 0036 for (int i = 0; i < 10; i++) { 0037 User user; 0038 user.setName(QStringLiteral("name%1").arg(i)); 0039 user.setStatus(User::PresenceStatus::PresenceOffline); 0040 user.setUserId(QStringLiteral("userId%1").arg(i)); 0041 user.setUserName(QStringLiteral("username%1").arg(i)); 0042 users.append(std::move(user)); 0043 } 0044 w.addUsers(users); 0045 QCOMPARE(w.rowCount(), 10); 0046 QCOMPARE(rowInsertedSpy.count(), 1); 0047 QCOMPARE(rowABTInserted.count(), 1); 0048 QCOMPARE(TestModelHelpers::rowSpyToText(rowInsertedSpy), QStringLiteral("0,9")); 0049 QCOMPARE(TestModelHelpers::rowSpyToText(rowABTInserted), QStringLiteral("0,9")); 0050 0051 users.clear(); 0052 for (int i = 0; i < 3; ++i) { 0053 User user; 0054 user.setName(QStringLiteral("name%1").arg(i)); 0055 user.setStatus(User::PresenceStatus::PresenceOffline); 0056 user.setUserId(QStringLiteral("userId%1").arg(i)); 0057 user.setUserName(QStringLiteral("username%1").arg(i)); 0058 users.append(std::move(user)); 0059 } 0060 w.addUsers(users); 0061 QCOMPARE(w.rowCount(), 3); 0062 QCOMPARE(rowInsertedSpy.count(), 2); 0063 QCOMPARE(rowABTInserted.count(), 2); 0064 QCOMPARE(TestModelHelpers::rowSpyToText(rowInsertedSpy), QStringLiteral("0,9;0,2")); 0065 QCOMPARE(TestModelHelpers::rowSpyToText(rowABTInserted), QStringLiteral("0,9;0,2")); 0066 } 0067 0068 void UserCompleterModelTest::shouldVerifyData() 0069 { 0070 UserCompleterModel w; 0071 QVector<User> users; 0072 for (int i = 0; i < 10; i++) { 0073 User user; 0074 user.setName(QStringLiteral("name%1").arg(i)); 0075 user.setStatus(User::PresenceStatus::PresenceOffline); 0076 user.setUserId(QStringLiteral("userId%1").arg(i)); 0077 user.setUserName(QStringLiteral("username%1").arg(i)); 0078 users.append(std::move(user)); 0079 } 0080 w.addUsers(users); 0081 QCOMPARE(w.rowCount(), 10); 0082 0083 for (int i = 0; i < 10; ++i) { 0084 QCOMPARE(w.data(w.index(i), UserCompleterModel::UserId).toString(), QStringLiteral("userId%1").arg(i)); 0085 QCOMPARE(w.data(w.index(i), UserCompleterModel::UserName).toString(), QStringLiteral("username%1").arg(i)); 0086 } 0087 } 0088 0089 #include "moc_usercompletermodeltest.cpp"