File indexing completed on 2024-12-01 04:35:27

0001 /*
0002    SPDX-FileCopyrightText: 2019-2024 Laurent Montel <montel@kde.org>
0003 
0004    SPDX-License-Identifier: LGPL-2.0-or-later
0005 */
0006 
0007 #include "roletest.h"
0008 #include "roles/role.h"
0009 #include "ruqola_autotest_helper.h"
0010 
0011 QTEST_GUILESS_MAIN(RoleTest)
0012 
0013 RoleTest::RoleTest(QObject *parent)
0014     : QObject(parent)
0015 {
0016 }
0017 
0018 void RoleTest::shouldHaveDefaultValue()
0019 {
0020     Role r;
0021     QVERIFY(!r.isOwner());
0022     QVERIFY(!r.isModerator());
0023     QVERIFY(!r.isLeader());
0024     QVERIFY(r.userId().isEmpty());
0025     QVERIFY(r.userName().isEmpty());
0026     QVERIFY(!r.isValid());
0027     QVERIFY(!r.hasARole());
0028 }
0029 
0030 void RoleTest::shouldBeValid()
0031 {
0032     Role r;
0033     QVERIFY(!r.isValid());
0034     r.setIsOwner(true);
0035     QVERIFY(!r.isValid());
0036     r.setIsOwner(false);
0037     QVERIFY(!r.isValid());
0038     r.setIsLeader(true);
0039     QVERIFY(!r.isValid());
0040     r.setIsLeader(false);
0041     QVERIFY(!r.isValid());
0042     r.setIsModerator(true);
0043     QVERIFY(!r.isValid());
0044     r.setIsModerator(false);
0045     QVERIFY(!r.isValid());
0046     r.setUserId(QStringLiteral("foo"));
0047     QVERIFY(r.isValid());
0048     r.setUserId(QString());
0049     QVERIFY(!r.isValid());
0050 }
0051 
0052 void RoleTest::shouldLoadRoles_data()
0053 {
0054     QTest::addColumn<QString>("name");
0055     QTest::addColumn<Role>("role");
0056 
0057     Role r;
0058     r.setUserId(QStringLiteral("id1"));
0059     r.setIsOwner(true);
0060     r.setIsModerator(true);
0061     r.setIsLeader(true);
0062     r.setUserName(QStringLiteral("bla"));
0063     QTest::addRow("role1") << QStringLiteral("role1") << r;
0064     Role r2;
0065     r2.setUserId(QStringLiteral("id2"));
0066     r2.setIsOwner(true);
0067     r2.setIsLeader(true);
0068     r2.setUserName(QStringLiteral("bla"));
0069     QTest::addRow("role2") << QStringLiteral("role2") << r2;
0070 }
0071 
0072 void RoleTest::shouldLoadRoles()
0073 {
0074     QFETCH(QString, name);
0075     QFETCH(Role, role);
0076     const QString originalJsonFile = QLatin1String(RUQOLA_DATA_DIR) + QLatin1String("/rolesforroom/") + name + QLatin1String(".json");
0077     const QJsonObject obj = AutoTestHelper::loadJsonObject(originalJsonFile);
0078 
0079     Role r;
0080     r.parseRole(obj);
0081     QCOMPARE(r, role);
0082 }
0083 
0084 void RoleTest::shouldVerifyHasRoles()
0085 {
0086     Role r;
0087     r.setUserId(QStringLiteral("foo"));
0088     QVERIFY(!r.hasARole());
0089     r.setIsOwner(true);
0090     QVERIFY(r.hasARole());
0091     r.setIsLeader(true);
0092     QVERIFY(r.hasARole());
0093     r.setIsModerator(true);
0094     QVERIFY(r.hasARole());
0095     r.setIsOwner(false);
0096     QVERIFY(r.hasARole());
0097     r.setIsLeader(false);
0098     QVERIFY(r.hasARole());
0099     r.setIsModerator(false);
0100     QVERIFY(!r.hasARole());
0101 }
0102 
0103 // Create autotest for updateRoless
0104 
0105 #include "moc_roletest.cpp"