diff --git a/src/akonadi/akonadicachingstorage.h b/src/akonadi/akonadicachingstorage.h --- a/src/akonadi/akonadicachingstorage.h +++ b/src/akonadi/akonadicachingstorage.h @@ -40,7 +40,7 @@ KJob *createItem(Item item, Collection collection) override; KJob *updateItem(Item item, QObject *parent) override; - KJob *removeItem(Akonadi::Item item) override; + KJob *removeItem(Akonadi::Item item, QObject *parent) override; KJob *removeItems(Item::List items, QObject *parent) override; KJob *moveItem(Item item, Collection collection, QObject *parent) override; KJob *moveItems(Item::List item, Collection collection, QObject *parent = nullptr) override; diff --git a/src/akonadi/akonadicachingstorage.cpp b/src/akonadi/akonadicachingstorage.cpp --- a/src/akonadi/akonadicachingstorage.cpp +++ b/src/akonadi/akonadicachingstorage.cpp @@ -323,9 +323,9 @@ return m_storage->updateItem(item, parent); } -KJob *CachingStorage::removeItem(Item item) +KJob *CachingStorage::removeItem(Item item, QObject *parent) { - return m_storage->removeItem(item); + return m_storage->removeItem(item, parent); } KJob *CachingStorage::removeItems(Item::List items, QObject *parent) diff --git a/src/akonadi/akonadicontextrepository.cpp b/src/akonadi/akonadicontextrepository.cpp --- a/src/akonadi/akonadicontextrepository.cpp +++ b/src/akonadi/akonadicontextrepository.cpp @@ -59,7 +59,7 @@ { auto item = m_serializer->createItemFromContext(context); Q_ASSERT(item.isValid()); - return m_storage->removeItem(item); + return m_storage->removeItem(item, this); } KJob *ContextRepository::associate(Domain::Context::Ptr context, Domain::Task::Ptr child) diff --git a/src/akonadi/akonadiprojectrepository.cpp b/src/akonadi/akonadiprojectrepository.cpp --- a/src/akonadi/akonadiprojectrepository.cpp +++ b/src/akonadi/akonadiprojectrepository.cpp @@ -57,7 +57,7 @@ { auto item = m_serializer->createItemFromProject(project); Q_ASSERT(item.isValid()); - return m_storage->removeItem(item); + return m_storage->removeItem(item, this); } KJob *ProjectRepository::associate(Domain::Project::Ptr parent, Domain::Task::Ptr child) diff --git a/src/akonadi/akonadistorage.h b/src/akonadi/akonadistorage.h --- a/src/akonadi/akonadistorage.h +++ b/src/akonadi/akonadistorage.h @@ -41,7 +41,7 @@ KJob *createItem(Item item, Collection collection) override; KJob *updateItem(Item item, QObject *parent) override; - KJob *removeItem(Akonadi::Item item) override; + KJob *removeItem(Akonadi::Item item, QObject *parent) override; KJob *removeItems(Item::List items, QObject *parent) override; KJob *moveItem(Item item, Collection collection, QObject *parent) override; KJob *moveItems(Item::List item, Collection collection, QObject *parent) override; diff --git a/src/akonadi/akonadistorage.cpp b/src/akonadi/akonadistorage.cpp --- a/src/akonadi/akonadistorage.cpp +++ b/src/akonadi/akonadistorage.cpp @@ -153,9 +153,9 @@ return new ItemModifyJob(item, parent); } -KJob *Storage::removeItem(Item item) +KJob *Storage::removeItem(Item item, QObject *parent) { - return new ItemDeleteJob(item); + return new ItemDeleteJob(item, parent); } KJob *Storage::removeItems(Item::List items, QObject *parent) diff --git a/src/akonadi/akonadistorageinterface.h b/src/akonadi/akonadistorageinterface.h --- a/src/akonadi/akonadistorageinterface.h +++ b/src/akonadi/akonadistorageinterface.h @@ -56,7 +56,7 @@ virtual KJob *createItem(Akonadi::Item item, Akonadi::Collection collection) = 0; virtual KJob *updateItem(Akonadi::Item item, QObject *parent) = 0; - virtual KJob *removeItem(Akonadi::Item item) = 0; + virtual KJob *removeItem(Akonadi::Item item, QObject *parent) = 0; virtual KJob *removeItems(Item::List items, QObject *parent) = 0; virtual KJob *moveItem(Item item, Collection collection, QObject *parent) = 0; virtual KJob *moveItems(Item::List item, Collection collection, QObject *parent) = 0; diff --git a/tests/testlib/akonadifakestorage.h b/tests/testlib/akonadifakestorage.h --- a/tests/testlib/akonadifakestorage.h +++ b/tests/testlib/akonadifakestorage.h @@ -39,7 +39,7 @@ KJob *createItem(Akonadi::Item item, Akonadi::Collection collection) override; KJob *updateItem(Akonadi::Item item, QObject *parent) override; - KJob *removeItem(Akonadi::Item item) override; + KJob *removeItem(Akonadi::Item item, QObject *parent) override; KJob *removeItems(Akonadi::Item::List items, QObject *parent) override; KJob *moveItem(Akonadi::Item item, Akonadi::Collection collection, QObject *parent) override; KJob *moveItems(Akonadi::Item::List items, Akonadi::Collection collection, QObject *parent) override; diff --git a/tests/testlib/akonadifakestorage.cpp b/tests/testlib/akonadifakestorage.cpp --- a/tests/testlib/akonadifakestorage.cpp +++ b/tests/testlib/akonadifakestorage.cpp @@ -149,9 +149,9 @@ return job; } -KJob *AkonadiFakeStorage::removeItem(Akonadi::Item item) +KJob *AkonadiFakeStorage::removeItem(Akonadi::Item item, QObject *parent) { - auto job = new FakeJob; + auto job = new FakeJob(parent); if (m_data->item(item.id()).isValid()) { Utils::JobHandler::install(job, [=] { if (!job->error()) { diff --git a/tests/testlib/akonadistoragetestbase.cpp b/tests/testlib/akonadistoragetestbase.cpp --- a/tests/testlib/akonadistoragetestbase.cpp +++ b/tests/testlib/akonadistoragetestbase.cpp @@ -334,7 +334,7 @@ // WHEN auto storage = createStorage(); - auto job = storage->removeItem(item); + auto job = storage->removeItem(item, nullptr); AKVERIFYEXEC(job); monitorSpy.waitForStableState(); QTRY_VERIFY(!spy.isEmpty()); @@ -625,7 +625,7 @@ QVERIFY(item.isValid()); //When - auto job = storage->removeItem(item); + auto job = storage->removeItem(item, nullptr); AKVERIFYEXEC(job); monitorSpy.waitForStableState(); QTRY_VERIFY(!spy.isEmpty()); diff --git a/tests/units/akonadi/akonadicontextrepositorytest.cpp b/tests/units/akonadi/akonadicontextrepositorytest.cpp --- a/tests/units/akonadi/akonadicontextrepositorytest.cpp +++ b/tests/units/akonadi/akonadicontextrepositorytest.cpp @@ -115,23 +115,24 @@ // A mock job auto contextItemDeleteJob = new FakeJob(this); - // Storage mock returning the mock job Utils::MockObject storageMock; - storageMock(&Akonadi::StorageInterface::removeItem).when(contextItem) + Utils::MockObject serializerMock; + QScopedPointer repository(new Akonadi::ContextRepository(storageMock.getInstance(), + serializerMock.getInstance())); + + // Storage mock returning the mock job + storageMock(&Akonadi::StorageInterface::removeItem).when(contextItem, repository.get()) .thenReturn(contextItemDeleteJob); // Serializer mock - Utils::MockObject serializerMock; serializerMock(&Akonadi::SerializerInterface::createItemFromContext).when(context).thenReturn(contextItem); // WHEN - QScopedPointer repository(new Akonadi::ContextRepository(storageMock.getInstance(), - serializerMock.getInstance())); repository->remove(context)->exec(); // THEN QVERIFY(serializerMock(&Akonadi::SerializerInterface::createItemFromContext).when(context).exactly(1)); - QVERIFY(storageMock(&Akonadi::StorageInterface::removeItem).when(contextItem).exactly(1)); + QVERIFY(storageMock(&Akonadi::StorageInterface::removeItem).when(contextItem, repository.get()).exactly(1)); } void shouldAssociateATaskToAContext_data() diff --git a/tests/units/akonadi/akonadiprojectrepositorytest.cpp b/tests/units/akonadi/akonadiprojectrepositorytest.cpp --- a/tests/units/akonadi/akonadiprojectrepositorytest.cpp +++ b/tests/units/akonadi/akonadiprojectrepositorytest.cpp @@ -116,22 +116,23 @@ // A mock remove job auto itemRemoveJob = new FakeJob(this); - // Storage mock returning the create job Utils::MockObject storageMock; - storageMock(&Akonadi::StorageInterface::removeItem).when(item) + Utils::MockObject serializerMock; + QScopedPointer repository(new Akonadi::ProjectRepository(storageMock.getInstance(), + serializerMock.getInstance())); + + // Storage mock returning the create job + storageMock(&Akonadi::StorageInterface::removeItem).when(item, repository.get()) .thenReturn(itemRemoveJob); // Serializer mock returning the item for the project - Utils::MockObject serializerMock; serializerMock(&Akonadi::SerializerInterface::createItemFromProject).when(project).thenReturn(item); // WHEN - QScopedPointer repository(new Akonadi::ProjectRepository(storageMock.getInstance(), - serializerMock.getInstance())); repository->remove(project)->exec(); // THEN - QVERIFY(storageMock(&Akonadi::StorageInterface::removeItem).when(item).exactly(1)); + QVERIFY(storageMock(&Akonadi::StorageInterface::removeItem).when(item, repository.get()).exactly(1)); } void shouldAssociateATaskToAProject_data()