File indexing completed on 2024-05-12 16:25:34

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"