From 09fba6f07c87aec84c80ce65136f0b7333b0b0bd Mon Sep 17 00:00:00 2001 From: Christian Mollekopf Date: Wed, 5 Jul 2017 23:40:34 +0200 Subject: Keep notifier alive for notifications of new resources. Necessary to get notifications for newly created resources. --- tests/notificationtest.cpp | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) (limited to 'tests') 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: //Modification triggered during sync QCOMPARE(status.at(2), static_cast(ApplicationDomain::SyncStatus::SyncSuccess)); } + + void testNotifier() + { + QList status; + Sink::Notifier notifier{Sink::Query{Sink::Query::LiveQuery}.resourceFilter("sink.dummy.instance2")}; + notifier.registerHandler([&] (const Sink::Notification ¬ification) { + if (notification.type == Notification::Info) { + status << notification.code; + } + }); + + auto query = Query().resourceFilter("sink.dummy.instance2"); + query.setType(); + query.setFlags(Query::LiveQuery | Query::UpdateStatus); + + auto resource = ApplicationDomain::ApplicationDomainType::createEntity("", "sink.dummy.instance2"); + resource.setResourceType("sink.dummy"); + VERIFYEXEC(Store::create(resource)); + + VERIFYEXEC(Sink::Store::synchronize(query)); + VERIFYEXEC(Sink::ResourceControl::flushMessageQueue(QByteArrayList() << "sink.dummy.instance2")); + + QTRY_COMPARE(status.size(), 2); + //Sync progress of item + QCOMPARE(status.at(0), static_cast(ApplicationDomain::SyncStatus::SyncInProgress)); + QCOMPARE(status.at(1), static_cast(ApplicationDomain::SyncStatus::SyncSuccess)); + } + }; QTEST_MAIN(NotificationTest) -- cgit v1.2.3