diff options
Diffstat (limited to 'tests')
-rw-r--r-- | tests/accountstest.cpp | 2 | ||||
-rw-r--r-- | tests/clientapitest.cpp | 14 | ||||
-rw-r--r-- | tests/dummyresourcebenchmark.cpp | 8 | ||||
-rw-r--r-- | tests/dummyresourcetest.cpp | 31 | ||||
-rw-r--r-- | tests/mailsynctest.cpp | 68 | ||||
-rw-r--r-- | tests/mailtest.cpp | 20 | ||||
-rw-r--r-- | tests/mailthreadtest.cpp | 6 | ||||
-rw-r--r-- | tests/modelinteractivitytest.cpp | 5 | ||||
-rw-r--r-- | tests/querytest.cpp | 62 |
9 files changed, 110 insertions, 106 deletions
diff --git a/tests/accountstest.cpp b/tests/accountstest.cpp index 260602c..8216210 100644 --- a/tests/accountstest.cpp +++ b/tests/accountstest.cpp | |||
@@ -139,7 +139,7 @@ private slots: | |||
139 | QCOMPARE(account->getStatus(), static_cast<int>(Sink::ApplicationDomain::OfflineStatus)); | 139 | QCOMPARE(account->getStatus(), static_cast<int>(Sink::ApplicationDomain::OfflineStatus)); |
140 | 140 | ||
141 | //Synchronize to connect | 141 | //Synchronize to connect |
142 | VERIFYEXEC(Sink::Store::synchronize(Query::ResourceFilter(res))); | 142 | VERIFYEXEC(Sink::Store::synchronize(Query().resourceFilter(res.identifier()))); |
143 | 143 | ||
144 | QTRY_COMPARE_WITH_TIMEOUT(model->data(model->index(0, 0, QModelIndex()), Sink::Store::DomainObjectRole).value<Sink::ApplicationDomain::SinkAccount::Ptr>()->getStatus(), static_cast<int>(Sink::ApplicationDomain::ConnectedStatus), 1000); | 144 | QTRY_COMPARE_WITH_TIMEOUT(model->data(model->index(0, 0, QModelIndex()), Sink::Store::DomainObjectRole).value<Sink::ApplicationDomain::SinkAccount::Ptr>()->getStatus(), static_cast<int>(Sink::ApplicationDomain::ConnectedStatus), 1000); |
145 | } | 145 | } |
diff --git a/tests/clientapitest.cpp b/tests/clientapitest.cpp index 44eb845..fd3d5f0 100644 --- a/tests/clientapitest.cpp +++ b/tests/clientapitest.cpp | |||
@@ -104,7 +104,7 @@ private slots: | |||
104 | ResourceConfig::addResource("dummyresource.instance1", "dummyresource"); | 104 | ResourceConfig::addResource("dummyresource.instance1", "dummyresource"); |
105 | 105 | ||
106 | Sink::Query query; | 106 | Sink::Query query; |
107 | query.resources << "dummyresource.instance1"; | 107 | query.resourceFilter("dummyresource.instance1"); |
108 | query.liveQuery = false; | 108 | query.liveQuery = false; |
109 | 109 | ||
110 | auto model = Sink::Store::loadModel<Sink::ApplicationDomain::Event>(query); | 110 | auto model = Sink::Store::loadModel<Sink::ApplicationDomain::Event>(query); |
@@ -115,7 +115,7 @@ private slots: | |||
115 | void testLoadWithoutResource() | 115 | void testLoadWithoutResource() |
116 | { | 116 | { |
117 | Sink::Query query; | 117 | Sink::Query query; |
118 | query.resources << "nonexisting.resource"; | 118 | query.resourceFilter("nonexisting.resource"); |
119 | query.liveQuery = false; | 119 | query.liveQuery = false; |
120 | 120 | ||
121 | auto model = Sink::Store::loadModel<Sink::ApplicationDomain::Event>(query); | 121 | auto model = Sink::Store::loadModel<Sink::ApplicationDomain::Event>(query); |
@@ -129,7 +129,7 @@ private slots: | |||
129 | ResourceConfig::addResource("dummyresource.instance1", "dummyresource"); | 129 | ResourceConfig::addResource("dummyresource.instance1", "dummyresource"); |
130 | 130 | ||
131 | Sink::Query query; | 131 | Sink::Query query; |
132 | query.resources << "dummyresource.instance1"; | 132 | query.resourceFilter("dummyresource.instance1"); |
133 | query.liveQuery = false; | 133 | query.liveQuery = false; |
134 | 134 | ||
135 | auto model = Sink::Store::loadModel<Sink::ApplicationDomain::Folder>(query); | 135 | auto model = Sink::Store::loadModel<Sink::ApplicationDomain::Folder>(query); |
@@ -147,7 +147,7 @@ private slots: | |||
147 | 147 | ||
148 | // Test | 148 | // Test |
149 | Sink::Query query; | 149 | Sink::Query query; |
150 | query.resources << "dummyresource.instance1"; | 150 | query.resourceFilter("dummyresource.instance1"); |
151 | query.liveQuery = false; | 151 | query.liveQuery = false; |
152 | query.parentProperty = "parent"; | 152 | query.parentProperty = "parent"; |
153 | 153 | ||
@@ -170,7 +170,7 @@ private slots: | |||
170 | 170 | ||
171 | // Test | 171 | // Test |
172 | Sink::Query query; | 172 | Sink::Query query; |
173 | query.resources << "dummyresource.instance1"; | 173 | query.resourceFilter("dummyresource.instance1"); |
174 | query.liveQuery = false; | 174 | query.liveQuery = false; |
175 | query.parentProperty = "parent"; | 175 | query.parentProperty = "parent"; |
176 | 176 | ||
@@ -193,7 +193,7 @@ private slots: | |||
193 | 193 | ||
194 | // Test | 194 | // Test |
195 | Sink::Query query; | 195 | Sink::Query query; |
196 | query.resources << "dummyresource.instance1"; | 196 | query.resourceFilter("dummyresource.instance1"); |
197 | query.liveQuery = true; | 197 | query.liveQuery = true; |
198 | query.parentProperty = "parent"; | 198 | query.parentProperty = "parent"; |
199 | 199 | ||
@@ -268,7 +268,7 @@ private slots: | |||
268 | ResourceConfig::addResource("dummyresource.instance1", "dummyresource"); | 268 | ResourceConfig::addResource("dummyresource.instance1", "dummyresource"); |
269 | 269 | ||
270 | Sink::Query query; | 270 | Sink::Query query; |
271 | query.resources << "dummyresource.instance1"; | 271 | query.resourceFilter("dummyresource.instance1"); |
272 | query.liveQuery = false; | 272 | query.liveQuery = false; |
273 | 273 | ||
274 | bool gotValue = false; | 274 | bool gotValue = false; |
diff --git a/tests/dummyresourcebenchmark.cpp b/tests/dummyresourcebenchmark.cpp index ffaa8f6..8c6afb4 100644 --- a/tests/dummyresourcebenchmark.cpp +++ b/tests/dummyresourcebenchmark.cpp | |||
@@ -13,6 +13,8 @@ | |||
13 | #include "log.h" | 13 | #include "log.h" |
14 | #include "resourceconfig.h" | 14 | #include "resourceconfig.h" |
15 | #include "notification_generated.h" | 15 | #include "notification_generated.h" |
16 | #include "test.h" | ||
17 | #include "testutils.h" | ||
16 | 18 | ||
17 | #include "hawd/dataset.h" | 19 | #include "hawd/dataset.h" |
18 | #include "hawd/formatter.h" | 20 | #include "hawd/formatter.h" |
@@ -98,8 +100,8 @@ private slots: | |||
98 | // Ensure everything is processed | 100 | // Ensure everything is processed |
99 | { | 101 | { |
100 | Sink::Query query; | 102 | Sink::Query query; |
101 | query.resources << "sink.dummy.instance1"; | 103 | query.resourceFilter("sink.dummy.instance1"); |
102 | Sink::ResourceControl::flushMessageQueue(query.resources).exec().waitForFinished(); | 104 | VERIFYEXEC(Sink::ResourceControl::flushMessageQueue(QByteArrayList() << "sink.dummy.instance1")); |
103 | } | 105 | } |
104 | auto allProcessedTime = time.elapsed(); | 106 | auto allProcessedTime = time.elapsed(); |
105 | 107 | ||
@@ -127,7 +129,7 @@ private slots: | |||
127 | { | 129 | { |
128 | time.start(); | 130 | time.start(); |
129 | Sink::Query query; | 131 | Sink::Query query; |
130 | query.resources << "sink.dummy.instance1"; | 132 | query.resourceFilter("sink.dummy.instance1"); |
131 | 133 | ||
132 | query.filter("uid", Sink::Query::Comparator("testuid")); | 134 | query.filter("uid", Sink::Query::Comparator("testuid")); |
133 | auto model = Sink::Store::loadModel<Sink::ApplicationDomain::Event>(query); | 135 | auto model = Sink::Store::loadModel<Sink::ApplicationDomain::Event>(query); |
diff --git a/tests/dummyresourcetest.cpp b/tests/dummyresourcetest.cpp index a7a492c..2ff31e5 100644 --- a/tests/dummyresourcetest.cpp +++ b/tests/dummyresourcetest.cpp | |||
@@ -12,6 +12,7 @@ | |||
12 | #include "pipeline.h" | 12 | #include "pipeline.h" |
13 | #include "log.h" | 13 | #include "log.h" |
14 | #include "test.h" | 14 | #include "test.h" |
15 | #include "testutils.h" | ||
15 | 16 | ||
16 | using namespace Sink; | 17 | using namespace Sink; |
17 | using namespace Sink::ApplicationDomain; | 18 | using namespace Sink::ApplicationDomain; |
@@ -66,10 +67,10 @@ private slots: | |||
66 | event.setProperty("summary", "summaryValue"); | 67 | event.setProperty("summary", "summaryValue"); |
67 | Sink::Store::create<Event>(event).exec().waitForFinished(); | 68 | Sink::Store::create<Event>(event).exec().waitForFinished(); |
68 | 69 | ||
69 | auto query = Query::ResourceFilter("sink.dummy.instance1") ; | 70 | auto query = Query().resourceFilter("sink.dummy.instance1") ; |
70 | 71 | ||
71 | // Ensure all local data is processed | 72 | // Ensure all local data is processed |
72 | Sink::ResourceControl::flushMessageQueue(query.resources).exec().waitForFinished(); | 73 | VERIFYEXEC(Sink::ResourceControl::flushMessageQueue(QByteArrayList() << "sink.dummy.instance1")); |
73 | 74 | ||
74 | auto model = Sink::Store::loadModel<Event>(query.filter<Event::Uid>("testuid")); | 75 | auto model = Sink::Store::loadModel<Event>(query.filter<Event::Uid>("testuid")); |
75 | QTRY_COMPARE(model->rowCount(QModelIndex()), 1); | 76 | QTRY_COMPARE(model->rowCount(QModelIndex()), 1); |
@@ -88,10 +89,10 @@ private slots: | |||
88 | event.setProperty("uid", "testuid2"); | 89 | event.setProperty("uid", "testuid2"); |
89 | Sink::Store::create<Event>(event).exec().waitForFinished(); | 90 | Sink::Store::create<Event>(event).exec().waitForFinished(); |
90 | 91 | ||
91 | auto query = Query::ResourceFilter("sink.dummy.instance1") ; | 92 | auto query = Query().resourceFilter("sink.dummy.instance1") ; |
92 | 93 | ||
93 | // Ensure all local data is processed | 94 | // Ensure all local data is processed |
94 | Sink::ResourceControl::flushMessageQueue(query.resources).exec().waitForFinished(); | 95 | VERIFYEXEC(Sink::ResourceControl::flushMessageQueue(QByteArrayList() << "sink.dummy.instance1")); |
95 | 96 | ||
96 | auto model = Sink::Store::loadModel<Event>(query.filter<Event::Uid>("testuid")); | 97 | auto model = Sink::Store::loadModel<Event>(query.filter<Event::Uid>("testuid")); |
97 | QTRY_COMPARE(model->rowCount(QModelIndex()), 1); | 98 | QTRY_COMPARE(model->rowCount(QModelIndex()), 1); |
@@ -113,10 +114,10 @@ private slots: | |||
113 | event.setProperty("summary", "summaryValue2"); | 114 | event.setProperty("summary", "summaryValue2"); |
114 | Sink::Store::create<Event>(event).exec().waitForFinished(); | 115 | Sink::Store::create<Event>(event).exec().waitForFinished(); |
115 | 116 | ||
116 | auto query = Query::ResourceFilter("sink.dummy.instance1") ; | 117 | auto query = Query().resourceFilter("sink.dummy.instance1") ; |
117 | 118 | ||
118 | // Ensure all local data is processed | 119 | // Ensure all local data is processed |
119 | Sink::ResourceControl::flushMessageQueue(query.resources).exec().waitForFinished(); | 120 | VERIFYEXEC(Sink::ResourceControl::flushMessageQueue(QByteArrayList() << "sink.dummy.instance1")); |
120 | 121 | ||
121 | auto model = Sink::Store::loadModel<Event>(query.filter<Event::Summary>("summaryValue2")); | 122 | auto model = Sink::Store::loadModel<Event>(query.filter<Event::Summary>("summaryValue2")); |
122 | QTRY_COMPARE(model->rowCount(QModelIndex()), 1); | 123 | QTRY_COMPARE(model->rowCount(QModelIndex()), 1); |
@@ -143,11 +144,11 @@ private slots: | |||
143 | 144 | ||
144 | void testSyncAndFacade() | 145 | void testSyncAndFacade() |
145 | { | 146 | { |
146 | const auto query = Query::ResourceFilter("sink.dummy.instance1"); | 147 | const auto query = Query().resourceFilter("sink.dummy.instance1"); |
147 | 148 | ||
148 | // Ensure all local data is processed | 149 | // Ensure all local data is processed |
149 | Sink::Store::synchronize(query).exec().waitForFinished(); | 150 | Sink::Store::synchronize(query).exec().waitForFinished(); |
150 | Sink::ResourceControl::flushMessageQueue(query.resources).exec().waitForFinished(); | 151 | VERIFYEXEC(Sink::ResourceControl::flushMessageQueue(QByteArrayList() << "sink.dummy.instance1")); |
151 | 152 | ||
152 | auto model = Sink::Store::loadModel<Event>(query); | 153 | auto model = Sink::Store::loadModel<Event>(query); |
153 | QTRY_VERIFY(model->rowCount(QModelIndex()) >= 1); | 154 | QTRY_VERIFY(model->rowCount(QModelIndex()) >= 1); |
@@ -159,12 +160,12 @@ private slots: | |||
159 | 160 | ||
160 | void testSyncAndFacadeMail() | 161 | void testSyncAndFacadeMail() |
161 | { | 162 | { |
162 | auto query = Query::ResourceFilter("sink.dummy.instance1"); | 163 | auto query = Query().resourceFilter("sink.dummy.instance1"); |
163 | query.request<Mail::Subject>(); | 164 | query.request<Mail::Subject>(); |
164 | 165 | ||
165 | // Ensure all local data is processed | 166 | // Ensure all local data is processed |
166 | Sink::Store::synchronize(query).exec().waitForFinished(); | 167 | Sink::Store::synchronize(query).exec().waitForFinished(); |
167 | Sink::ResourceControl::flushMessageQueue(query.resources).exec().waitForFinished(); | 168 | VERIFYEXEC(Sink::ResourceControl::flushMessageQueue(QByteArrayList() << "sink.dummy.instance1")); |
168 | 169 | ||
169 | auto model = Sink::Store::loadModel<Mail>(query); | 170 | auto model = Sink::Store::loadModel<Mail>(query); |
170 | QTRY_VERIFY(model->rowCount(QModelIndex()) >= 1); | 171 | QTRY_VERIFY(model->rowCount(QModelIndex()) >= 1); |
@@ -182,10 +183,10 @@ private slots: | |||
182 | event.setProperty("summary", "summaryValue"); | 183 | event.setProperty("summary", "summaryValue"); |
183 | Sink::Store::create<Event>(event).exec().waitForFinished(); | 184 | Sink::Store::create<Event>(event).exec().waitForFinished(); |
184 | 185 | ||
185 | auto query = Query::ResourceFilter("sink.dummy.instance1").filter<Event::Uid>("testuid"); | 186 | auto query = Query().resourceFilter("sink.dummy.instance1").filter<Event::Uid>("testuid"); |
186 | 187 | ||
187 | // Ensure all local data is processed | 188 | // Ensure all local data is processed |
188 | Sink::ResourceControl::flushMessageQueue(query.resources).exec().waitForFinished(); | 189 | VERIFYEXEC(Sink::ResourceControl::flushMessageQueue(QByteArrayList() << "sink.dummy.instance1")); |
189 | 190 | ||
190 | // Test create | 191 | // Test create |
191 | Event event2; | 192 | Event event2; |
@@ -204,7 +205,7 @@ private slots: | |||
204 | Sink::Store::modify<Event>(event2).exec().waitForFinished(); | 205 | Sink::Store::modify<Event>(event2).exec().waitForFinished(); |
205 | 206 | ||
206 | // Ensure all local data is processed | 207 | // Ensure all local data is processed |
207 | Sink::ResourceControl::flushMessageQueue(query.resources).exec().waitForFinished(); | 208 | VERIFYEXEC(Sink::ResourceControl::flushMessageQueue(QByteArrayList() << "sink.dummy.instance1")); |
208 | 209 | ||
209 | // Test modify | 210 | // Test modify |
210 | { | 211 | { |
@@ -219,7 +220,7 @@ private slots: | |||
219 | Sink::Store::remove<Event>(event2).exec().waitForFinished(); | 220 | Sink::Store::remove<Event>(event2).exec().waitForFinished(); |
220 | 221 | ||
221 | // Ensure all local data is processed | 222 | // Ensure all local data is processed |
222 | Sink::ResourceControl::flushMessageQueue(query.resources).exec().waitForFinished(); | 223 | VERIFYEXEC(Sink::ResourceControl::flushMessageQueue(QByteArrayList() << "sink.dummy.instance1")); |
223 | 224 | ||
224 | // Test remove | 225 | // Test remove |
225 | { | 226 | { |
@@ -231,7 +232,7 @@ private slots: | |||
231 | 232 | ||
232 | void testWriteModifyDeleteLive() | 233 | void testWriteModifyDeleteLive() |
233 | { | 234 | { |
234 | auto query = Query::ResourceFilter("sink.dummy.instance1"); | 235 | auto query = Query().resourceFilter("sink.dummy.instance1"); |
235 | query.liveQuery = true; | 236 | query.liveQuery = true; |
236 | query.filter<Event::Uid>("testuid"); | 237 | query.filter<Event::Uid>("testuid"); |
237 | 238 | ||
diff --git a/tests/mailsynctest.cpp b/tests/mailsynctest.cpp index 8260978..98ac685 100644 --- a/tests/mailsynctest.cpp +++ b/tests/mailsynctest.cpp | |||
@@ -81,12 +81,12 @@ void MailSyncTest::testListFolders() | |||
81 | } | 81 | } |
82 | 82 | ||
83 | Sink::Query query; | 83 | Sink::Query query; |
84 | query.resources << mResourceInstanceIdentifier; | 84 | query.resourceFilter(mResourceInstanceIdentifier); |
85 | query.request<Folder::Name>().request<Folder::SpecialPurpose>(); | 85 | query.request<Folder::Name>().request<Folder::SpecialPurpose>(); |
86 | 86 | ||
87 | // Ensure all local data is processed | 87 | // Ensure all local data is processed |
88 | VERIFYEXEC(Store::synchronize(query)); | 88 | VERIFYEXEC(Store::synchronize(query)); |
89 | ResourceControl::flushMessageQueue(query.resources).exec().waitForFinished(); | 89 | VERIFYEXEC(ResourceControl::flushMessageQueue(QByteArrayList() << mResourceInstanceIdentifier)); |
90 | 90 | ||
91 | auto job = Store::fetchAll<Folder>(query).syncThen<void, QList<Folder::Ptr>>([=](const QList<Folder::Ptr> &folders) { | 91 | auto job = Store::fetchAll<Folder>(query).syncThen<void, QList<Folder::Ptr>>([=](const QList<Folder::Ptr> &folders) { |
92 | QStringList names; | 92 | QStringList names; |
@@ -121,14 +121,14 @@ void MailSyncTest::testListFolders() | |||
121 | void MailSyncTest::testListNewFolder() | 121 | void MailSyncTest::testListNewFolder() |
122 | { | 122 | { |
123 | Sink::Query query; | 123 | Sink::Query query; |
124 | query.resources << mResourceInstanceIdentifier; | 124 | query.resourceFilter(mResourceInstanceIdentifier); |
125 | query.request<Folder::Name>(); | 125 | query.request<Folder::Name>(); |
126 | 126 | ||
127 | createFolder(QStringList() << "test2"); | 127 | createFolder(QStringList() << "test2"); |
128 | 128 | ||
129 | // Ensure all local data is processed | 129 | // Ensure all local data is processed |
130 | VERIFYEXEC(Store::synchronize(query)); | 130 | VERIFYEXEC(Store::synchronize(query)); |
131 | ResourceControl::flushMessageQueue(query.resources).exec().waitForFinished(); | 131 | VERIFYEXEC(ResourceControl::flushMessageQueue(QByteArrayList() << mResourceInstanceIdentifier)); |
132 | 132 | ||
133 | auto job = Store::fetchAll<Folder>(query).syncThen<void, QList<Folder::Ptr>>([](const QList<Folder::Ptr> &folders) { | 133 | auto job = Store::fetchAll<Folder>(query).syncThen<void, QList<Folder::Ptr>>([](const QList<Folder::Ptr> &folders) { |
134 | QStringList names; | 134 | QStringList names; |
@@ -143,17 +143,17 @@ void MailSyncTest::testListNewFolder() | |||
143 | void MailSyncTest::testListRemovedFolder() | 143 | void MailSyncTest::testListRemovedFolder() |
144 | { | 144 | { |
145 | Sink::Query query; | 145 | Sink::Query query; |
146 | query.resources << mResourceInstanceIdentifier; | 146 | query.resourceFilter(mResourceInstanceIdentifier); |
147 | query.request<Folder::Name>(); | 147 | query.request<Folder::Name>(); |
148 | 148 | ||
149 | VERIFYEXEC(Store::synchronize(query)); | 149 | VERIFYEXEC(Store::synchronize(query)); |
150 | ResourceControl::flushMessageQueue(query.resources).exec().waitForFinished(); | 150 | VERIFYEXEC(ResourceControl::flushMessageQueue(QByteArrayList() << mResourceInstanceIdentifier)); |
151 | 151 | ||
152 | removeFolder(QStringList() << "test2"); | 152 | removeFolder(QStringList() << "test2"); |
153 | 153 | ||
154 | // Ensure all local data is processed | 154 | // Ensure all local data is processed |
155 | VERIFYEXEC(Store::synchronize(query)); | 155 | VERIFYEXEC(Store::synchronize(query)); |
156 | ResourceControl::flushMessageQueue(query.resources).exec().waitForFinished(); | 156 | VERIFYEXEC(ResourceControl::flushMessageQueue(QByteArrayList() << mResourceInstanceIdentifier)); |
157 | 157 | ||
158 | auto job = Store::fetchAll<Folder>(query).syncThen<void, QList<Folder::Ptr>>([](const QList<Folder::Ptr> &folders) { | 158 | auto job = Store::fetchAll<Folder>(query).syncThen<void, QList<Folder::Ptr>>([](const QList<Folder::Ptr> &folders) { |
159 | QStringList names; | 159 | QStringList names; |
@@ -171,14 +171,14 @@ void MailSyncTest::testListFolderHierarchy() | |||
171 | QSKIP("Missing capability folder.hierarchy"); | 171 | QSKIP("Missing capability folder.hierarchy"); |
172 | } | 172 | } |
173 | Sink::Query query; | 173 | Sink::Query query; |
174 | query.resources << mResourceInstanceIdentifier; | 174 | query.resourceFilter(mResourceInstanceIdentifier); |
175 | query.request<Folder::Name>().request<Folder::Parent>(); | 175 | query.request<Folder::Name>().request<Folder::Parent>(); |
176 | 176 | ||
177 | createFolder(QStringList() << "test" << "sub"); | 177 | createFolder(QStringList() << "test" << "sub"); |
178 | 178 | ||
179 | // Ensure all local data is processed | 179 | // Ensure all local data is processed |
180 | VERIFYEXEC(Store::synchronize(query)); | 180 | VERIFYEXEC(Store::synchronize(query)); |
181 | ResourceControl::flushMessageQueue(query.resources).exec().waitForFinished(); | 181 | VERIFYEXEC(ResourceControl::flushMessageQueue(QByteArrayList() << mResourceInstanceIdentifier)); |
182 | 182 | ||
183 | auto job = Store::fetchAll<Folder>(query).syncThen<void, QList<Folder::Ptr>>([=](const QList<Folder::Ptr> &folders) { | 183 | auto job = Store::fetchAll<Folder>(query).syncThen<void, QList<Folder::Ptr>>([=](const QList<Folder::Ptr> &folders) { |
184 | QHash<QString, Folder::Ptr> map; | 184 | QHash<QString, Folder::Ptr> map; |
@@ -214,14 +214,14 @@ void MailSyncTest::testListNewSubFolder() | |||
214 | QSKIP("Missing capability mail.folderhierarchy"); | 214 | QSKIP("Missing capability mail.folderhierarchy"); |
215 | } | 215 | } |
216 | Sink::Query query; | 216 | Sink::Query query; |
217 | query.resources << mResourceInstanceIdentifier; | 217 | query.resourceFilter(mResourceInstanceIdentifier); |
218 | query.request<Folder::Name>(); | 218 | query.request<Folder::Name>(); |
219 | 219 | ||
220 | createFolder(QStringList() << "test" << "sub1"); | 220 | createFolder(QStringList() << "test" << "sub1"); |
221 | 221 | ||
222 | // Ensure all local data is processed | 222 | // Ensure all local data is processed |
223 | VERIFYEXEC(Store::synchronize(query)); | 223 | VERIFYEXEC(Store::synchronize(query)); |
224 | ResourceControl::flushMessageQueue(query.resources).exec().waitForFinished(); | 224 | VERIFYEXEC(ResourceControl::flushMessageQueue(QByteArrayList() << mResourceInstanceIdentifier)); |
225 | 225 | ||
226 | auto job = Store::fetchAll<Folder>(query).syncThen<void, QList<Folder::Ptr>>([](const QList<Folder::Ptr> &folders) { | 226 | auto job = Store::fetchAll<Folder>(query).syncThen<void, QList<Folder::Ptr>>([](const QList<Folder::Ptr> &folders) { |
227 | QStringList names; | 227 | QStringList names; |
@@ -239,17 +239,17 @@ void MailSyncTest::testListRemovedSubFolder() | |||
239 | QSKIP("Missing capability folder.hierarchy"); | 239 | QSKIP("Missing capability folder.hierarchy"); |
240 | } | 240 | } |
241 | Sink::Query query; | 241 | Sink::Query query; |
242 | query.resources << mResourceInstanceIdentifier; | 242 | query.resourceFilter(mResourceInstanceIdentifier); |
243 | query.request<Folder::Name>(); | 243 | query.request<Folder::Name>(); |
244 | 244 | ||
245 | VERIFYEXEC(Store::synchronize(query)); | 245 | VERIFYEXEC(Store::synchronize(query)); |
246 | ResourceControl::flushMessageQueue(query.resources).exec().waitForFinished(); | 246 | VERIFYEXEC(ResourceControl::flushMessageQueue(QByteArrayList() << mResourceInstanceIdentifier)); |
247 | 247 | ||
248 | removeFolder(QStringList() << "test" << "sub1"); | 248 | removeFolder(QStringList() << "test" << "sub1"); |
249 | 249 | ||
250 | // Ensure all local data is processed | 250 | // Ensure all local data is processed |
251 | VERIFYEXEC(Store::synchronize(query)); | 251 | VERIFYEXEC(Store::synchronize(query)); |
252 | ResourceControl::flushMessageQueue(query.resources).exec().waitForFinished(); | 252 | VERIFYEXEC(ResourceControl::flushMessageQueue(QByteArrayList() << mResourceInstanceIdentifier)); |
253 | 253 | ||
254 | auto job = Store::fetchAll<Folder>(query).syncThen<void, QList<Folder::Ptr>>([](const QList<Folder::Ptr> &folders) { | 254 | auto job = Store::fetchAll<Folder>(query).syncThen<void, QList<Folder::Ptr>>([](const QList<Folder::Ptr> &folders) { |
255 | QStringList names; | 255 | QStringList names; |
@@ -264,12 +264,12 @@ void MailSyncTest::testListRemovedSubFolder() | |||
264 | void MailSyncTest::testListMails() | 264 | void MailSyncTest::testListMails() |
265 | { | 265 | { |
266 | Sink::Query query; | 266 | Sink::Query query; |
267 | query.resources << mResourceInstanceIdentifier; | 267 | query.resourceFilter(mResourceInstanceIdentifier); |
268 | query.request<Mail::Subject>().request<Mail::MimeMessage>().request<Mail::Folder>().request<Mail::Date>(); | 268 | query.request<Mail::Subject>().request<Mail::MimeMessage>().request<Mail::Folder>().request<Mail::Date>(); |
269 | 269 | ||
270 | // Ensure all local data is processed | 270 | // Ensure all local data is processed |
271 | VERIFYEXEC(Store::synchronize(query)); | 271 | VERIFYEXEC(Store::synchronize(query)); |
272 | ResourceControl::flushMessageQueue(query.resources).exec().waitForFinished(); | 272 | VERIFYEXEC(ResourceControl::flushMessageQueue(QByteArrayList() << mResourceInstanceIdentifier)); |
273 | 273 | ||
274 | auto job = Store::fetchAll<Mail>(query).syncThen<void, QList<Mail::Ptr>>([](const QList<Mail::Ptr> &mails) { | 274 | auto job = Store::fetchAll<Mail>(query).syncThen<void, QList<Mail::Ptr>>([](const QList<Mail::Ptr> &mails) { |
275 | QCOMPARE(mails.size(), 1); | 275 | QCOMPARE(mails.size(), 1); |
@@ -290,15 +290,15 @@ void MailSyncTest::testListMails() | |||
290 | void MailSyncTest::testResyncMails() | 290 | void MailSyncTest::testResyncMails() |
291 | { | 291 | { |
292 | Sink::Query query; | 292 | Sink::Query query; |
293 | query.resources << mResourceInstanceIdentifier; | 293 | query.resourceFilter(mResourceInstanceIdentifier); |
294 | 294 | ||
295 | // Ensure all local data is processed | 295 | // Ensure all local data is processed |
296 | VERIFYEXEC(Store::synchronize(query)); | 296 | VERIFYEXEC(Store::synchronize(query)); |
297 | ResourceControl::flushMessageQueue(query.resources).exec().waitForFinished(); | 297 | VERIFYEXEC(ResourceControl::flushMessageQueue(QByteArrayList() << mResourceInstanceIdentifier)); |
298 | 298 | ||
299 | // Ensure all local data is processed | 299 | // Ensure all local data is processed |
300 | VERIFYEXEC(Store::synchronize(query)); | 300 | VERIFYEXEC(Store::synchronize(query)); |
301 | ResourceControl::flushMessageQueue(query.resources).exec().waitForFinished(); | 301 | VERIFYEXEC(ResourceControl::flushMessageQueue(QByteArrayList() << mResourceInstanceIdentifier)); |
302 | 302 | ||
303 | auto job = Store::fetchAll<Mail>(query).syncThen<void, QList<Mail::Ptr>>([](const QList<Mail::Ptr> &mails) { | 303 | auto job = Store::fetchAll<Mail>(query).syncThen<void, QList<Mail::Ptr>>([](const QList<Mail::Ptr> &mails) { |
304 | QCOMPARE(mails.size(), 1); | 304 | QCOMPARE(mails.size(), 1); |
@@ -309,20 +309,20 @@ void MailSyncTest::testResyncMails() | |||
309 | void MailSyncTest::testFetchNewRemovedMessages() | 309 | void MailSyncTest::testFetchNewRemovedMessages() |
310 | { | 310 | { |
311 | Sink::Query query; | 311 | Sink::Query query; |
312 | query.resources << mResourceInstanceIdentifier; | 312 | query.resourceFilter(mResourceInstanceIdentifier); |
313 | query.request<Mail::Subject>().request<Mail::MimeMessage>(); | 313 | query.request<Mail::Subject>().request<Mail::MimeMessage>(); |
314 | 314 | ||
315 | // Ensure all local data is processed | 315 | // Ensure all local data is processed |
316 | VERIFYEXEC(Store::synchronize(query)); | 316 | VERIFYEXEC(Store::synchronize(query)); |
317 | ResourceControl::flushMessageQueue(query.resources).exec().waitForFinished(); | 317 | VERIFYEXEC(ResourceControl::flushMessageQueue(QByteArrayList() << mResourceInstanceIdentifier)); |
318 | 318 | ||
319 | auto msg = KMime::Message::Ptr::create(); | 319 | auto msg = KMime::Message::Ptr::create(); |
320 | msg->subject(true)->fromUnicodeString("Foobar", "utf8"); | 320 | msg->subject(true)->fromUnicodeString("Foobar", "utf8"); |
321 | msg->assemble(); | 321 | msg->assemble(); |
322 | auto messageIdentifier = createMessage(QStringList() << "test", msg->encodedContent(true)); | 322 | auto messageIdentifier = createMessage(QStringList() << "test", msg->encodedContent(true)); |
323 | 323 | ||
324 | Store::synchronize(query).exec().waitForFinished(); | 324 | VERIFYEXEC(Store::synchronize(query)); |
325 | ResourceControl::flushMessageQueue(query.resources).exec().waitForFinished(); | 325 | VERIFYEXEC(ResourceControl::flushMessageQueue(QByteArrayList() << mResourceInstanceIdentifier)); |
326 | 326 | ||
327 | { | 327 | { |
328 | auto job = Store::fetchAll<Mail>(query).syncThen<void, QList<Mail::Ptr>>([](const QList<Mail::Ptr> &mails) { | 328 | auto job = Store::fetchAll<Mail>(query).syncThen<void, QList<Mail::Ptr>>([](const QList<Mail::Ptr> &mails) { |
@@ -333,8 +333,8 @@ void MailSyncTest::testFetchNewRemovedMessages() | |||
333 | 333 | ||
334 | removeMessage(QStringList() << "test", messageIdentifier); | 334 | removeMessage(QStringList() << "test", messageIdentifier); |
335 | 335 | ||
336 | Store::synchronize(query).exec().waitForFinished(); | 336 | VERIFYEXEC(Store::synchronize(query)); |
337 | ResourceControl::flushMessageQueue(query.resources).exec().waitForFinished(); | 337 | VERIFYEXEC(ResourceControl::flushMessageQueue(QByteArrayList() << mResourceInstanceIdentifier)); |
338 | 338 | ||
339 | { | 339 | { |
340 | auto job = Store::fetchAll<Mail>(query).syncThen<void, QList<Mail::Ptr>>([](const QList<Mail::Ptr> &mails) { | 340 | auto job = Store::fetchAll<Mail>(query).syncThen<void, QList<Mail::Ptr>>([](const QList<Mail::Ptr> &mails) { |
@@ -347,7 +347,8 @@ void MailSyncTest::testFetchNewRemovedMessages() | |||
347 | void MailSyncTest::testFlagChange() | 347 | void MailSyncTest::testFlagChange() |
348 | { | 348 | { |
349 | Sink::Query query; | 349 | Sink::Query query; |
350 | query.resources << mResourceInstanceIdentifier; | 350 | query.resourceFilter(mResourceInstanceIdentifier); |
351 | query.filter<Mail::Important>(true); | ||
351 | query.request<Mail::Subject>().request<Mail::Important>(); | 352 | query.request<Mail::Subject>().request<Mail::Important>(); |
352 | 353 | ||
353 | auto msg = KMime::Message::Ptr::create(); | 354 | auto msg = KMime::Message::Ptr::create(); |
@@ -355,13 +356,12 @@ void MailSyncTest::testFlagChange() | |||
355 | msg->assemble(); | 356 | msg->assemble(); |
356 | auto messageIdentifier = createMessage(QStringList() << "test", msg->encodedContent(true)); | 357 | auto messageIdentifier = createMessage(QStringList() << "test", msg->encodedContent(true)); |
357 | 358 | ||
358 | Store::synchronize(query).exec().waitForFinished(); | 359 | VERIFYEXEC(Store::synchronize(query)); |
359 | ResourceControl::flushMessageQueue(query.resources).exec().waitForFinished(); | 360 | VERIFYEXEC(ResourceControl::flushMessageQueue(QByteArrayList() << mResourceInstanceIdentifier)); |
360 | 361 | ||
361 | { | 362 | { |
362 | auto job = Store::fetchAll<Mail>(query).syncThen<void, QList<Mail::Ptr>>([](const QList<Mail::Ptr> &mails) { | 363 | auto job = Store::fetchAll<Mail>(query).syncThen<void, QList<Mail::Ptr>>([](const QList<Mail::Ptr> &mails) { |
363 | QCOMPARE(mails.size(), 2); | 364 | QCOMPARE(mails.size(), 0); |
364 | QVERIFY(!mails.at(1)->getImportant()); | ||
365 | }); | 365 | }); |
366 | VERIFYEXEC(job); | 366 | VERIFYEXEC(job); |
367 | } | 367 | } |
@@ -370,12 +370,12 @@ void MailSyncTest::testFlagChange() | |||
370 | 370 | ||
371 | // Ensure all local data is processed | 371 | // Ensure all local data is processed |
372 | VERIFYEXEC(Store::synchronize(query)); | 372 | VERIFYEXEC(Store::synchronize(query)); |
373 | ResourceControl::flushMessageQueue(query.resources).exec().waitForFinished(); | 373 | VERIFYEXEC(ResourceControl::flushMessageQueue(QByteArrayList() << mResourceInstanceIdentifier)); |
374 | 374 | ||
375 | { | 375 | { |
376 | auto job = Store::fetchAll<Mail>(query).syncThen<void, QList<Mail::Ptr>>([](const QList<Mail::Ptr> &mails) { | 376 | auto job = Store::fetchAll<Mail>(query).syncThen<void, QList<Mail::Ptr>>([](const QList<Mail::Ptr> &mails) { |
377 | QCOMPARE(mails.size(), 2); | 377 | QCOMPARE(mails.size(), 1); |
378 | QVERIFY(mails.at(1)->getImportant()); | 378 | QVERIFY(mails.first()->getImportant()); |
379 | }); | 379 | }); |
380 | VERIFYEXEC(job); | 380 | VERIFYEXEC(job); |
381 | } | 381 | } |
@@ -389,7 +389,7 @@ void MailSyncTest::testFailingSync() | |||
389 | VERIFYEXEC(Store::create(resource)); | 389 | VERIFYEXEC(Store::create(resource)); |
390 | 390 | ||
391 | Sink::Query query; | 391 | Sink::Query query; |
392 | query.resources << resource.identifier(); | 392 | query.resourceFilter(resource.identifier()); |
393 | 393 | ||
394 | // Ensure sync fails if resource is misconfigured | 394 | // Ensure sync fails if resource is misconfigured |
395 | auto future = Store::synchronize(query).exec(); | 395 | auto future = Store::synchronize(query).exec(); |
diff --git a/tests/mailtest.cpp b/tests/mailtest.cpp index ed145d4..3339838 100644 --- a/tests/mailtest.cpp +++ b/tests/mailtest.cpp | |||
@@ -298,7 +298,7 @@ void MailTest::testMarkMailAsRead() | |||
298 | VERIFYEXEC(ResourceControl::flushMessageQueue(QByteArrayList() << mResourceInstanceIdentifier)); | 298 | VERIFYEXEC(ResourceControl::flushMessageQueue(QByteArrayList() << mResourceInstanceIdentifier)); |
299 | 299 | ||
300 | auto job = Store::fetchAll<Mail>(Query() | 300 | auto job = Store::fetchAll<Mail>(Query() |
301 | .filter(SinkResource(mResourceInstanceIdentifier)) | 301 | .resourceFilter(mResourceInstanceIdentifier) |
302 | .request<Mail::Folder>() | 302 | .request<Mail::Folder>() |
303 | .request<Mail::Subject>() | 303 | .request<Mail::Subject>() |
304 | ) | 304 | ) |
@@ -315,7 +315,7 @@ void MailTest::testMarkMailAsRead() | |||
315 | 315 | ||
316 | // Verify that we can still query for all relevant information | 316 | // Verify that we can still query for all relevant information |
317 | auto job2 = Store::fetchAll<Mail>(Query() | 317 | auto job2 = Store::fetchAll<Mail>(Query() |
318 | .filter(SinkResource(mResourceInstanceIdentifier)) | 318 | .resourceFilter(mResourceInstanceIdentifier) |
319 | .request<Mail::Folder>() | 319 | .request<Mail::Folder>() |
320 | .request<Mail::Subject>() | 320 | .request<Mail::Subject>() |
321 | .request<Mail::MimeMessage>() | 321 | .request<Mail::MimeMessage>() |
@@ -351,7 +351,7 @@ void MailTest::testCreateDraft() | |||
351 | 351 | ||
352 | QByteArray folderIdentifier; | 352 | QByteArray folderIdentifier; |
353 | 353 | ||
354 | auto createdDraft = Store::readOne<ApplicationDomain::Mail>(Query::IdentityFilter(mail).request<Mail::Folder>()); | 354 | auto createdDraft = Store::readOne<ApplicationDomain::Mail>(Query(mail).request<Mail::Folder>()); |
355 | folderIdentifier = createdDraft.getFolder(); | 355 | folderIdentifier = createdDraft.getFolder(); |
356 | QVERIFY(!folderIdentifier.isEmpty()); | 356 | QVERIFY(!folderIdentifier.isEmpty()); |
357 | 357 | ||
@@ -370,7 +370,7 @@ void MailTest::testCreateDraft() | |||
370 | //Ensure the folder is also existing | 370 | //Ensure the folder is also existing |
371 | { | 371 | { |
372 | ApplicationDomain::Folder folder; | 372 | ApplicationDomain::Folder folder; |
373 | auto folders = Store::read<ApplicationDomain::Folder>(Query::IdentityFilter(folderIdentifier)); | 373 | auto folders = Store::read<ApplicationDomain::Folder>(Query().filter(folderIdentifier)); |
374 | QCOMPARE(folders.size(), 1); | 374 | QCOMPARE(folders.size(), 1); |
375 | folder = folders.first(); | 375 | folder = folders.first(); |
376 | VERIFYEXEC(ResourceControl::inspect<ApplicationDomain::Folder>(ResourceControl::Inspection::ExistenceInspection(folder, true))); | 376 | VERIFYEXEC(ResourceControl::inspect<ApplicationDomain::Folder>(ResourceControl::Inspection::ExistenceInspection(folder, true))); |
@@ -400,7 +400,7 @@ void MailTest::testModifyMailToDraft() | |||
400 | VERIFYEXEC(Store::create(mail)); | 400 | VERIFYEXEC(Store::create(mail)); |
401 | VERIFYEXEC(ResourceControl::flushMessageQueue(QByteArrayList() << mResourceInstanceIdentifier)); | 401 | VERIFYEXEC(ResourceControl::flushMessageQueue(QByteArrayList() << mResourceInstanceIdentifier)); |
402 | 402 | ||
403 | auto modifiedMail = Store::readOne<ApplicationDomain::Mail>(Query::IdentityFilter(mail)); | 403 | auto modifiedMail = Store::readOne<ApplicationDomain::Mail>(Query(mail)); |
404 | modifiedMail.setDraft(true); | 404 | modifiedMail.setDraft(true); |
405 | VERIFYEXEC(Store::modify(modifiedMail)); | 405 | VERIFYEXEC(Store::modify(modifiedMail)); |
406 | VERIFYEXEC(ResourceControl::flushMessageQueue(QByteArrayList() << mResourceInstanceIdentifier)); | 406 | VERIFYEXEC(ResourceControl::flushMessageQueue(QByteArrayList() << mResourceInstanceIdentifier)); |
@@ -408,7 +408,7 @@ void MailTest::testModifyMailToDraft() | |||
408 | 408 | ||
409 | QByteArray folderIdentifier; | 409 | QByteArray folderIdentifier; |
410 | { | 410 | { |
411 | auto createdDraft = Store::readOne<ApplicationDomain::Mail>(Query::IdentityFilter(mail).request<Mail::Folder>()); | 411 | auto createdDraft = Store::readOne<ApplicationDomain::Mail>(Query(mail).request<Mail::Folder>()); |
412 | folderIdentifier = createdDraft.getFolder(); | 412 | folderIdentifier = createdDraft.getFolder(); |
413 | QVERIFY(!folderIdentifier.isEmpty()); | 413 | QVERIFY(!folderIdentifier.isEmpty()); |
414 | } | 414 | } |
@@ -416,7 +416,7 @@ void MailTest::testModifyMailToDraft() | |||
416 | //Ensure the folder is also existing | 416 | //Ensure the folder is also existing |
417 | { | 417 | { |
418 | ApplicationDomain::Folder folder; | 418 | ApplicationDomain::Folder folder; |
419 | auto folders = Store::read<ApplicationDomain::Folder>(Query::IdentityFilter(folderIdentifier).request<Folder::SpecialPurpose>()); | 419 | auto folders = Store::read<ApplicationDomain::Folder>(Query().filter(folderIdentifier).request<Folder::SpecialPurpose>()); |
420 | QCOMPARE(folders.size(), 1); | 420 | QCOMPARE(folders.size(), 1); |
421 | folder = folders.first(); | 421 | folder = folders.first(); |
422 | QVERIFY(folder.getSpecialPurpose().contains("drafts")); | 422 | QVERIFY(folder.getSpecialPurpose().contains("drafts")); |
@@ -447,7 +447,7 @@ void MailTest::testModifyMailToTrash() | |||
447 | VERIFYEXEC(Store::create(mail)); | 447 | VERIFYEXEC(Store::create(mail)); |
448 | VERIFYEXEC(ResourceControl::flushMessageQueue(QByteArrayList() << mResourceInstanceIdentifier)); | 448 | VERIFYEXEC(ResourceControl::flushMessageQueue(QByteArrayList() << mResourceInstanceIdentifier)); |
449 | 449 | ||
450 | auto modifiedMail = Store::readOne<ApplicationDomain::Mail>(Query::IdentityFilter(mail)); | 450 | auto modifiedMail = Store::readOne<ApplicationDomain::Mail>(Query(mail)); |
451 | modifiedMail.setTrash(true); | 451 | modifiedMail.setTrash(true); |
452 | VERIFYEXEC(Store::modify(modifiedMail)); | 452 | VERIFYEXEC(Store::modify(modifiedMail)); |
453 | VERIFYEXEC(ResourceControl::flushMessageQueue(QByteArrayList() << mResourceInstanceIdentifier)); | 453 | VERIFYEXEC(ResourceControl::flushMessageQueue(QByteArrayList() << mResourceInstanceIdentifier)); |
@@ -455,7 +455,7 @@ void MailTest::testModifyMailToTrash() | |||
455 | 455 | ||
456 | QByteArray folderIdentifier; | 456 | QByteArray folderIdentifier; |
457 | { | 457 | { |
458 | auto createdMail = Store::readOne<ApplicationDomain::Mail>(Query::IdentityFilter(mail).request<Mail::Folder>()); | 458 | auto createdMail = Store::readOne<ApplicationDomain::Mail>(Query(mail).request<Mail::Folder>()); |
459 | folderIdentifier = createdMail.getFolder(); | 459 | folderIdentifier = createdMail.getFolder(); |
460 | QVERIFY(!folderIdentifier.isEmpty()); | 460 | QVERIFY(!folderIdentifier.isEmpty()); |
461 | } | 461 | } |
@@ -463,7 +463,7 @@ void MailTest::testModifyMailToTrash() | |||
463 | //Ensure the folder is also existing | 463 | //Ensure the folder is also existing |
464 | { | 464 | { |
465 | ApplicationDomain::Folder folder; | 465 | ApplicationDomain::Folder folder; |
466 | auto folders = Store::read<ApplicationDomain::Folder>(Query::IdentityFilter(folderIdentifier).request<Folder::SpecialPurpose>()); | 466 | auto folders = Store::read<ApplicationDomain::Folder>(Query().filter(folderIdentifier).request<Folder::SpecialPurpose>()); |
467 | QCOMPARE(folders.size(), 1); | 467 | QCOMPARE(folders.size(), 1); |
468 | folder = folders.first(); | 468 | folder = folders.first(); |
469 | QVERIFY(folder.getSpecialPurpose().contains("trash")); | 469 | QVERIFY(folder.getSpecialPurpose().contains("trash")); |
diff --git a/tests/mailthreadtest.cpp b/tests/mailthreadtest.cpp index 6ba54df..b6b0da2 100644 --- a/tests/mailthreadtest.cpp +++ b/tests/mailthreadtest.cpp | |||
@@ -66,14 +66,14 @@ void MailThreadTest::init() | |||
66 | void MailThreadTest::testListThreadLeader() | 66 | void MailThreadTest::testListThreadLeader() |
67 | { | 67 | { |
68 | Sink::Query query; | 68 | Sink::Query query; |
69 | query.filter(SinkResource(mResourceInstanceIdentifier)); | 69 | query.resourceFilter(mResourceInstanceIdentifier); |
70 | query.request<Mail::Subject>().request<Mail::MimeMessage>().request<Mail::Folder>().request<Mail::Date>(); | 70 | query.request<Mail::Subject>().request<Mail::MimeMessage>().request<Mail::Folder>().request<Mail::Date>(); |
71 | query.sort<Mail::Date>(); | 71 | query.sort<Mail::Date>(); |
72 | query.reduce<Mail::ThreadId>(Query::Reduce::Selector::max<Mail::Date>()); | 72 | query.reduce<Mail::ThreadId>(Query::Reduce::Selector::max<Mail::Date>()); |
73 | 73 | ||
74 | // Ensure all local data is processed | 74 | // Ensure all local data is processed |
75 | VERIFYEXEC(Store::synchronize(query)); | 75 | VERIFYEXEC(Store::synchronize(query)); |
76 | ResourceControl::flushMessageQueue(query.resources).exec().waitForFinished(); | 76 | VERIFYEXEC(ResourceControl::flushMessageQueue(QByteArrayList() << mResourceInstanceIdentifier)); |
77 | 77 | ||
78 | auto mails = Store::read<Mail>(query); | 78 | auto mails = Store::read<Mail>(query); |
79 | QCOMPARE(mails.size(), 1); | 79 | QCOMPARE(mails.size(), 1); |
@@ -125,7 +125,7 @@ void MailThreadTest::testIndexInMixedOrder() | |||
125 | VERIFYEXEC(ResourceControl::flushMessageQueue(QByteArrayList() << mResourceInstanceIdentifier)); | 125 | VERIFYEXEC(ResourceControl::flushMessageQueue(QByteArrayList() << mResourceInstanceIdentifier)); |
126 | 126 | ||
127 | auto query = Sink::Query::threadLeaders(folder); | 127 | auto query = Sink::Query::threadLeaders(folder); |
128 | query.filter(SinkResource(mResourceInstanceIdentifier)); | 128 | query.resourceFilter(mResourceInstanceIdentifier); |
129 | query.request<Mail::Subject>().request<Mail::MimeMessage>().request<Mail::Folder>().request<Mail::Date>(); | 129 | query.request<Mail::Subject>().request<Mail::MimeMessage>().request<Mail::Folder>().request<Mail::Date>(); |
130 | 130 | ||
131 | Mail threadLeader; | 131 | Mail threadLeader; |
diff --git a/tests/modelinteractivitytest.cpp b/tests/modelinteractivitytest.cpp index 1ac0e2d..df0c772 100644 --- a/tests/modelinteractivitytest.cpp +++ b/tests/modelinteractivitytest.cpp | |||
@@ -11,6 +11,7 @@ | |||
11 | #include "log.h" | 11 | #include "log.h" |
12 | #include "modelresult.h" | 12 | #include "modelresult.h" |
13 | #include "test.h" | 13 | #include "test.h" |
14 | #include "testutils.h" | ||
14 | 15 | ||
15 | static int blockingTime; | 16 | static int blockingTime; |
16 | 17 | ||
@@ -76,10 +77,10 @@ private slots: | |||
76 | } | 77 | } |
77 | 78 | ||
78 | Sink::Query query; | 79 | Sink::Query query; |
79 | query.resources << "sink.dummy.instance1"; | 80 | query.resourceFilter("sink.dummy.instance1"); |
80 | query.liveQuery = true; | 81 | query.liveQuery = true; |
81 | 82 | ||
82 | Sink::ResourceControl::flushMessageQueue(query.resources).exec().waitForFinished(); | 83 | VERIFYEXEC(Sink::ResourceControl::flushMessageQueue(QByteArrayList() << "sink.dummy.instance1")); |
83 | 84 | ||
84 | // Test | 85 | // Test |
85 | QTime time; | 86 | QTime time; |
diff --git a/tests/querytest.cpp b/tests/querytest.cpp index db17026..e978787 100644 --- a/tests/querytest.cpp +++ b/tests/querytest.cpp | |||
@@ -49,7 +49,7 @@ private slots: | |||
49 | { | 49 | { |
50 | // Test | 50 | // Test |
51 | Sink::Query query; | 51 | Sink::Query query; |
52 | query.resources << "foobar"; | 52 | query.resourceFilter("foobar"); |
53 | query.liveQuery = true; | 53 | query.liveQuery = true; |
54 | 54 | ||
55 | // We fetch before the data is available and rely on the live query mechanism to deliver the actual data | 55 | // We fetch before the data is available and rely on the live query mechanism to deliver the actual data |
@@ -69,7 +69,7 @@ private slots: | |||
69 | 69 | ||
70 | // Test | 70 | // Test |
71 | Sink::Query query; | 71 | Sink::Query query; |
72 | query.resources << "sink.dummy.instance1"; | 72 | query.resourceFilter("sink.dummy.instance1"); |
73 | query.liveQuery = true; | 73 | query.liveQuery = true; |
74 | 74 | ||
75 | // We fetch before the data is available and rely on the live query mechanism to deliver the actual data | 75 | // We fetch before the data is available and rely on the live query mechanism to deliver the actual data |
@@ -87,11 +87,11 @@ private slots: | |||
87 | 87 | ||
88 | // Test | 88 | // Test |
89 | Sink::Query query; | 89 | Sink::Query query; |
90 | query.resources << "sink.dummy.instance1"; | 90 | query.resourceFilter("sink.dummy.instance1"); |
91 | query.liveQuery = false; | 91 | query.liveQuery = false; |
92 | 92 | ||
93 | // Ensure all local data is processed | 93 | // Ensure all local data is processed |
94 | Sink::ResourceControl::flushMessageQueue(query.resources).exec().waitForFinished(); | 94 | VERIFYEXEC(Sink::ResourceControl::flushMessageQueue(QByteArrayList() << "sink.dummy.instance1")); |
95 | 95 | ||
96 | // We fetch after the data is available and don't rely on the live query mechanism to deliver the actual data | 96 | // We fetch after the data is available and don't rely on the live query mechanism to deliver the actual data |
97 | auto model = Sink::Store::loadModel<Mail>(query); | 97 | auto model = Sink::Store::loadModel<Mail>(query); |
@@ -118,7 +118,7 @@ private slots: | |||
118 | 118 | ||
119 | // Test | 119 | // Test |
120 | Sink::Query query; | 120 | Sink::Query query; |
121 | query.resources << "sink.dummy.instance1"; | 121 | query.resourceFilter("sink.dummy.instance1"); |
122 | query.liveQuery = true; | 122 | query.liveQuery = true; |
123 | query.filter<Mail::Folder>("folder1"); | 123 | query.filter<Mail::Folder>("folder1"); |
124 | 124 | ||
@@ -150,7 +150,7 @@ private slots: | |||
150 | Sink::Store::create<Mail>(mail).exec().waitForFinished(); | 150 | Sink::Store::create<Mail>(mail).exec().waitForFinished(); |
151 | 151 | ||
152 | Sink::Query query; | 152 | Sink::Query query; |
153 | query.resources << "sink.dummy.instance1"; | 153 | query.resourceFilter("sink.dummy.instance1"); |
154 | 154 | ||
155 | // Ensure all local data is processed | 155 | // Ensure all local data is processed |
156 | Sink::Store::synchronize(query).exec().waitForFinished(); | 156 | Sink::Store::synchronize(query).exec().waitForFinished(); |
@@ -164,7 +164,7 @@ private slots: | |||
164 | 164 | ||
165 | // Test | 165 | // Test |
166 | Sink::Query query; | 166 | Sink::Query query; |
167 | query.filter(SinkResource("sink.dummy.instance1")); | 167 | query.resourceFilter("sink.dummy.instance1"); |
168 | query.filter(id); | 168 | query.filter(id); |
169 | auto model = Sink::Store::loadModel<Mail>(query); | 169 | auto model = Sink::Store::loadModel<Mail>(query); |
170 | QTRY_VERIFY(model->data(QModelIndex(), Sink::Store::ChildrenFetchedRole).toBool()); | 170 | QTRY_VERIFY(model->data(QModelIndex(), Sink::Store::ChildrenFetchedRole).toBool()); |
@@ -181,7 +181,7 @@ private slots: | |||
181 | 181 | ||
182 | // Test | 182 | // Test |
183 | Sink::Query query; | 183 | Sink::Query query; |
184 | query.resources << "sink.dummy.instance1"; | 184 | query.resourceFilter("sink.dummy.instance1"); |
185 | query.liveQuery = true; | 185 | query.liveQuery = true; |
186 | 186 | ||
187 | // We fetch before the data is available and rely on the live query mechanism to deliver the actual data | 187 | // We fetch before the data is available and rely on the live query mechanism to deliver the actual data |
@@ -199,10 +199,10 @@ private slots: | |||
199 | Sink::Store::create<Folder>(folder).exec().waitForFinished(); | 199 | Sink::Store::create<Folder>(folder).exec().waitForFinished(); |
200 | 200 | ||
201 | Sink::Query query; | 201 | Sink::Query query; |
202 | query.resources << "sink.dummy.instance1"; | 202 | query.resourceFilter("sink.dummy.instance1"); |
203 | 203 | ||
204 | // Ensure all local data is processed | 204 | // Ensure all local data is processed |
205 | Sink::ResourceControl::flushMessageQueue(query.resources).exec().waitForFinished(); | 205 | VERIFYEXEC(Sink::ResourceControl::flushMessageQueue(QByteArrayList() << "sink.dummy.instance1")); |
206 | 206 | ||
207 | auto model = Sink::Store::loadModel<Folder>(query); | 207 | auto model = Sink::Store::loadModel<Folder>(query); |
208 | QTRY_VERIFY(model->data(QModelIndex(), Sink::Store::ChildrenFetchedRole).toBool()); | 208 | QTRY_VERIFY(model->data(QModelIndex(), Sink::Store::ChildrenFetchedRole).toBool()); |
@@ -218,11 +218,11 @@ private slots: | |||
218 | 218 | ||
219 | // Test | 219 | // Test |
220 | Sink::Query query; | 220 | Sink::Query query; |
221 | query.resources << "sink.dummy.instance1"; | 221 | query.resourceFilter("sink.dummy.instance1"); |
222 | query.parentProperty = "parent"; | 222 | query.parentProperty = "parent"; |
223 | 223 | ||
224 | // Ensure all local data is processed | 224 | // Ensure all local data is processed |
225 | Sink::ResourceControl::flushMessageQueue(query.resources).exec().waitForFinished(); | 225 | VERIFYEXEC(Sink::ResourceControl::flushMessageQueue(QByteArrayList() << "sink.dummy.instance1")); |
226 | 226 | ||
227 | // We fetch after the data is available and don't rely on the live query mechanism to deliver the actual data | 227 | // We fetch after the data is available and don't rely on the live query mechanism to deliver the actual data |
228 | auto model = Sink::Store::loadModel<Folder>(query); | 228 | auto model = Sink::Store::loadModel<Folder>(query); |
@@ -252,12 +252,12 @@ private slots: | |||
252 | 252 | ||
253 | // Test | 253 | // Test |
254 | Sink::Query query; | 254 | Sink::Query query; |
255 | query.resources << "sink.dummy.instance1"; | 255 | query.resourceFilter("sink.dummy.instance1"); |
256 | query.liveQuery = false; | 256 | query.liveQuery = false; |
257 | query.filter<Mail::Uid>("test1"); | 257 | query.filter<Mail::Uid>("test1"); |
258 | 258 | ||
259 | // Ensure all local data is processed | 259 | // Ensure all local data is processed |
260 | Sink::ResourceControl::flushMessageQueue(query.resources).exec().waitForFinished(); | 260 | VERIFYEXEC(Sink::ResourceControl::flushMessageQueue(QByteArrayList() << "sink.dummy.instance1")); |
261 | 261 | ||
262 | // We fetch before the data is available and rely on the live query mechanism to deliver the actual data | 262 | // We fetch before the data is available and rely on the live query mechanism to deliver the actual data |
263 | auto model = Sink::Store::loadModel<Mail>(query); | 263 | auto model = Sink::Store::loadModel<Mail>(query); |
@@ -274,10 +274,10 @@ private slots: | |||
274 | Sink::Store::create<Folder>(folder).exec().waitForFinished(); | 274 | Sink::Store::create<Folder>(folder).exec().waitForFinished(); |
275 | 275 | ||
276 | Sink::Query query; | 276 | Sink::Query query; |
277 | query.resources << "sink.dummy.instance1"; | 277 | query.resourceFilter("sink.dummy.instance1"); |
278 | 278 | ||
279 | // Ensure all local data is processed | 279 | // Ensure all local data is processed |
280 | Sink::ResourceControl::flushMessageQueue(query.resources).exec().waitForFinished(); | 280 | VERIFYEXEC(Sink::ResourceControl::flushMessageQueue(QByteArrayList() << "sink.dummy.instance1")); |
281 | 281 | ||
282 | auto model = Sink::Store::loadModel<Folder>(query); | 282 | auto model = Sink::Store::loadModel<Folder>(query); |
283 | QTRY_VERIFY(model->data(QModelIndex(), Sink::Store::ChildrenFetchedRole).toBool()); | 283 | QTRY_VERIFY(model->data(QModelIndex(), Sink::Store::ChildrenFetchedRole).toBool()); |
@@ -294,11 +294,11 @@ private slots: | |||
294 | 294 | ||
295 | // Test | 295 | // Test |
296 | Sink::Query query; | 296 | Sink::Query query; |
297 | query.resources << "sink.dummy.instance1"; | 297 | query.resourceFilter("sink.dummy.instance1"); |
298 | query.filter<Mail::Folder>(*folderEntity); | 298 | query.filter<Mail::Folder>(*folderEntity); |
299 | 299 | ||
300 | // Ensure all local data is processed | 300 | // Ensure all local data is processed |
301 | Sink::ResourceControl::flushMessageQueue(query.resources).exec().waitForFinished(); | 301 | VERIFYEXEC(Sink::ResourceControl::flushMessageQueue(QByteArrayList() << "sink.dummy.instance1")); |
302 | 302 | ||
303 | // We fetch before the data is available and rely on the live query mechanism to deliver the actual data | 303 | // We fetch before the data is available and rely on the live query mechanism to deliver the actual data |
304 | auto model = Sink::Store::loadModel<Mail>(query); | 304 | auto model = Sink::Store::loadModel<Mail>(query); |
@@ -318,10 +318,10 @@ private slots: | |||
318 | Sink::Store::create<Folder>(folder).exec().waitForFinished(); | 318 | Sink::Store::create<Folder>(folder).exec().waitForFinished(); |
319 | 319 | ||
320 | Sink::Query query; | 320 | Sink::Query query; |
321 | query.resources << "sink.dummy.instance1"; | 321 | query.resourceFilter("sink.dummy.instance1"); |
322 | 322 | ||
323 | // Ensure all local data is processed | 323 | // Ensure all local data is processed |
324 | Sink::ResourceControl::flushMessageQueue(query.resources).exec().waitForFinished(); | 324 | VERIFYEXEC(Sink::ResourceControl::flushMessageQueue(QByteArrayList() << "sink.dummy.instance1")); |
325 | 325 | ||
326 | auto model = Sink::Store::loadModel<Folder>(query); | 326 | auto model = Sink::Store::loadModel<Folder>(query); |
327 | QTRY_VERIFY(model->data(QModelIndex(), Sink::Store::ChildrenFetchedRole).toBool()); | 327 | QTRY_VERIFY(model->data(QModelIndex(), Sink::Store::ChildrenFetchedRole).toBool()); |
@@ -348,12 +348,12 @@ private slots: | |||
348 | 348 | ||
349 | // Test | 349 | // Test |
350 | Sink::Query query; | 350 | Sink::Query query; |
351 | query.resources << "sink.dummy.instance1"; | 351 | query.resourceFilter("sink.dummy.instance1"); |
352 | query.filter<Mail::Folder>(*folderEntity); | 352 | query.filter<Mail::Folder>(*folderEntity); |
353 | query.filter<Mail::Uid>("test1"); | 353 | query.filter<Mail::Uid>("test1"); |
354 | 354 | ||
355 | // Ensure all local data is processed | 355 | // Ensure all local data is processed |
356 | Sink::ResourceControl::flushMessageQueue(query.resources).exec().waitForFinished(); | 356 | VERIFYEXEC(Sink::ResourceControl::flushMessageQueue(QByteArrayList() << "sink.dummy.instance1")); |
357 | 357 | ||
358 | // We fetch before the data is available and rely on the live query mechanism to deliver the actual data | 358 | // We fetch before the data is available and rely on the live query mechanism to deliver the actual data |
359 | auto model = Sink::Store::loadModel<Mail>(query); | 359 | auto model = Sink::Store::loadModel<Mail>(query); |
@@ -370,10 +370,10 @@ private slots: | |||
370 | Sink::Store::create<Folder>(folder).exec().waitForFinished(); | 370 | Sink::Store::create<Folder>(folder).exec().waitForFinished(); |
371 | 371 | ||
372 | Sink::Query query; | 372 | Sink::Query query; |
373 | query.resources << "sink.dummy.instance1"; | 373 | query.resourceFilter("sink.dummy.instance1"); |
374 | 374 | ||
375 | // Ensure all local data is processed | 375 | // Ensure all local data is processed |
376 | Sink::ResourceControl::flushMessageQueue(query.resources).exec().waitForFinished(); | 376 | VERIFYEXEC(Sink::ResourceControl::flushMessageQueue(QByteArrayList() << "sink.dummy.instance1")); |
377 | 377 | ||
378 | auto model = Sink::Store::loadModel<Folder>(query); | 378 | auto model = Sink::Store::loadModel<Folder>(query); |
379 | QTRY_VERIFY(model->data(QModelIndex(), Sink::Store::ChildrenFetchedRole).toBool()); | 379 | QTRY_VERIFY(model->data(QModelIndex(), Sink::Store::ChildrenFetchedRole).toBool()); |
@@ -408,14 +408,14 @@ private slots: | |||
408 | 408 | ||
409 | // Test | 409 | // Test |
410 | Sink::Query query; | 410 | Sink::Query query; |
411 | query.filter(SinkResource("sink.dummy.instance1")); | 411 | query.resourceFilter("sink.dummy.instance1"); |
412 | query.filter<Mail::Folder>(*folderEntity); | 412 | query.filter<Mail::Folder>(*folderEntity); |
413 | query.sort<Mail::Date>(); | 413 | query.sort<Mail::Date>(); |
414 | query.limit = 1; | 414 | query.limit = 1; |
415 | query.liveQuery = false; | 415 | query.liveQuery = false; |
416 | 416 | ||
417 | // Ensure all local data is processed | 417 | // Ensure all local data is processed |
418 | Sink::ResourceControl::flushMessageQueue(query.resources).exec().waitForFinished(); | 418 | VERIFYEXEC(Sink::ResourceControl::flushMessageQueue(QByteArrayList() << "sink.dummy.instance1")); |
419 | 419 | ||
420 | auto model = Sink::Store::loadModel<Mail>(query); | 420 | auto model = Sink::Store::loadModel<Mail>(query); |
421 | QTRY_VERIFY(model->data(QModelIndex(), Sink::Store::ChildrenFetchedRole).toBool()); | 421 | QTRY_VERIFY(model->data(QModelIndex(), Sink::Store::ChildrenFetchedRole).toBool()); |
@@ -485,7 +485,7 @@ private slots: | |||
485 | 485 | ||
486 | // Test | 486 | // Test |
487 | Sink::Query query; | 487 | Sink::Query query; |
488 | query.filter(account1); | 488 | query.resourceFilter<SinkResource::Account>(account1); |
489 | 489 | ||
490 | // We fetch before the data is available and rely on the live query mechanism to deliver the actual data | 490 | // We fetch before the data is available and rely on the live query mechanism to deliver the actual data |
491 | auto folders = Sink::Store::read<Folder>(query); | 491 | auto folders = Sink::Store::read<Folder>(query); |
@@ -517,7 +517,7 @@ private slots: | |||
517 | } | 517 | } |
518 | 518 | ||
519 | // Ensure all local data is processed | 519 | // Ensure all local data is processed |
520 | Sink::ResourceControl::flushMessageQueue(QByteArrayList() << "sink.dummy.instance1").exec().waitForFinished(); | 520 | VERIFYEXEC(Sink::ResourceControl::flushMessageQueue(QByteArrayList() << "sink.dummy.instance1")); |
521 | 521 | ||
522 | //Setup two folders with a mail each, ensure we only get the mail from the folder that matches the folder filter. | 522 | //Setup two folders with a mail each, ensure we only get the mail from the folder that matches the folder filter. |
523 | Query query; | 523 | Query query; |
@@ -538,12 +538,12 @@ private slots: | |||
538 | auto resource1 = ApplicationDomainType::createEntity<SinkResource>(); | 538 | auto resource1 = ApplicationDomainType::createEntity<SinkResource>(); |
539 | resource1.setResourceType("sink.dummy"); | 539 | resource1.setResourceType("sink.dummy"); |
540 | resource1.setCapabilities(QByteArrayList() << "cap1"); | 540 | resource1.setCapabilities(QByteArrayList() << "cap1"); |
541 | Store::create(resource1).exec().waitForFinished(); | 541 | VERIFYEXEC(Store::create(resource1)); |
542 | 542 | ||
543 | auto resource2 = ApplicationDomainType::createEntity<SinkResource>(); | 543 | auto resource2 = ApplicationDomainType::createEntity<SinkResource>(); |
544 | resource2.setCapabilities(QByteArrayList() << "cap2"); | 544 | resource2.setCapabilities(QByteArrayList() << "cap2"); |
545 | resource2.setResourceType("sink.dummy"); | 545 | resource2.setResourceType("sink.dummy"); |
546 | Store::create(resource2).exec().waitForFinished(); | 546 | VERIFYEXEC(Store::create(resource2)); |
547 | 547 | ||
548 | Folder folder1(resource1.identifier()); | 548 | Folder folder1(resource1.identifier()); |
549 | VERIFYEXEC(Sink::Store::create<Folder>(folder1)); | 549 | VERIFYEXEC(Sink::Store::create<Folder>(folder1)); |
@@ -552,7 +552,7 @@ private slots: | |||
552 | 552 | ||
553 | // Test | 553 | // Test |
554 | Sink::Query query; | 554 | Sink::Query query; |
555 | query.filter<Folder::Resource>(Sink::Query().containsFilter<SinkResource::Capabilities>("cap1")); | 555 | query.resourceContainsFilter<SinkResource::Capabilities>("cap1"); |
556 | 556 | ||
557 | // We fetch before the data is available and rely on the live query mechanism to deliver the actual data | 557 | // We fetch before the data is available and rely on the live query mechanism to deliver the actual data |
558 | auto folders = Sink::Store::read<Folder>(query); | 558 | auto folders = Sink::Store::read<Folder>(query); |