From 5374dcfd39d9a0ee5b493e93419018b734781c4a Mon Sep 17 00:00:00 2001 From: Christian Mollekopf Date: Thu, 16 Feb 2017 20:14:49 +0100 Subject: Fixed multimodifications --- tests/clientapitest.cpp | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) (limited to 'tests') diff --git a/tests/clientapitest.cpp b/tests/clientapitest.cpp index fb1bdeb..ea72ae0 100644 --- a/tests/clientapitest.cpp +++ b/tests/clientapitest.cpp @@ -34,10 +34,14 @@ public: ~TestDummyResourceFacade(){}; KAsync::Job create(const T &domainObject) Q_DECL_OVERRIDE { + SinkLogCtx(Sink::Log::Context{"test"}) << "Create: " << domainObject; + creations << domainObject; return KAsync::null(); }; KAsync::Job modify(const T &domainObject) Q_DECL_OVERRIDE { + SinkLogCtx(Sink::Log::Context{"test"}) << "Modify: " << domainObject; + modifications << domainObject; return KAsync::null(); }; KAsync::Job move(const T &domainObject, const QByteArray &) Q_DECL_OVERRIDE @@ -50,6 +54,8 @@ public: }; KAsync::Job remove(const T &domainObject) Q_DECL_OVERRIDE { + SinkLogCtx(Sink::Log::Context{"test"}) << "Remove: " << domainObject; + removals << domainObject; return KAsync::null(); }; QPair, typename Sink::ResultEmitter::Ptr> load(const Sink::Query &query, const Sink::Log::Context &ctx) Q_DECL_OVERRIDE @@ -102,6 +108,9 @@ public: Sink::ResultProviderInterface *mResultProvider; bool runAsync = false; int offset = 0; + QList creations; + QList modifications; + QList removals; }; @@ -333,6 +342,39 @@ private slots: QVERIFY(!model->canFetchMore(QModelIndex())); } + void testCreateModifyDelete() + { + auto facade = TestDummyResourceFacade::registerFacade(); + ResourceConfig::addResource("dummyresource.instance1", "dummyresource"); + + auto event = Sink::ApplicationDomain::Event::createEntity("dummyresource.instance1"); + Sink::Store::create(event).exec().waitForFinished(); + QCOMPARE(facade->creations.size(), 1); + Sink::Store::modify(event).exec().waitForFinished(); + QCOMPARE(facade->modifications.size(), 1); + Sink::Store::remove(event).exec().waitForFinished(); + QCOMPARE(facade->removals.size(), 1); + + } + void testMultiModify() + { + auto facade = TestDummyResourceFacade::registerFacade(); + facade->results << QSharedPointer::create("dummyresource.instance1", "id1", 0, QSharedPointer::create()); + facade->results << QSharedPointer::create("dummyresource.instance1", "id2", 0, QSharedPointer::create()); + ResourceConfig::addResource("dummyresource.instance1", "dummyresource"); + + Sink::Query query; + query.resourceFilter("dummyresource.instance1"); + + auto event = Sink::ApplicationDomain::Event::createEntity("dummyresource.instance1"); + event.setUid("modifiedUid"); + Sink::Store::modify(query, event).exec().waitForFinished(); + QCOMPARE(facade->modifications.size(), 2); + for (const auto &m : facade->modifications) { + QCOMPARE(m.getUid(), QString("modifiedUid")); + } + } + void testModelStress() { auto facade = TestDummyResourceFacade::registerFacade(); -- cgit v1.2.3