#include #include #include #include "store.h" #include "facade.h" #include "resourceconfig.h" #include "modelresult.h" #include "resultprovider.h" #include "facadefactory.h" #include "test.h" #include "testutils.h" /** * Test of the resource configuration. */ class ResourceConfigTest : public QObject { Q_OBJECT private slots: void initTestCase() { Sink::Test::initTest(); Sink::FacadeFactory::instance().resetFactory(); ResourceConfig::clear(); } void resourceManagement() { ResourceConfig::clear(); Sink::FacadeFactory::instance().registerStaticFacades(); Sink::ApplicationDomain::SinkResource res("", "dummyresource.identifier1", 0, QSharedPointer::create()); res.setProperty("identifier", "dummyresource.identifier1"); res.setProperty("type", "dummyresource"); Sink::Store::create(res).exec().waitForFinished(); { Sink::Query query; query.propertyFilter.insert("type", Sink::Query::Comparator("dummyresource")); auto model = Sink::Store::loadModel(query); QTRY_COMPARE(model->rowCount(QModelIndex()), 1); } Sink::Store::remove(res).exec().waitForFinished(); { Sink::Query query; query.propertyFilter.insert("type", Sink::Query::Comparator("dummyresource")); auto model = Sink::Store::loadModel(query); QTRY_VERIFY(model->data(QModelIndex(), Sink::Store::ChildrenFetchedRole).toBool()); QCOMPARE(model->rowCount(QModelIndex()), 0); } } void testLoadResourceByCapabiity() { ResourceConfig::clear(); Sink::FacadeFactory::instance().registerStaticFacades(); Sink::ApplicationDomain::SinkResource res("", "dummyresource.identifier1", 0, QSharedPointer::create()); res.setProperty("identifier", "dummyresource.identifier1"); res.setProperty("type", "dummyresource"); res.setProperty("capabilities", QVariant::fromValue(QByteArrayList() << "foo")); Sink::Store::create(res).exec().waitForFinished(); { Sink::Query query; query.propertyFilter.insert("type", Sink::Query::Comparator("dummyresource")); auto model = Sink::Store::loadModel(Sink::Query::CapabilityFilter("foo")); QTRY_COMPARE(model->rowCount(QModelIndex()), 1); } Sink::Store::remove(res).exec().waitForFinished(); } void testLoadResourceStatus() { ResourceConfig::clear(); Sink::FacadeFactory::instance().registerStaticFacades(); auto res = Sink::ApplicationDomain::DummyResource::create(""); VERIFYEXEC(Sink::Store::create(res)); { Sink::Query query; query.liveQuery = true; query.request(); auto model = Sink::Store::loadModel(query); 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) #include "resourceconfigtest.moc"