diff options
author | Christian Mollekopf <chrigi_1@fastmail.fm> | 2017-07-05 23:40:34 +0200 |
---|---|---|
committer | Christian Mollekopf <chrigi_1@fastmail.fm> | 2017-07-05 23:40:34 +0200 |
commit | 09fba6f07c87aec84c80ce65136f0b7333b0b0bd (patch) | |
tree | 4c55c16a69133659058953473ab8571da41b6aff /tests/notificationtest.cpp | |
parent | 691a11e8865c43a3cadf8e64df0612a81b08bf15 (diff) | |
download | sink-09fba6f07c87aec84c80ce65136f0b7333b0b0bd.tar.gz sink-09fba6f07c87aec84c80ce65136f0b7333b0b0bd.zip |
Keep notifier alive for notifications of new resources.
Necessary to get notifications for newly created resources.
Diffstat (limited to 'tests/notificationtest.cpp')
-rw-r--r-- | tests/notificationtest.cpp | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/tests/notificationtest.cpp b/tests/notificationtest.cpp index 3182d8e..2b54c26 100644 --- a/tests/notificationtest.cpp +++ b/tests/notificationtest.cpp | |||
@@ -135,6 +135,34 @@ private slots: | |||
135 | //Modification triggered during sync | 135 | //Modification triggered during sync |
136 | QCOMPARE(status.at(2), static_cast<int>(ApplicationDomain::SyncStatus::SyncSuccess)); | 136 | QCOMPARE(status.at(2), static_cast<int>(ApplicationDomain::SyncStatus::SyncSuccess)); |
137 | } | 137 | } |
138 | |||
139 | void testNotifier() | ||
140 | { | ||
141 | QList<int> status; | ||
142 | Sink::Notifier notifier{Sink::Query{Sink::Query::LiveQuery}.resourceFilter("sink.dummy.instance2")}; | ||
143 | notifier.registerHandler([&] (const Sink::Notification ¬ification) { | ||
144 | if (notification.type == Notification::Info) { | ||
145 | status << notification.code; | ||
146 | } | ||
147 | }); | ||
148 | |||
149 | auto query = Query().resourceFilter("sink.dummy.instance2"); | ||
150 | query.setType<ApplicationDomain::Mail>(); | ||
151 | query.setFlags(Query::LiveQuery | Query::UpdateStatus); | ||
152 | |||
153 | auto resource = ApplicationDomain::ApplicationDomainType::createEntity<ApplicationDomain::SinkResource>("", "sink.dummy.instance2"); | ||
154 | resource.setResourceType("sink.dummy"); | ||
155 | VERIFYEXEC(Store::create(resource)); | ||
156 | |||
157 | VERIFYEXEC(Sink::Store::synchronize(query)); | ||
158 | VERIFYEXEC(Sink::ResourceControl::flushMessageQueue(QByteArrayList() << "sink.dummy.instance2")); | ||
159 | |||
160 | QTRY_COMPARE(status.size(), 2); | ||
161 | //Sync progress of item | ||
162 | QCOMPARE(status.at(0), static_cast<int>(ApplicationDomain::SyncStatus::SyncInProgress)); | ||
163 | QCOMPARE(status.at(1), static_cast<int>(ApplicationDomain::SyncStatus::SyncSuccess)); | ||
164 | } | ||
165 | |||
138 | }; | 166 | }; |
139 | 167 | ||
140 | QTEST_MAIN(NotificationTest) | 168 | QTEST_MAIN(NotificationTest) |