File indexing completed on 2024-11-10 04:50:01

0001 /*
0002   SPDX-FileCopyrightText: 2017-2024 Laurent Montel <montel@kde.org>
0003 
0004   SPDX-License-Identifier: GPL-2.0-only
0005 */
0006 
0007 #include "filterimporterpathcachetest.h"
0008 #include "../filterimporterpathcache.h"
0009 #include <Akonadi/Collection>
0010 #include <QTest>
0011 
0012 QTEST_MAIN(FilterImporterPathCacheTest)
0013 
0014 FilterImporterPathCacheTest::FilterImporterPathCacheTest(QObject *parent)
0015     : QObject(parent)
0016 {
0017 }
0018 
0019 FilterImporterPathCacheTest::~FilterImporterPathCacheTest() = default;
0020 
0021 void FilterImporterPathCacheTest::shouldReturnEmptyStringWhenListIsEmpty()
0022 {
0023     MailCommon::FilterImporterPathCache cache;
0024     QCOMPARE(cache.count(), 0);
0025     QVERIFY(!cache.convertedFilterPath(QStringLiteral("foo")).isValid());
0026     QCOMPARE(cache.count(), 0);
0027 }
0028 
0029 void FilterImporterPathCacheTest::shouldNotStoreEmptyValue()
0030 {
0031     MailCommon::FilterImporterPathCache cache;
0032     cache.insert(QString(), Akonadi::Collection(3));
0033     QCOMPARE(cache.count(), 0);
0034 
0035     cache.insert(QStringLiteral("foo"), Akonadi::Collection(-1));
0036     QCOMPARE(cache.count(), 0);
0037 
0038     cache.insert(QStringLiteral("foo1"), Akonadi::Collection(3));
0039     QCOMPARE(cache.count(), 1);
0040 }
0041 
0042 void FilterImporterPathCacheTest::shouldNotDuplicateEntries()
0043 {
0044     MailCommon::FilterImporterPathCache cache;
0045     cache.insert(QStringLiteral("foo1"), Akonadi::Collection(3));
0046     QCOMPARE(cache.count(), 1);
0047 
0048     cache.insert(QStringLiteral("foo1"), Akonadi::Collection(3));
0049     QCOMPARE(cache.count(), 1);
0050 
0051     cache.insert(QStringLiteral("foo1"), Akonadi::Collection(3));
0052     QCOMPARE(cache.count(), 1);
0053 
0054     cache.insert(QStringLiteral("foo1"), Akonadi::Collection(4));
0055     QCOMPARE(cache.count(), 1);
0056 
0057     cache.insert(QStringLiteral("foo1"), Akonadi::Collection(4));
0058     QCOMPARE(cache.count(), 1);
0059 
0060     // Add new one
0061     cache.insert(QStringLiteral("foo2"), Akonadi::Collection(4));
0062     QCOMPARE(cache.count(), 2);
0063 }
0064 
0065 void FilterImporterPathCacheTest::shouldReturnValues()
0066 {
0067     MailCommon::FilterImporterPathCache cache;
0068     QString key = QStringLiteral("foo1");
0069     Akonadi::Collection cached = Akonadi::Collection(3);
0070     cache.insert(key, cached);
0071     QCOMPARE(cache.convertedFilterPath(key), cached);
0072 
0073     // Use value in same key
0074     cached = Akonadi::Collection(5);
0075     cache.insert(key, cached);
0076     QCOMPARE(cache.convertedFilterPath(key), cached);
0077 }
0078 
0079 #include "moc_filterimporterpathcachetest.cpp"