From abc90b737074d93f73490a77e1eb1e1666dac375 Mon Sep 17 00:00:00 2001 From: Christian Mollekopf Date: Wed, 6 Jul 2016 09:58:34 +0200 Subject: Test the resource status --- examples/dummyresource/resourcefactory.cpp | 13 +++++++++++++ examples/dummyresource/resourcefactory.h | 1 + tests/resourceconfigtest.cpp | 31 ++++++++++++++++++++++++++++++ 3 files changed, 45 insertions(+) diff --git a/examples/dummyresource/resourcefactory.cpp b/examples/dummyresource/resourcefactory.cpp index 2bd52cc..21a76ad 100644 --- a/examples/dummyresource/resourcefactory.cpp +++ b/examples/dummyresource/resourcefactory.cpp @@ -23,6 +23,7 @@ #include "entitybuffer.h" #include "pipeline.h" #include "dummycalendar_generated.h" +#include "notification_generated.h" #include "mail_generated.h" #include "createentity_generated.h" #include "domainadaptor.h" @@ -144,6 +145,18 @@ DummyResource::~DummyResource() } +KAsync::Job DummyResource::synchronizeWithSource() +{ + Trace() << "Synchronize with source and sending a notification about it"; + Sink::Notification n; + n.id = "connected"; + n.type = Sink::Notification::Status; + n.message = "We're connected"; + n.code = Sink::ApplicationDomain::ConnectedStatus; + emit notify(n); + return GenericResource::synchronizeWithSource(); +} + KAsync::Job DummyResource::inspect(int inspectionType, const QByteArray &inspectionId, const QByteArray &domainType, const QByteArray &entityId, const QByteArray &property, const QVariant &expectedValue) { diff --git a/examples/dummyresource/resourcefactory.h b/examples/dummyresource/resourcefactory.h index 1c51b00..a7d0281 100644 --- a/examples/dummyresource/resourcefactory.h +++ b/examples/dummyresource/resourcefactory.h @@ -35,6 +35,7 @@ public: DummyResource(const QByteArray &instanceIdentifier, const QSharedPointer &pipeline = QSharedPointer()); virtual ~DummyResource(); + KAsync::Job synchronizeWithSource() Q_DECL_OVERRIDE; KAsync::Job inspect(int inspectionType, const QByteArray &inspectionId, const QByteArray &domainType, const QByteArray &entityId, const QByteArray &property, const QVariant &expectedValue) Q_DECL_OVERRIDE; }; diff --git a/tests/resourceconfigtest.cpp b/tests/resourceconfigtest.cpp index bebff50..42f8b70 100644 --- a/tests/resourceconfigtest.cpp +++ b/tests/resourceconfigtest.cpp @@ -8,6 +8,8 @@ #include "modelresult.h" #include "resultprovider.h" #include "facadefactory.h" +#include "test.h" +#include "testutils.h" /** * Test of the resource configuration. @@ -19,6 +21,7 @@ private slots: void initTestCase() { + Sink::Test::initTest(); Sink::FacadeFactory::instance().resetFactory(); ResourceConfig::clear(); Sink::Log::setDebugOutputLevel(Sink::Log::Trace); @@ -72,6 +75,34 @@ private slots: Sink::Store::remove(res).exec().waitForFinished(); } + void testLoadResourceStatus() + { + ResourceConfig::clear(); + Sink::FacadeFactory::instance().registerStaticFacades(); + + Sink::ApplicationDomain::SinkResource res("", "dummyresource.identifier1", 0, QSharedPointer::create()); + res.setProperty("identifier", "dummyresource.identifier1"); + res.setProperty("type", "org.kde.dummy"); + res.setProperty("capabilities", QVariant::fromValue(QByteArrayList() << "foo")); + + Sink::Store::create(res).exec().waitForFinished(); + { + Sink::Query query; + query.liveQuery = true; + query.request(); + auto model = Sink::Store::loadModel(Sink::Query::CapabilityFilter("foo")); + QTRY_COMPARE(model->rowCount(QModelIndex()), 1); + auto resource = model->data(model->index(0, 0, QModelIndex()), Sink::Store::DomainObjectRole).value(); + QCOMPARE(resource->getStatus(), static_cast(Sink::ApplicationDomain::OfflineStatus)); + + //Synchronize to connect + VERIFYEXEC(Sink::Store::synchronize(query)); + QTRY_COMPARE(model->data(model->index(0, 0, QModelIndex()), Sink::Store::DomainObjectRole).value()->getStatus(), static_cast(Sink::ApplicationDomain::ConnectedStatus)); + } + + VERIFYEXEC(Sink::Store::remove(res)); + } + }; QTEST_MAIN(ResourceConfigTest) -- cgit v1.2.3