From 0079a50028413ce7e95b74505c9e1b144e0626be Mon Sep 17 00:00:00 2001 From: Christian Mollekopf Date: Mon, 9 May 2016 10:20:52 +0200 Subject: Index last Otherwise we don't index what is going to be stored. --- tests/maildirresourcetest.cpp | 33 +++++++++++++++++++++++++++++++-- 1 file changed, 31 insertions(+), 2 deletions(-) (limited to 'tests') diff --git a/tests/maildirresourcetest.cpp b/tests/maildirresourcetest.cpp index ec685a6..f53750f 100644 --- a/tests/maildirresourcetest.cpp +++ b/tests/maildirresourcetest.cpp @@ -71,6 +71,9 @@ private slots: { targetPath = tempDir.path() + "/maildir1/"; + //FIXME initTest only works for the current process, + //we also have to start resources in test-mode + // Sink::Test::initTest(); Sink::Log::setDebugOutputLevel(Sink::Log::Trace); MaildirResource::removeFromDisk("org.kde.maildir.instance1"); Sink::ApplicationDomain::SinkResource resource; @@ -306,6 +309,8 @@ private slots: Sink::ApplicationDomain::Mail mail("org.kde.maildir.instance1"); mail.setBlobProperty("mimeMessage", message->encodedContent()); + //FIXME generate accessors + // mail.setMimeMessage(message->encodedContent()); Sink::Store::create(mail).exec().waitForFinished(); @@ -331,6 +336,11 @@ private slots: // Ensure all local data is processed Sink::ResourceControl::flushMessageQueue(query.resources).exec().waitForFinished(); + //TODO + //create folder + //create mail in folder + //ensure mail is in folder + // auto folder = Sink::ApplicationDomain::ApplicationDomainType::createEntity("org.kde.maildir.instance1"); folder.setProperty("name", "newfolder"); @@ -345,10 +355,14 @@ private slots: mail.setProperty("folder", folder); Sink::Store::create(mail).exec().waitForFinished(); + // .then() + // .exec().waitForFinished(); + // Sink::ResourceControl::flushMessageQueue(query.resources).exec().waitForFinished(); auto future = Sink::Store::fetchOne(Query::IdentityFilter(mail.identifier()) + Query::RequestedProperties(QByteArrayList() << "mimeMessage" << "folder")) .then([folder](const ApplicationDomain::Mail &mail) { + // qDebug() << "Retrieved draft: " << mail.getProperty("folder") << mail.identifier() << mail.getProperty("mimeMessage").toString(); QCOMPARE(mail.getProperty("folder").toByteArray(), folder.identifier()); }).exec(); future.waitForFinished(); @@ -459,6 +473,7 @@ private slots: message->assemble(); auto mail = Sink::ApplicationDomain::ApplicationDomainType::createEntity("org.kde.maildir.instance1"); + // Sink::ApplicationDomain::Mail::create("org.kde.maildir.instance1"); mail.setBlobProperty("mimeMessage", message->encodedContent()); mail.setProperty("draft", true); @@ -467,15 +482,29 @@ private slots: // Ensure all local data is processed Sink::ResourceControl::flushMessageQueue(query.resources).exec().waitForFinished(); + QByteArray folderIdentifier; auto future = Sink::Store::fetchOne(Query::IdentityFilter(mail.identifier()) + Query::RequestedProperties(QByteArrayList() << "mimeMessage" << "folder")) - .then([](const ApplicationDomain::Mail &mail) { - QVERIFY(!mail.getProperty("folder").toByteArray().isEmpty()); + .then([&](const ApplicationDomain::Mail &mail) { + folderIdentifier = mail.getProperty("folder").toByteArray(); + QVERIFY(!folderIdentifier.isEmpty()); }).exec(); future.waitForFinished(); if (future.errorCode()) { qWarning() << future.errorCode() << future.errorMessage(); } QVERIFY(!future.errorCode()); + + //Ensure we can also query by folder + Sink::Store::fetchAll(Query::PropertyFilter("folder", folderIdentifier)) + .then >([&](const QList &mails) { + bool found = false; + for (const auto m : mails) { + if (m->identifier() == mail.identifier()) { + found = true; + } + } + QVERIFY(found); + }).exec().waitForFinished(); } }; -- cgit v1.2.3