File indexing completed on 2024-04-28 03:51:39

0001 /*
0002     This file is part of the KDE Baloo project.
0003     SPDX-FileCopyrightText: 2015 Vishesh Handa <vhanda@kde.org>
0004 
0005     SPDX-License-Identifier: LGPL-2.1-or-later
0006 */
0007 
0008 #include "idtreedb.h"
0009 #include "singledbtest.h"
0010 #include "postingiterator.h"
0011 
0012 using namespace Baloo;
0013 
0014 class IdTreeDBTest : public SingleDBTest
0015 {
0016     Q_OBJECT
0017 private Q_SLOTS:
0018     void test() {
0019         IdTreeDB db(IdTreeDB::create(m_txn), m_txn);
0020 
0021         QVector<quint64> val = {5, 6, 7};
0022         db.set(1, val);
0023 
0024         QCOMPARE(db.get(1), val);
0025 
0026         db.set(1, {});
0027         QCOMPARE(db.get(1), QVector<quint64>());
0028     }
0029 
0030     void testIter() {
0031         IdTreeDB db(IdTreeDB::create(m_txn), m_txn);
0032 
0033         db.set(1, {5, 6, 7, 8});
0034         db.set(6, {9, 11, 19});
0035         db.set(8, {13, 15});
0036         db.set(13, {18});
0037 
0038         std::unique_ptr<PostingIterator> it{db.iter(1)};
0039         QVERIFY(it);
0040 
0041         QVector<quint64> result = {1, 5, 6, 7, 8, 9, 11, 13, 15, 18, 19};
0042         for (quint64 val : result) {
0043             QCOMPARE(it->next(), static_cast<quint64>(val));
0044             QCOMPARE(it->docId(), static_cast<quint64>(val));
0045         }
0046     }
0047 };
0048 
0049 QTEST_MAIN(IdTreeDBTest)
0050 
0051 #include "idtreedbtest.moc"