diff options
author | Christian Mollekopf <chrigi_1@fastmail.fm> | 2016-09-27 00:28:40 +0200 |
---|---|---|
committer | Christian Mollekopf <chrigi_1@fastmail.fm> | 2016-09-27 00:28:40 +0200 |
commit | fd532607ef29aac49b52c861e5aecda6dfa19e82 (patch) | |
tree | 3687ad63516a344f298c014c87a6f6209379a811 /tests/mailthreadtest.cpp | |
parent | 47b9f2109f57c1121b760ea6d885ab08f12c46b3 (diff) | |
download | sink-fd532607ef29aac49b52c861e5aecda6dfa19e82.tar.gz sink-fd532607ef29aac49b52c861e5aecda6dfa19e82.zip |
New query api
Diffstat (limited to 'tests/mailthreadtest.cpp')
-rw-r--r-- | tests/mailthreadtest.cpp | 26 |
1 files changed, 17 insertions, 9 deletions
diff --git a/tests/mailthreadtest.cpp b/tests/mailthreadtest.cpp index 89e5a85..e9fe499 100644 --- a/tests/mailthreadtest.cpp +++ b/tests/mailthreadtest.cpp | |||
@@ -66,10 +66,10 @@ void MailThreadTest::init() | |||
66 | void MailThreadTest::testListThreadLeader() | 66 | void MailThreadTest::testListThreadLeader() |
67 | { | 67 | { |
68 | Sink::Query query; | 68 | Sink::Query query; |
69 | query.resources << mResourceInstanceIdentifier; | 69 | query.filter(SinkResource(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.threadLeaderOnly = true; | ||
72 | query.sort<Mail::Date>(); | 71 | query.sort<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)); |
@@ -127,11 +127,11 @@ void MailThreadTest::testIndexInMixedOrder() | |||
127 | VERIFYEXEC(ResourceControl::flushMessageQueue(QByteArrayList() << mResourceInstanceIdentifier)); | 127 | VERIFYEXEC(ResourceControl::flushMessageQueue(QByteArrayList() << mResourceInstanceIdentifier)); |
128 | 128 | ||
129 | Sink::Query query; | 129 | Sink::Query query; |
130 | query.resources << mResourceInstanceIdentifier; | 130 | query.filter(SinkResource(mResourceInstanceIdentifier)); |
131 | query.request<Mail::Subject>().request<Mail::MimeMessage>().request<Mail::Folder>().request<Mail::Date>(); | 131 | query.request<Mail::Subject>().request<Mail::MimeMessage>().request<Mail::Folder>().request<Mail::Date>(); |
132 | query.threadLeaderOnly = true; | ||
133 | query.sort<Mail::Date>(); | ||
134 | query.filter<Mail::Folder>(folder); | 132 | query.filter<Mail::Folder>(folder); |
133 | query.sort<Mail::Date>(); | ||
134 | query.reduce<Mail::ThreadId>(Query::Reduce::Selector::max<Mail::Date>()); | ||
135 | 135 | ||
136 | Mail threadLeader; | 136 | Mail threadLeader; |
137 | 137 | ||
@@ -147,6 +147,14 @@ void MailThreadTest::testIndexInMixedOrder() | |||
147 | VERIFYEXEC(job); | 147 | VERIFYEXEC(job); |
148 | } | 148 | } |
149 | 149 | ||
150 | { | ||
151 | auto mail = Mail::create(mResourceInstanceIdentifier); | ||
152 | mail.setMimeMessage(message2->encodedContent()); | ||
153 | mail.setFolder(folder); | ||
154 | VERIFYEXEC(Store::create(mail)); | ||
155 | } | ||
156 | VERIFYEXEC(ResourceControl::flushMessageQueue(QByteArrayList() << mResourceInstanceIdentifier)); | ||
157 | |||
150 | //Ensure we find the thread leader still | 158 | //Ensure we find the thread leader still |
151 | { | 159 | { |
152 | auto job = Store::fetchAll<Mail>(query) | 160 | auto job = Store::fetchAll<Mail>(query) |
@@ -169,15 +177,15 @@ void MailThreadTest::testIndexInMixedOrder() | |||
169 | //Ensure the thread is complete | 177 | //Ensure the thread is complete |
170 | { | 178 | { |
171 | Sink::Query query; | 179 | Sink::Query query; |
172 | query.resources << mResourceInstanceIdentifier; | 180 | query.filter(SinkResource(mResourceInstanceIdentifier)); |
181 | query.ids << threadLeader.identifier(); | ||
173 | query.request<Mail::Subject>().request<Mail::MimeMessage>().request<Mail::Folder>().request<Mail::Date>(); | 182 | query.request<Mail::Subject>().request<Mail::MimeMessage>().request<Mail::Folder>().request<Mail::Date>(); |
174 | query.bloomThread = true; | ||
175 | query.sort<Mail::Date>(); | 183 | query.sort<Mail::Date>(); |
176 | query.ids << threadLeader.identifier(); | 184 | query.bloom<Mail::ThreadId>(); |
177 | 185 | ||
178 | auto job = Store::fetchAll<Mail>(query) | 186 | auto job = Store::fetchAll<Mail>(query) |
179 | .syncThen<void, QList<Mail::Ptr>>([=](const QList<Mail::Ptr> &mails) { | 187 | .syncThen<void, QList<Mail::Ptr>>([=](const QList<Mail::Ptr> &mails) { |
180 | QCOMPARE(mails.size(), 2); | 188 | QCOMPARE(mails.size(), 3); |
181 | auto mail = *mails.first(); | 189 | auto mail = *mails.first(); |
182 | QCOMPARE(mail.getSubject(), QString::fromLatin1("Re: Re: 1")); | 190 | QCOMPARE(mail.getSubject(), QString::fromLatin1("Re: Re: 1")); |
183 | }); | 191 | }); |