From de5bd0955ac50fe17aaf0a02055cc70836b7e4ae Mon Sep 17 00:00:00 2001 From: Minijackson Date: Wed, 22 Aug 2018 13:45:49 +0200 Subject: Fix "contains" function + write tests for contains and exists --- tests/entitystoretest.cpp | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) (limited to 'tests') diff --git a/tests/entitystoretest.cpp b/tests/entitystoretest.cpp index aab5b3b..608de4c 100644 --- a/tests/entitystoretest.cpp +++ b/tests/entitystoretest.cpp @@ -18,6 +18,7 @@ private slots: void initTestCase() { Sink::AdaptorFactoryRegistry::instance().registerFactory("test"); + Sink::AdaptorFactoryRegistry::instance().registerFactory("test"); } void cleanup() @@ -77,6 +78,52 @@ private slots: } } + void testExistsAndContains() + { + + using namespace Sink; + ResourceContext resourceContext{resourceInstanceIdentifier.toUtf8(), "dummy", AdaptorFactoryRegistry::instance().getFactories("test")}; + Storage::EntityStore store(resourceContext, {}); + + auto mail = ApplicationDomain::ApplicationDomainType::createEntity("res1"); + mail.setExtractedMessageId("messageid"); + mail.setExtractedSubject("boo"); + + auto mail2 = ApplicationDomain::ApplicationDomainType::createEntity("res1"); + mail2.setExtractedMessageId("messageid2"); + mail2.setExtractedSubject("foo"); + + auto mail3 = ApplicationDomain::ApplicationDomainType::createEntity("res1"); + mail3.setExtractedMessageId("messageid2"); + mail3.setExtractedSubject("foo"); + + auto event = ApplicationDomain::ApplicationDomainType::createEntity("res1"); + event.setExtractedUid("messageid2"); + event.setExtractedSummary("foo"); + + store.startTransaction(Storage::DataStore::ReadWrite); + store.add("mail", mail, false); + store.add("mail", mail2, false); + store.add("mail", mail3, false); + store.add("event", event, false); + + mail.setExtractedSubject("foo"); + + store.modify("mail", mail, QByteArrayList{}, false); + store.remove("mail", mail3, false); + store.commitTransaction(); + + QVERIFY(store.contains("mail", mail.identifier())); + QVERIFY(store.contains("mail", mail2.identifier())); + QVERIFY(store.contains("mail", mail3.identifier())); + QVERIFY(store.contains("event", event.identifier())); + + QVERIFY(store.exists("mail", mail.identifier())); + QVERIFY(store.exists("mail", mail2.identifier())); + QVERIFY(!store.exists("mail", mail3.identifier())); + QVERIFY(store.exists("event", event.identifier())); + } + void readAll() { using namespace Sink; -- cgit v1.2.3