diff options
Diffstat (limited to 'tests')
-rw-r--r-- | tests/entitystoretest.cpp | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/tests/entitystoretest.cpp b/tests/entitystoretest.cpp index 03b940b..aab5b3b 100644 --- a/tests/entitystoretest.cpp +++ b/tests/entitystoretest.cpp | |||
@@ -29,6 +29,54 @@ private slots: | |||
29 | { | 29 | { |
30 | } | 30 | } |
31 | 31 | ||
32 | void testFullScan() | ||
33 | { | ||
34 | using namespace Sink; | ||
35 | ResourceContext resourceContext{resourceInstanceIdentifier.toUtf8(), "dummy", AdaptorFactoryRegistry::instance().getFactories("test")}; | ||
36 | Storage::EntityStore store(resourceContext, {}); | ||
37 | |||
38 | auto mail = ApplicationDomain::ApplicationDomainType::createEntity<ApplicationDomain::Mail>("res1"); | ||
39 | mail.setExtractedMessageId("messageid"); | ||
40 | mail.setExtractedSubject("boo"); | ||
41 | |||
42 | auto mail2 = ApplicationDomain::ApplicationDomainType::createEntity<ApplicationDomain::Mail>("res1"); | ||
43 | mail2.setExtractedMessageId("messageid2"); | ||
44 | mail2.setExtractedSubject("foo"); | ||
45 | |||
46 | auto mail3 = ApplicationDomain::ApplicationDomainType::createEntity<ApplicationDomain::Mail>("res1"); | ||
47 | mail3.setExtractedMessageId("messageid2"); | ||
48 | mail3.setExtractedSubject("foo"); | ||
49 | |||
50 | store.startTransaction(Storage::DataStore::ReadWrite); | ||
51 | store.add("mail", mail, false); | ||
52 | store.add("mail", mail2, false); | ||
53 | store.add("mail", mail3, false); | ||
54 | |||
55 | mail.setExtractedSubject("foo"); | ||
56 | |||
57 | store.modify("mail", mail, QByteArrayList{}, false); | ||
58 | |||
59 | { | ||
60 | const auto ids = store.fullScan("mail"); | ||
61 | |||
62 | QCOMPARE(ids.size(), 3); | ||
63 | QVERIFY(ids.contains(Sink::Storage::Identifier::fromDisplayByteArray(mail.identifier()))); | ||
64 | QVERIFY(ids.contains(Sink::Storage::Identifier::fromDisplayByteArray(mail2.identifier()))); | ||
65 | QVERIFY(ids.contains(Sink::Storage::Identifier::fromDisplayByteArray(mail3.identifier()))); | ||
66 | } | ||
67 | |||
68 | store.remove("mail", mail3, false); | ||
69 | store.commitTransaction(); | ||
70 | |||
71 | { | ||
72 | const auto ids = store.fullScan("mail"); | ||
73 | |||
74 | QCOMPARE(ids.size(), 2); | ||
75 | QVERIFY(ids.contains(Sink::Storage::Identifier::fromDisplayByteArray(mail.identifier()))); | ||
76 | QVERIFY(ids.contains(Sink::Storage::Identifier::fromDisplayByteArray(mail2.identifier()))); | ||
77 | } | ||
78 | } | ||
79 | |||
32 | void readAll() | 80 | void readAll() |
33 | { | 81 | { |
34 | using namespace Sink; | 82 | using namespace Sink; |