File indexing completed on 2025-02-16 04:49:30
0001 /* 0002 SPDX-FileCopyrightText: 2016-2024 Laurent Montel <montel@kde.org> 0003 0004 SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 0007 #include "checkduplicateemailsjobtest.h" 0008 #include "../duplicateemails/checkduplicateemailsjob.h" 0009 #include <QStringList> 0010 #include <QTest> 0011 0012 CheckDuplicateEmailsJobTest::CheckDuplicateEmailsJobTest(QObject *parent) 0013 : QObject(parent) 0014 { 0015 } 0016 0017 CheckDuplicateEmailsJobTest::~CheckDuplicateEmailsJobTest() = default; 0018 0019 void CheckDuplicateEmailsJobTest::shouldHaveDefaultValue() 0020 { 0021 CheckDuplicateEmailsJob job; 0022 QVERIFY(job.result().isEmpty()); 0023 } 0024 0025 void CheckDuplicateEmailsJobTest::shouldReturnEmptyListWhenEmailsListIsEmpty() 0026 { 0027 CheckDuplicateEmailsJob job; 0028 QStringList listEmails; 0029 job.setEmails(listEmails); 0030 job.start(); 0031 QVERIFY(job.result().isEmpty()); 0032 } 0033 0034 void CheckDuplicateEmailsJobTest::shouldReturnEmails_data() 0035 { 0036 QTest::addColumn<QStringList>("emails"); 0037 QTest::addColumn<QMap<QString, int>>("result"); 0038 QTest::newRow("empty") << QStringList() << QMap<QString, int>(); 0039 0040 QStringList lst; 0041 lst.append(QStringLiteral("foo@kde.org")); 0042 lst.append(QStringLiteral("bla@kde.org")); 0043 lst.append(QStringLiteral("blo@kde.org")); 0044 QTest::newRow("emptyresultbutnotemptylist") << lst << QMap<QString, int>(); 0045 0046 lst.clear(); 0047 lst.append(QStringLiteral("foo@kde.org")); 0048 lst.append(QStringLiteral("foo@kde.org")); 0049 lst.append(QStringLiteral("blo@kde.org")); 0050 QMap<QString, int> result; 0051 result.insert(QStringLiteral("foo@kde.org"), 2); 0052 QTest::newRow("oneduplicateemails") << lst << result; 0053 0054 lst.clear(); 0055 lst.append(QStringLiteral("foo@kde.org")); 0056 lst.append(QStringLiteral("foo@kde.org")); 0057 lst.append(QStringLiteral("blo@kde.org")); 0058 lst.append(QStringLiteral("blo@kde.org")); 0059 result.clear(); 0060 result.insert(QStringLiteral("foo@kde.org"), 2); 0061 result.insert(QStringLiteral("blo@kde.org"), 2); 0062 QTest::newRow("twoduplicateemails") << lst << result; 0063 0064 lst.clear(); 0065 lst.append(QStringLiteral("foo@kde.org")); 0066 lst.append(QStringLiteral("foo@kde.org")); 0067 lst.append(QStringLiteral("foo@kde.org")); 0068 lst.append(QStringLiteral("blo@kde.org")); 0069 lst.append(QStringLiteral("blo@kde.org")); 0070 result.clear(); 0071 result.insert(QStringLiteral("foo@kde.org"), 3); 0072 result.insert(QStringLiteral("blo@kde.org"), 2); 0073 QTest::newRow("twoduplicateemailswithdifferentvalue") << lst << result; 0074 0075 lst.clear(); 0076 lst.append(QStringLiteral("foo <foo@kde.org>")); 0077 lst.append(QStringLiteral("foo@kde.org")); 0078 lst.append(QStringLiteral("foo@kde.org")); 0079 lst.append(QStringLiteral("blo@kde.org")); 0080 lst.append(QStringLiteral("blo@kde.org")); 0081 0082 result.clear(); 0083 result.insert(QStringLiteral("foo@kde.org"), 3); 0084 result.insert(QStringLiteral("blo@kde.org"), 2); 0085 QTest::newRow("twoduplicateemailswithemailname") << lst << result; 0086 0087 lst.clear(); 0088 lst.append(QStringLiteral("foo <foo@kde.org>, foo@kde.org, foo@kde.org")); 0089 lst.append(QStringLiteral("foo@kde.org")); 0090 0091 result.clear(); 0092 result.insert(QStringLiteral("foo@kde.org"), 4); 0093 QTest::newRow("emailseparatedbycommat") << lst << result; 0094 } 0095 0096 void CheckDuplicateEmailsJobTest::shouldReturnEmails() 0097 { 0098 QFETCH(QStringList, emails); 0099 using mapEmails = QMap<QString, int>; 0100 QFETCH(mapEmails, result); 0101 CheckDuplicateEmailsJob job; 0102 job.setEmails(emails); 0103 job.start(); 0104 QCOMPARE(job.result(), result); 0105 } 0106 0107 QTEST_MAIN(CheckDuplicateEmailsJobTest) 0108 0109 #include "moc_checkduplicateemailsjobtest.cpp"