From 50f737b8549fb1b380c753d36be3fafe0ec4a768 Mon Sep 17 00:00:00 2001 From: Christian Mollekopf Date: Fri, 11 Sep 2015 09:31:24 +0200 Subject: Storage: substring search and findLatest --- tests/storagetest.cpp | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) (limited to 'tests') diff --git a/tests/storagetest.cpp b/tests/storagetest.cpp index 7060ef2..8d5ee00 100644 --- a/tests/storagetest.cpp +++ b/tests/storagetest.cpp @@ -317,6 +317,41 @@ private Q_SLOTS: QCOMPARE(numValues, 1); } + void testFindSubstringKeys() + { + Akonadi2::Storage store(testDataPath, dbName, Akonadi2::Storage::ReadWrite); + auto transaction = store.createTransaction(Akonadi2::Storage::ReadWrite); + auto db = transaction.openDatabase("test", nullptr, false); + db.write("sub","value1"); + db.write("subsub","value2"); + db.write("wubsub","value3"); + int numValues = db.scan("sub", [&](const QByteArray &key, const QByteArray &value) -> bool { + return true; + }, nullptr, true); + + QCOMPARE(numValues, 2); + } + + void testKeySorting() + { + Akonadi2::Storage store(testDataPath, dbName, Akonadi2::Storage::ReadWrite); + auto transaction = store.createTransaction(Akonadi2::Storage::ReadWrite); + auto db = transaction.openDatabase("test", nullptr, false); + db.write("sub_2","value2"); + db.write("sub_1","value1"); + db.write("sub_3","value3"); + QList results; + int numValues = db.scan("sub", [&](const QByteArray &key, const QByteArray &value) -> bool { + results << value; + return true; + }, nullptr, true); + + QCOMPARE(numValues, 3); + QCOMPARE(results.at(0), QByteArray("value1")); + QCOMPARE(results.at(1), QByteArray("value2")); + QCOMPARE(results.at(2), QByteArray("value3")); + } + //Ensure we don't retrieve a key that is greater than the current key. We only want equal keys. void testKeyRange() { @@ -330,6 +365,22 @@ private Q_SLOTS: QCOMPARE(numValues, 0); } + + void testFindLatest() + { + Akonadi2::Storage store(testDataPath, dbName, Akonadi2::Storage::ReadWrite); + auto transaction = store.createTransaction(Akonadi2::Storage::ReadWrite); + auto db = transaction.openDatabase("test", nullptr, false); + db.write("sub1","value1"); + db.write("sub2","value2"); + db.write("wub3","value3"); + QByteArray result; + db.findLatest("sub", [&](const QByteArray &key, const QByteArray &value) { + result = value; + }); + + QCOMPARE(result, QByteArray("value2")); + } }; QTEST_MAIN(StorageTest) -- cgit v1.2.3