From 3ae3ef9676bd7fdcb45064f9a1b397c90478b4b7 Mon Sep 17 00:00:00 2001 From: Christian Mollekopf Date: Tue, 4 Oct 2016 17:12:02 +0200 Subject: Resource subqueries --- tests/querytest.cpp | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) (limited to 'tests') diff --git a/tests/querytest.cpp b/tests/querytest.cpp index 6011a99..6348316 100644 --- a/tests/querytest.cpp +++ b/tests/querytest.cpp @@ -528,6 +528,36 @@ private slots: QCOMPARE(mails.size(), 1); QCOMPARE(mails.first().getUid().toLatin1(), QByteArray("mail1")); } + + void testResourceSubQuery() + { + using namespace Sink; + using namespace Sink::ApplicationDomain; + + //Setup + auto resource1 = ApplicationDomainType::createEntity(); + resource1.setResourceType("sink.dummy"); + resource1.setCapabilities(QByteArrayList() << "cap1"); + Store::create(resource1).exec().waitForFinished(); + + auto resource2 = ApplicationDomainType::createEntity(); + resource2.setCapabilities(QByteArrayList() << "cap2"); + resource2.setResourceType("sink.dummy"); + Store::create(resource2).exec().waitForFinished(); + + Folder folder1(resource1.identifier()); + VERIFYEXEC(Sink::Store::create(folder1)); + Folder folder2(resource2.identifier()); + VERIFYEXEC(Sink::Store::create(folder2)); + + // Test + Sink::Query query; + query.filter(Sink::Query().containsFilter("cap1")); + + // We fetch before the data is available and rely on the live query mechanism to deliver the actual data + auto folders = Sink::Store::read(query); + QCOMPARE(folders.size(), 1); + } }; QTEST_MAIN(QueryTest) -- cgit v1.2.3