diff --git a/src/presentation/availabletaskpagesmodel.h b/src/presentation/availabletaskpagesmodel.h --- a/src/presentation/availabletaskpagesmodel.h +++ b/src/presentation/availabletaskpagesmodel.h @@ -33,8 +33,6 @@ #include "domain/noterepository.h" #include "domain/projectqueries.h" #include "domain/projectrepository.h" -#include "domain/tagqueries.h" -#include "domain/tagrepository.h" #include "domain/taskqueries.h" #include "domain/taskrepository.h" @@ -55,10 +53,7 @@ const Domain::ContextQueries::Ptr &contextQueries, const Domain::ContextRepository::Ptr &contextRepository, const Domain::TaskQueries::Ptr &taskQueries, - const Domain::TaskRepository::Ptr &taskRepository, - const Domain::NoteRepository::Ptr ¬eRepository, - const Domain::TagQueries::Ptr &tagQueries, - const Domain::TagRepository::Ptr &tagRepository, + const Domain::TaskRepository::Ptr &taskRepository, const Domain::NoteRepository::Ptr ¬eRepository, QObject *parent = Q_NULLPTR); QAbstractItemModel *pageListModel() Q_DECL_OVERRIDE; @@ -89,15 +84,11 @@ Domain::NoteRepository::Ptr m_noteRepository; - Domain::TagQueries::Ptr m_tagQueries; - Domain::TagRepository::Ptr m_tagRepository; - Domain::QueryResultProvider::Ptr m_rootsProvider; QObjectPtr m_inboxObject; QObjectPtr m_workdayObject; QObjectPtr m_projectsObject; QObjectPtr m_contextsObject; - QObjectPtr m_tagsObject; }; } diff --git a/src/presentation/availabletaskpagesmodel.cpp b/src/presentation/availabletaskpagesmodel.cpp --- a/src/presentation/availabletaskpagesmodel.cpp +++ b/src/presentation/availabletaskpagesmodel.cpp @@ -31,18 +31,14 @@ #include "domain/contextrepository.h" #include "domain/projectqueries.h" #include "domain/projectrepository.h" -#include "domain/tag.h" -#include "domain/tagqueries.h" -#include "domain/tagrepository.h" #include "domain/taskrepository.h" #include "presentation/availablepagessortfilterproxymodel.h" #include "presentation/contextpagemodel.h" #include "presentation/inboxpagemodel.h" #include "presentation/metatypes.h" #include "presentation/projectpagemodel.h" #include "presentation/querytreemodel.h" -#include "presentation/tagpagemodel.h" #include "presentation/workdaypagemodel.h" #include "utils/jobhandler.h" @@ -58,8 +54,6 @@ const Domain::TaskQueries::Ptr &taskQueries, const Domain::TaskRepository::Ptr &taskRepository, const Domain::NoteRepository::Ptr ¬eRepository, - const Domain::TagQueries::Ptr &tagQueries, - const Domain::TagRepository::Ptr &tagRepository, QObject *parent) : AvailablePagesModelInterface(parent), m_pageListModel(Q_NULLPTR), @@ -71,9 +65,7 @@ m_contextRepository(contextRepository), m_taskQueries(taskQueries), m_taskRepository(taskRepository), - m_noteRepository(noteRepository), - m_tagQueries(tagQueries), - m_tagRepository(tagRepository) + m_noteRepository(noteRepository) { } @@ -122,16 +114,6 @@ this); contextPageModel->setErrorHandler(errorHandler()); return contextPageModel; - } else if (auto tag = object.objectCast()) { - auto tagPageModel = new TagPageModel(tag, - m_tagQueries, - m_tagRepository, - m_taskQueries, - m_taskRepository, - m_noteRepository, - this); - tagPageModel->setErrorHandler(errorHandler()); - return tagPageModel; } return Q_NULLPTR; @@ -153,12 +135,9 @@ installHandler(job, tr("Cannot add context %1").arg(name)); } -void AvailableTaskPagesModel::addTag(const QString &name) +void AvailableTaskPagesModel::addTag(const QString &) { - auto tag = Domain::Tag::Ptr::create(); - tag->setName(name); - const auto job = m_tagRepository->create(tag); - installHandler(job, tr("Cannot add tag %1").arg(name)); + qFatal("Not supported"); } void AvailableTaskPagesModel::removeItem(const QModelIndex &index) @@ -170,9 +149,6 @@ } else if (auto context = object.objectCast()) { const auto job = m_contextRepository->remove(context); installHandler(job, tr("Cannot remove context %1").arg(context->name())); - } else if (auto tag = object.objectCast()) { - const auto job = m_tagRepository->remove(tag); - installHandler(job, tr("Cannot remove tag %1").arg(tag->name())); } else { Q_ASSERT(false); } @@ -188,25 +164,20 @@ m_projectsObject->setProperty("name", tr("Projects")); m_contextsObject = QObjectPtr::create(); m_contextsObject->setProperty("name", tr("Contexts")); - m_tagsObject = QObjectPtr::create(); - m_tagsObject->setProperty("name", tr("Tags")); m_rootsProvider = Domain::QueryResultProvider::Ptr::create(); m_rootsProvider->append(m_inboxObject); m_rootsProvider->append(m_workdayObject); m_rootsProvider->append(m_projectsObject); m_rootsProvider->append(m_contextsObject); - m_rootsProvider->append(m_tagsObject); auto query = [this](const QObjectPtr &object) -> Domain::QueryResultInterface::Ptr { if (!object) return Domain::QueryResult::create(m_rootsProvider); else if (object == m_projectsObject) return Domain::QueryResult::copy(m_projectQueries->findAll()); else if (object == m_contextsObject) return Domain::QueryResult::copy(m_contextQueries->findAll()); - else if (object == m_tagsObject) - return Domain::QueryResult::copy(m_tagQueries->findAll()); else return Domain::QueryResult::Ptr(); }; @@ -223,7 +194,6 @@ return object.objectCast() ? defaultFlags : object.objectCast() ? defaultFlags - : object.objectCast() ? defaultFlags : object == m_inboxObject ? immutableNodeFlags : object == m_workdayObject ? immutableNodeFlags : structureNodeFlags; @@ -241,8 +211,7 @@ && (object == m_inboxObject || object == m_workdayObject || object == m_projectsObject - || object == m_contextsObject - || object == m_tagsObject)) { + || object == m_contextsObject)) { return QVariant(); } @@ -253,7 +222,6 @@ : (object == m_workdayObject) ? "go-jump-today" : (object == m_projectsObject) ? "folder" : (object == m_contextsObject) ? "folder" - : (object == m_tagsObject) ? "folder" : "view-pim-tasks"; if (role == Qt::DecorationRole) @@ -273,8 +241,7 @@ if (object == m_inboxObject || object == m_workdayObject || object == m_projectsObject - || object == m_contextsObject - || object == m_tagsObject) { + || object == m_contextsObject) { return false; } @@ -288,8 +255,6 @@ context->setName(value.toString()); const auto job = m_contextRepository->update(context); installHandler(job, tr("Cannot modify context %1").arg(currentName)); - } else if (object.objectCast()) { - return false; // Tag renaming is NOT allowed } else { Q_ASSERT(false); } @@ -324,12 +289,6 @@ installHandler(job, tr("Cannot add %1 to context %2").arg(task->title()).arg(context->name())); } return true; - } else if (auto tag = object.objectCast()) { - foreach (const auto &droppedArtifact, droppedArtifacts) { - const auto job = m_tagRepository->associate(tag, droppedArtifact); - installHandler(job, tr("Cannot tag %1 with %2").arg(droppedArtifact->title()).arg(tag->name())); - } - return true; } else if (object == m_inboxObject) { foreach (const auto &droppedArtifact, droppedArtifacts) { const auto job = m_projectRepository->dissociate(droppedArtifact); diff --git a/src/presentation/taskapplicationmodel.cpp b/src/presentation/taskapplicationmodel.cpp --- a/src/presentation/taskapplicationmodel.cpp +++ b/src/presentation/taskapplicationmodel.cpp @@ -67,7 +67,5 @@ m_taskQueries, m_taskRepository, m_noteRepository, - m_tagQueries, - m_tagRepository, this); } diff --git a/tests/features/zanshin/features/contexts/context-add.feature b/tests/features/zanshin/features/contexts/context-add.feature --- a/tests/features/zanshin/features/contexts/context-add.feature +++ b/tests/features/zanshin/features/contexts/context-add.feature @@ -20,7 +20,4 @@ | Contexts / Errands | view-pim-tasks | | Contexts / Internet | view-pim-tasks | | Contexts / Online | view-pim-tasks | - | Tags | folder | - | Tags / Philosophy | view-pim-tasks | - | Tags / Physics | view-pim-tasks | diff --git a/tests/features/zanshin/features/contexts/context-edit.feature b/tests/features/zanshin/features/contexts/context-edit.feature --- a/tests/features/zanshin/features/contexts/context-edit.feature +++ b/tests/features/zanshin/features/contexts/context-edit.feature @@ -19,6 +19,3 @@ | Contexts / Chores | view-pim-tasks | | Contexts / Internet | view-pim-tasks | | Contexts / Online | view-pim-tasks | - | Tags | folder | - | Tags / Philosophy | view-pim-tasks | - | Tags / Physics | view-pim-tasks | diff --git a/tests/features/zanshin/features/contexts/context-remove.feature b/tests/features/zanshin/features/contexts/context-remove.feature --- a/tests/features/zanshin/features/contexts/context-remove.feature +++ b/tests/features/zanshin/features/contexts/context-remove.feature @@ -18,7 +18,4 @@ | Projects / Backlog | view-pim-tasks | | Projects / Prepare talk about TDD | view-pim-tasks | | Projects / Read List | view-pim-tasks | - | Tags | folder | - | Tags / Philosophy | view-pim-tasks | - | Tags / Physics | view-pim-tasks | diff --git a/tests/features/zanshin/features/datasource/datasource-selection.feature b/tests/features/zanshin/features/datasource/datasource-selection.feature --- a/tests/features/zanshin/features/datasource/datasource-selection.feature +++ b/tests/features/zanshin/features/datasource/datasource-selection.feature @@ -47,9 +47,6 @@ | Contexts / Chores | | Contexts / Internet | | Contexts / Online | - | Tags | - | Tags / Philosophy | - | Tags / Physics | Scenario: Checking impacts project list Given there is an item named "TestData / Calendar1" in the available data sources @@ -68,6 +65,3 @@ | Contexts / Chores | | Contexts / Internet | | Contexts / Online | - | Tags | - | Tags / Philosophy | - | Tags / Physics | diff --git a/tests/features/zanshin/features/pages/pages-display.feature b/tests/features/zanshin/features/pages/pages-display.feature --- a/tests/features/zanshin/features/pages/pages-display.feature +++ b/tests/features/zanshin/features/pages/pages-display.feature @@ -18,7 +18,4 @@ | Contexts / Chores | view-pim-tasks | | Contexts / Internet | view-pim-tasks | | Contexts / Online | view-pim-tasks | - | Tags | folder | - | Tags / Philosophy | view-pim-tasks | - | Tags / Physics | view-pim-tasks | diff --git a/tests/features/zanshin/features/projects/project-add.feature b/tests/features/zanshin/features/projects/project-add.feature --- a/tests/features/zanshin/features/projects/project-add.feature +++ b/tests/features/zanshin/features/projects/project-add.feature @@ -20,6 +20,3 @@ | Contexts / Chores | view-pim-tasks | | Contexts / Internet | view-pim-tasks | | Contexts / Online | view-pim-tasks | - | Tags | folder | - | Tags / Philosophy | view-pim-tasks | - | Tags / Physics | view-pim-tasks | diff --git a/tests/features/zanshin/features/projects/project-edit.feature b/tests/features/zanshin/features/projects/project-edit.feature --- a/tests/features/zanshin/features/projects/project-edit.feature +++ b/tests/features/zanshin/features/projects/project-edit.feature @@ -20,6 +20,3 @@ | Contexts / Chores | view-pim-tasks | | Contexts / Internet | view-pim-tasks | | Contexts / Online | view-pim-tasks | - | Tags | folder | - | Tags / Philosophy | view-pim-tasks | - | Tags / Physics | view-pim-tasks | diff --git a/tests/features/zanshin/features/projects/project-remove.feature b/tests/features/zanshin/features/projects/project-remove.feature --- a/tests/features/zanshin/features/projects/project-remove.feature +++ b/tests/features/zanshin/features/projects/project-remove.feature @@ -19,6 +19,3 @@ | Contexts / Chores | view-pim-tasks | | Contexts / Internet | view-pim-tasks | | Contexts / Online | view-pim-tasks | - | Tags | folder | - | Tags / Philosophy | view-pim-tasks | - | Tags / Physics | view-pim-tasks | diff --git a/tests/units/presentation/availabletaskpagesmodeltest.cpp b/tests/units/presentation/availabletaskpagesmodeltest.cpp --- a/tests/units/presentation/availabletaskpagesmodeltest.cpp +++ b/tests/units/presentation/availabletaskpagesmodeltest.cpp @@ -31,9 +31,6 @@ #include "domain/projectqueries.h" #include "domain/projectrepository.h" #include "domain/note.h" -#include "domain/tag.h" -#include "domain/tagqueries.h" -#include "domain/tagrepository.h" #include "domain/task.h" #include "domain/taskrepository.h" @@ -89,13 +86,6 @@ contextProvider->append(context1); contextProvider->append(context2); - // One Tag - auto tag1 = Domain::Tag::Ptr::create(); - tag1->setName("Tag 1"); - auto tagProvider = Domain::QueryResultProvider::Ptr::create(); - auto tagResult = Domain::QueryResult::create(tagProvider); - tagProvider->append(tag1); - // Two artifacts (used for dropping later on) Domain::Artifact::Ptr taskToDrop(new Domain::Task); Domain::Artifact::Ptr noteToDrop(new Domain::Note); @@ -111,21 +101,14 @@ Utils::MockObject contextRepositoryMock; - Utils::MockObject tagQueriesMock; - tagQueriesMock(&Domain::TagQueries::findAll).when().thenReturn(tagResult); - - Utils::MockObject tagRepositoryMock; - Presentation::AvailableTaskPagesModel pages(Domain::ArtifactQueries::Ptr(), projectQueriesMock.getInstance(), projectRepositoryMock.getInstance(), contextQueriesMock.getInstance(), contextRepositoryMock.getInstance(), Domain::TaskQueries::Ptr(), taskRepositoryMock.getInstance(), - Domain::NoteRepository::Ptr(), - tagQueriesMock.getInstance(), - tagRepositoryMock.getInstance()); + Domain::NoteRepository::Ptr()); // WHEN QAbstractItemModel *model = pages.pageListModel(); @@ -139,20 +122,16 @@ const QModelIndex contextsIndex = model->index(3, 0); const QModelIndex context1Index = model->index(0, 0, contextsIndex); const QModelIndex context2Index = model->index(1, 0, contextsIndex); - const QModelIndex tagsIndex = model->index(4, 0); - const QModelIndex tag1Index = model->index(0, 0, tagsIndex); - QCOMPARE(model->rowCount(), 5); + QCOMPARE(model->rowCount(), 4); QCOMPARE(model->rowCount(inboxIndex), 0); QCOMPARE(model->rowCount(workdayIndex), 0); QCOMPARE(model->rowCount(projectsIndex), 2); QCOMPARE(model->rowCount(project1Index), 0); QCOMPARE(model->rowCount(project2Index), 0); QCOMPARE(model->rowCount(contextsIndex), 2); QCOMPARE(model->rowCount(context1Index), 0); QCOMPARE(model->rowCount(context2Index), 0); - QCOMPARE(model->rowCount(tagsIndex), 1); - QCOMPARE(model->rowCount(tag1Index), 0); const Qt::ItemFlags defaultFlags = Qt::ItemIsSelectable | Qt::ItemIsEnabled @@ -165,8 +144,6 @@ QCOMPARE(model->flags(contextsIndex), Qt::NoItemFlags); QCOMPARE(model->flags(context1Index), defaultFlags | Qt::ItemIsDropEnabled); QCOMPARE(model->flags(context2Index), defaultFlags | Qt::ItemIsDropEnabled); - QCOMPARE(model->flags(tagsIndex), Qt::NoItemFlags); - QCOMPARE(model->flags(tag1Index), defaultFlags | Qt::ItemIsDropEnabled); QCOMPARE(model->data(inboxIndex).toString(), tr("Inbox")); QCOMPARE(model->data(workdayIndex).toString(), tr("Workday")); @@ -176,8 +153,6 @@ QCOMPARE(model->data(contextsIndex).toString(), tr("Contexts")); QCOMPARE(model->data(context1Index).toString(), context1->name()); QCOMPARE(model->data(context2Index).toString(), context2->name()); - QCOMPARE(model->data(tagsIndex).toString(), tr("Tags")); - QCOMPARE(model->data(tag1Index).toString(), tag1->name()); QVERIFY(!model->data(inboxIndex, Qt::EditRole).isValid()); QVERIFY(!model->data(workdayIndex, Qt::EditRole).isValid()); @@ -187,8 +162,6 @@ QVERIFY(!model->data(contextsIndex, Qt::EditRole).isValid()); QCOMPARE(model->data(context1Index, Qt::EditRole).toString(), context1->name()); QCOMPARE(model->data(context2Index, Qt::EditRole).toString(), context2->name()); - QVERIFY(!model->data(tagsIndex, Qt::EditRole).isValid()); - QCOMPARE(model->data(tag1Index, Qt::EditRole).toString(), tag1->name()); QCOMPARE(model->data(inboxIndex, Presentation::QueryTreeModelBase::IconNameRole).toString(), QString("mail-folder-inbox")); QCOMPARE(model->data(workdayIndex, Presentation::QueryTreeModelBase::IconNameRole).toString(), QString("go-jump-today")); @@ -198,8 +171,6 @@ QCOMPARE(model->data(contextsIndex, Presentation::QueryTreeModelBase::IconNameRole).toString(), QString("folder")); QCOMPARE(model->data(context1Index, Presentation::QueryTreeModelBase::IconNameRole).toString(), QString("view-pim-tasks")); QCOMPARE(model->data(context2Index, Presentation::QueryTreeModelBase::IconNameRole).toString(), QString("view-pim-tasks")); - QCOMPARE(model->data(tagsIndex, Presentation::QueryTreeModelBase::IconNameRole).toString(), QString("folder")); - QCOMPARE(model->data(tag1Index, Presentation::QueryTreeModelBase::IconNameRole).toString(), QString("view-pim-tasks")); QVERIFY(!model->data(inboxIndex, Qt::CheckStateRole).isValid()); QVERIFY(!model->data(workdayIndex, Qt::CheckStateRole).isValid()); @@ -209,8 +180,6 @@ QVERIFY(!model->data(contextsIndex, Qt::CheckStateRole).isValid()); QVERIFY(!model->data(context1Index, Qt::CheckStateRole).isValid()); QVERIFY(!model->data(context2Index, Qt::CheckStateRole).isValid()); - QVERIFY(!model->data(tagsIndex, Qt::CheckStateRole).isValid()); - QVERIFY(!model->data(tag1Index, Qt::CheckStateRole).isValid()); // WHEN projectRepositoryMock(&Domain::ProjectRepository::update).when(project1).thenReturn(new FakeJob(this)); @@ -225,8 +194,6 @@ QVERIFY(!model->setData(contextsIndex, "Foo")); QVERIFY(model->setData(context1Index, "New Context 1")); QVERIFY(model->setData(context2Index, "New Context 2")); - QVERIFY(!model->setData(tagsIndex, "Foo")); - QVERIFY(!model->setData(tag1Index, "New Tag 1")); // THEN QVERIFY(projectRepositoryMock(&Domain::ProjectRepository::update).when(project1).exactly(1)); @@ -259,16 +226,6 @@ // THEN QVERIFY(contextRepositoryMock(&Domain::ContextRepository::associate).when(context1, taskToDrop.objectCast()).exactly(1)); - // WHEN a task is dropped on a context - tagRepositoryMock(&Domain::TagRepository::associate).when(tag1, taskToDrop).thenReturn(new FakeJob(this)); - data = new QMimeData; - data->setData("application/x-zanshin-object", "object"); - data->setProperty("objects", QVariant::fromValue(Domain::Artifact::List() << taskToDrop)); - model->dropMimeData(data, Qt::MoveAction, -1, -1, tag1Index); - - // THEN - QVERIFY(tagRepositoryMock(&Domain::TagRepository::associate).when(tag1, taskToDrop).exactly(1)); - // WHEN projectRepositoryMock(&Domain::ProjectRepository::dissociate).when(taskToDrop).thenReturn(new FakeJob(this)); taskRepositoryMock(&Domain::TaskRepository::dissociateAll).when(taskToDrop.objectCast()).thenReturn(new FakeJob(this)); @@ -367,9 +324,6 @@ // Empty context provider auto contextProvider = Domain::QueryResultProvider::Ptr::create(); auto contextResult = Domain::QueryResult::create(contextProvider); - // Empty tag provider - auto tagProvider = Domain::QueryResultProvider::Ptr::create(); - auto tagResult = Domain::QueryResult::create(tagProvider); // context mocking Utils::MockObject contextQueriesMock; @@ -383,19 +337,14 @@ Utils::MockObject projectRepositoryMock; - Utils::MockObject tagQueriesMock; - tagQueriesMock(&Domain::TagQueries::findAll).when().thenReturn(tagResult); - Presentation::AvailableTaskPagesModel pages(Domain::ArtifactQueries::Ptr(), projectQueriesMock.getInstance(), projectRepositoryMock.getInstance(), contextQueriesMock.getInstance(), contextRepositoryMock.getInstance(), Domain::TaskQueries::Ptr(), Domain::TaskRepository::Ptr(), - Domain::NoteRepository::Ptr(), - tagQueriesMock.getInstance(), - Domain::TagRepository::Ptr()); + Domain::NoteRepository::Ptr()); // WHEN QAbstractItemModel *model = pages.pageListModel(); @@ -417,9 +366,6 @@ // Empty context provider auto contextProvider = Domain::QueryResultProvider::Ptr::create(); auto contextResult = Domain::QueryResult::create(contextProvider); - // Empty tag provider - auto tagProvider = Domain::QueryResultProvider::Ptr::create(); - auto tagResult = Domain::QueryResult::create(tagProvider); // context mocking Utils::MockObject contextQueriesMock; @@ -433,19 +379,14 @@ Utils::MockObject projectRepositoryMock; - Utils::MockObject tagQueriesMock; - tagQueriesMock(&Domain::TagQueries::findAll).when().thenReturn(tagResult); - Presentation::AvailableTaskPagesModel pages(Domain::ArtifactQueries::Ptr(), projectQueriesMock.getInstance(), projectRepositoryMock.getInstance(), contextQueriesMock.getInstance(), contextRepositoryMock.getInstance(), Domain::TaskQueries::Ptr(), Domain::TaskRepository::Ptr(), - Domain::NoteRepository::Ptr(), - tagQueriesMock.getInstance(), - Domain::TagRepository::Ptr()); + Domain::NoteRepository::Ptr()); // WHEN QAbstractItemModel *model = pages.pageListModel(); @@ -475,10 +416,6 @@ auto contextProvider = Domain::QueryResultProvider::Ptr::create(); auto contextResult = Domain::QueryResult::create(contextProvider); - // Empty tag provider - auto tagProvider = Domain::QueryResultProvider::Ptr::create(); - auto tagResult = Domain::QueryResult::create(tagProvider); - // projects mocking Utils::MockObject projectQueriesMock; projectQueriesMock(&Domain::ProjectQueries::findAll).when().thenReturn(projectResult); @@ -489,20 +426,14 @@ Utils::MockObject contextQueriesMock; contextQueriesMock(&Domain::ContextQueries::findAll).when().thenReturn(contextResult); - // tags mocking - Utils::MockObject tagQueriesMock; - tagQueriesMock(&Domain::TagQueries::findAll).when().thenReturn(tagResult); - Presentation::AvailableTaskPagesModel pages(Domain::ArtifactQueries::Ptr(), projectQueriesMock.getInstance(), projectRepositoryMock.getInstance(), contextQueriesMock.getInstance(), Domain::ContextRepository::Ptr(), Domain::TaskQueries::Ptr(), Domain::TaskRepository::Ptr(), - Domain::NoteRepository::Ptr(), - tagQueriesMock.getInstance(), - Domain::TagRepository::Ptr()); + Domain::NoteRepository::Ptr()); // WHEN QAbstractItemModel *model = pages.pageListModel(); @@ -541,10 +472,6 @@ auto projectProvider = Domain::QueryResultProvider::Ptr::create(); auto projectResult = Domain::QueryResult::create(projectProvider); - // Empty tag provider - auto tagProvider = Domain::QueryResultProvider::Ptr::create(); - auto tagResult = Domain::QueryResult::create(tagProvider); - // contexts mocking Utils::MockObject contextQueriesMock; contextQueriesMock(&Domain::ContextQueries::findAll).when().thenReturn(contextResult); @@ -557,21 +484,15 @@ Utils::MockObject projectRepositoryMock; - // tags mocking - Utils::MockObject tagQueriesMock; - tagQueriesMock(&Domain::TagQueries::findAll).when().thenReturn(tagResult); - Presentation::AvailableTaskPagesModel pages(Domain::ArtifactQueries::Ptr(), projectQueriesMock.getInstance(), projectRepositoryMock.getInstance(), contextQueriesMock.getInstance(), contextRepositoryMock.getInstance(), Domain::TaskQueries::Ptr(), Domain::TaskRepository::Ptr(), - Domain::NoteRepository::Ptr(), - tagQueriesMock.getInstance(), - Domain::TagRepository::Ptr()); + Domain::NoteRepository::Ptr()); // WHEN QAbstractItemModel *model = pages.pageListModel(); @@ -610,9 +531,7 @@ Domain::ContextRepository::Ptr(), Domain::TaskQueries::Ptr(), Domain::TaskRepository::Ptr(), - Domain::NoteRepository::Ptr(), - Domain::TagQueries::Ptr(), - Domain::TagRepository::Ptr()); + Domain::NoteRepository::Ptr()); // WHEN pages.addProject("Foo", source); @@ -644,9 +563,7 @@ Domain::ContextRepository::Ptr(), Domain::TaskQueries::Ptr(), Domain::TaskRepository::Ptr(), - Domain::NoteRepository::Ptr(), - Domain::TagQueries::Ptr(), - Domain::TagRepository::Ptr()); + Domain::NoteRepository::Ptr()); FakeErrorHandler errorHandler; pages.setErrorHandler(&errorHandler); @@ -673,9 +590,7 @@ contextRepositoryMock.getInstance(), Domain::TaskQueries::Ptr(), Domain::TaskRepository::Ptr(), - Domain::NoteRepository::Ptr(), - Domain::TagQueries::Ptr(), - Domain::TagRepository::Ptr()); + Domain::NoteRepository::Ptr()); // WHEN pages.addContext("Foo"); @@ -702,9 +617,7 @@ contextRepositoryMock.getInstance(), Domain::TaskQueries::Ptr(), Domain::TaskRepository::Ptr(), - Domain::NoteRepository::Ptr(), - Domain::TagQueries::Ptr(), - Domain::TagRepository::Ptr()); + Domain::NoteRepository::Ptr()); FakeErrorHandler errorHandler; pages.setErrorHandler(&errorHandler); @@ -716,64 +629,6 @@ QCOMPARE(errorHandler.m_message, QString("Cannot add context Foo: Foo")); } - void shouldAddTags() - { - // GIVEN - - Utils::MockObject tagRepositoryMock; - tagRepositoryMock(&Domain::TagRepository::create).when(any()) - .thenReturn(new FakeJob(this)); - - Presentation::AvailableTaskPagesModel pages(Domain::ArtifactQueries::Ptr(), - Domain::ProjectQueries::Ptr(), - Domain::ProjectRepository::Ptr(), - Domain::ContextQueries::Ptr(), - Domain::ContextRepository::Ptr(), - Domain::TaskQueries::Ptr(), - Domain::TaskRepository::Ptr(), - Domain::NoteRepository::Ptr(), - Domain::TagQueries::Ptr(), - tagRepositoryMock.getInstance()); - - // WHEN - pages.addTag("Foo"); - - // THEN - QVERIFY(tagRepositoryMock(&Domain::TagRepository::create).when(any()) - .exactly(1)); - } - - void shouldGetAnErrorMessageWhenAddTagFailed() - { - // GIVEN - - Utils::MockObject tagRepositoryMock; - auto job = new FakeJob(this); - job->setExpectedError(KJob::KilledJobError, "Foo"); - tagRepositoryMock(&Domain::TagRepository::create).when(any()) - .thenReturn(job); - - Presentation::AvailableTaskPagesModel pages(Domain::ArtifactQueries::Ptr(), - Domain::ProjectQueries::Ptr(), - Domain::ProjectRepository::Ptr(), - Domain::ContextQueries::Ptr(), - Domain::ContextRepository::Ptr(), - Domain::TaskQueries::Ptr(), - Domain::TaskRepository::Ptr(), - Domain::NoteRepository::Ptr(), - Domain::TagQueries::Ptr(), - tagRepositoryMock.getInstance()); - FakeErrorHandler errorHandler; - pages.setErrorHandler(&errorHandler); - - // WHEN - pages.addTag("Foo"); - - // THEN - QTest::qWait(150); - QCOMPARE(errorHandler.m_message, QString("Cannot add tag Foo: Foo")); - } - void shouldRemoveProject() { // GIVEN @@ -792,31 +647,22 @@ auto contextProvider = Domain::QueryResultProvider::Ptr::create(); auto contextResult = Domain::QueryResult::create(contextProvider); - // Empty tag provider - auto tagProvider = Domain::QueryResultProvider::Ptr::create(); - auto tagResult = Domain::QueryResult::create(tagProvider); - Utils::MockObject projectQueriesMock; projectQueriesMock(&Domain::ProjectQueries::findAll).when().thenReturn(projectResult); Utils::MockObject contextQueriesMock; contextQueriesMock(&Domain::ContextQueries::findAll).when().thenReturn(contextResult); Utils::MockObject projectRepositoryMock; - Utils::MockObject tagQueriesMock; - tagQueriesMock(&Domain::TagQueries::findAll).when().thenReturn(tagResult); - Presentation::AvailableTaskPagesModel pages(Domain::ArtifactQueries::Ptr(), projectQueriesMock.getInstance(), projectRepositoryMock.getInstance(), contextQueriesMock.getInstance(), Domain::ContextRepository::Ptr(), Domain::TaskQueries::Ptr(), Domain::TaskRepository::Ptr(), - Domain::NoteRepository::Ptr(), - tagQueriesMock.getInstance(), - Domain::TagRepository::Ptr()); + Domain::NoteRepository::Ptr()); QAbstractItemModel *model = pages.pageListModel(); @@ -850,31 +696,22 @@ auto contextProvider = Domain::QueryResultProvider::Ptr::create(); auto contextResult = Domain::QueryResult::create(contextProvider); - // Empty tag provider - auto tagProvider = Domain::QueryResultProvider::Ptr::create(); - auto tagResult = Domain::QueryResult::create(tagProvider); - Utils::MockObject projectQueriesMock; projectQueriesMock(&Domain::ProjectQueries::findAll).when().thenReturn(projectResult); Utils::MockObject contextQueriesMock; contextQueriesMock(&Domain::ContextQueries::findAll).when().thenReturn(contextResult); Utils::MockObject projectRepositoryMock; - Utils::MockObject tagQueriesMock; - tagQueriesMock(&Domain::TagQueries::findAll).when().thenReturn(tagResult); - Presentation::AvailableTaskPagesModel pages(Domain::ArtifactQueries::Ptr(), projectQueriesMock.getInstance(), projectRepositoryMock.getInstance(), contextQueriesMock.getInstance(), Domain::ContextRepository::Ptr(), Domain::TaskQueries::Ptr(), Domain::TaskRepository::Ptr(), - Domain::NoteRepository::Ptr(), - tagQueriesMock.getInstance(), - Domain::TagRepository::Ptr()); + Domain::NoteRepository::Ptr()); FakeErrorHandler errorHandler; pages.setErrorHandler(&errorHandler); @@ -913,30 +750,21 @@ Utils::MockObject contextQueriesMock; contextQueriesMock(&Domain::ContextQueries::findAll).when().thenReturn(contextResult); - // Empty tag provider - auto tagProvider = Domain::QueryResultProvider::Ptr::create(); - auto tagResult = Domain::QueryResult::create(tagProvider); - Utils::MockObject contextRepositoryMock; // projects mocking Utils::MockObject projectQueriesMock; projectQueriesMock(&Domain::ProjectQueries::findAll).when().thenReturn(projectResult); - Utils::MockObject tagQueriesMock; - tagQueriesMock(&Domain::TagQueries::findAll).when().thenReturn(tagResult); - Presentation::AvailableTaskPagesModel pages(Domain::ArtifactQueries::Ptr(), projectQueriesMock.getInstance(), Domain::ProjectRepository::Ptr(), contextQueriesMock.getInstance(), contextRepositoryMock.getInstance(), Domain::TaskQueries::Ptr(), Domain::TaskRepository::Ptr(), - Domain::NoteRepository::Ptr(), - tagQueriesMock.getInstance(), - Domain::TagRepository::Ptr()); + Domain::NoteRepository::Ptr()); QAbstractItemModel *model = pages.pageListModel(); @@ -970,30 +798,21 @@ Utils::MockObject contextQueriesMock; contextQueriesMock(&Domain::ContextQueries::findAll).when().thenReturn(contextResult); - // Empty tag provider - auto tagProvider = Domain::QueryResultProvider::Ptr::create(); - auto tagResult = Domain::QueryResult::create(tagProvider); - Utils::MockObject contextRepositoryMock; // projects mocking Utils::MockObject projectQueriesMock; projectQueriesMock(&Domain::ProjectQueries::findAll).when().thenReturn(projectResult); - Utils::MockObject tagQueriesMock; - tagQueriesMock(&Domain::TagQueries::findAll).when().thenReturn(tagResult); - Presentation::AvailableTaskPagesModel pages(Domain::ArtifactQueries::Ptr(), projectQueriesMock.getInstance(), Domain::ProjectRepository::Ptr(), contextQueriesMock.getInstance(), contextRepositoryMock.getInstance(), Domain::TaskQueries::Ptr(), Domain::TaskRepository::Ptr(), - Domain::NoteRepository::Ptr(), - tagQueriesMock.getInstance(), - Domain::TagRepository::Ptr()); + Domain::NoteRepository::Ptr()); FakeErrorHandler errorHandler; pages.setErrorHandler(&errorHandler); @@ -1014,132 +833,6 @@ QCOMPARE(errorHandler.m_message, QString("Cannot remove context context 1: Foo")); } - void shouldRemoveTag() - { - // GIVEN - - // context provider - auto contextProvider = Domain::QueryResultProvider::Ptr::create(); - auto contextResult = Domain::QueryResult::create(contextProvider); - // empty projects - auto projectProvider = Domain::QueryResultProvider::Ptr::create(); - auto projectResult = Domain::QueryResult::create(projectProvider); - - // contexts mocking - Utils::MockObject contextQueriesMock; - contextQueriesMock(&Domain::ContextQueries::findAll).when().thenReturn(contextResult); - - // one tag - auto tag1 = Domain::Tag::Ptr::create(); - tag1->setName("tag 1"); - auto tagProvider = Domain::QueryResultProvider::Ptr::create(); - auto tagResult = Domain::QueryResult::create(tagProvider); - tagProvider->append(tag1); - - Utils::MockObject contextRepositoryMock; - - // projects mocking - Utils::MockObject projectQueriesMock; - projectQueriesMock(&Domain::ProjectQueries::findAll).when().thenReturn(projectResult); - - Utils::MockObject tagQueriesMock; - tagQueriesMock(&Domain::TagQueries::findAll).when().thenReturn(tagResult); - - Utils::MockObject tagRepositoryMock; - - Presentation::AvailableTaskPagesModel pages(Domain::ArtifactQueries::Ptr(), - projectQueriesMock.getInstance(), - Domain::ProjectRepository::Ptr(), - contextQueriesMock.getInstance(), - contextRepositoryMock.getInstance(), - Domain::TaskQueries::Ptr(), - Domain::TaskRepository::Ptr(), - Domain::NoteRepository::Ptr(), - tagQueriesMock.getInstance(), - tagRepositoryMock.getInstance()); - FakeErrorHandler errorHandler; - pages.setErrorHandler(&errorHandler); - - QAbstractItemModel *model = pages.pageListModel(); - - const QModelIndex tagsIndex = model->index(4, 0); - const QModelIndex tag1Index = model->index(0, 0, tagsIndex); - - auto job = new FakeJob(this); - tagRepositoryMock(&Domain::TagRepository::remove).when(tag1).thenReturn(job); - - // WHEN - pages.removeItem(tag1Index); - - // THEN - QTest::qWait(150); - QVERIFY(errorHandler.m_message.isEmpty()); - QVERIFY(tagRepositoryMock(&Domain::TagRepository::remove).when(tag1).exactly(1)); - } - - void shouldGetAnErrorMessageWhenRemoveTagFailed() - { - // GIVEN - - // context provider - auto contextProvider = Domain::QueryResultProvider::Ptr::create(); - auto contextResult = Domain::QueryResult::create(contextProvider); - // empty projects - auto projectProvider = Domain::QueryResultProvider::Ptr::create(); - auto projectResult = Domain::QueryResult::create(projectProvider); - - // contexts mocking - Utils::MockObject contextQueriesMock; - contextQueriesMock(&Domain::ContextQueries::findAll).when().thenReturn(contextResult); - - // one tag - auto tag1 = Domain::Tag::Ptr::create(); - tag1->setName("tag 1"); - auto tagProvider = Domain::QueryResultProvider::Ptr::create(); - auto tagResult = Domain::QueryResult::create(tagProvider); - tagProvider->append(tag1); - - Utils::MockObject contextRepositoryMock; - - // projects mocking - Utils::MockObject projectQueriesMock; - projectQueriesMock(&Domain::ProjectQueries::findAll).when().thenReturn(projectResult); - - Utils::MockObject tagQueriesMock; - tagQueriesMock(&Domain::TagQueries::findAll).when().thenReturn(tagResult); - - Utils::MockObject tagRepositoryMock; - - Presentation::AvailableTaskPagesModel pages(Domain::ArtifactQueries::Ptr(), - projectQueriesMock.getInstance(), - Domain::ProjectRepository::Ptr(), - contextQueriesMock.getInstance(), - contextRepositoryMock.getInstance(), - Domain::TaskQueries::Ptr(), - Domain::TaskRepository::Ptr(), - Domain::NoteRepository::Ptr(), - tagQueriesMock.getInstance(), - tagRepositoryMock.getInstance()); - FakeErrorHandler errorHandler; - pages.setErrorHandler(&errorHandler); - - QAbstractItemModel *model = pages.pageListModel(); - - const QModelIndex tagsIndex = model->index(4, 0); - const QModelIndex tag1Index = model->index(0, 0, tagsIndex); - - auto job = new FakeJob(this); - job->setExpectedError(KJob::KilledJobError, "Foo"); - tagRepositoryMock(&Domain::TagRepository::remove).when(tag1).thenReturn(job); - - // WHEN - pages.removeItem(tag1Index); - - // THEN - QTest::qWait(150); - QCOMPARE(errorHandler.m_message, QString("Cannot remove tag tag 1: Foo")); - } - void shouldGetAnErrorMessageWhenUpdateProjectFailed() { // GIVEN @@ -1164,10 +857,6 @@ contextProvider->append(context1); contextProvider->append(context2); - // No Tags - auto tagProvider = Domain::QueryResultProvider::Ptr::create(); - auto tagResult = Domain::QueryResult::create(tagProvider); - // Two artifacts (used for dropping later on) Domain::Artifact::Ptr taskToDrop(new Domain::Task); Domain::Artifact::Ptr noteToDrop(new Domain::Note); @@ -1183,19 +872,14 @@ Utils::MockObject contextRepositoryMock; - Utils::MockObject tagQueriesMock; - tagQueriesMock(&Domain::TagQueries::findAll).when().thenReturn(tagResult); - Presentation::AvailableTaskPagesModel pages(Domain::ArtifactQueries::Ptr(), projectQueriesMock.getInstance(), projectRepositoryMock.getInstance(), contextQueriesMock.getInstance(), contextRepositoryMock.getInstance(), Domain::TaskQueries::Ptr(), taskRepositoryMock.getInstance(), - Domain::NoteRepository::Ptr(), - tagQueriesMock.getInstance(), - Domain::TagRepository::Ptr()); + Domain::NoteRepository::Ptr()); FakeErrorHandler errorHandler; pages.setErrorHandler(&errorHandler); @@ -1239,10 +923,6 @@ contextProvider->append(context1); contextProvider->append(context2); - // No Tags - auto tagProvider = Domain::QueryResultProvider::Ptr::create(); - auto tagResult = Domain::QueryResult::create(tagProvider); - // Two artifacts (used for dropping later on) Domain::Artifact::Ptr taskToDrop(new Domain::Task); Domain::Artifact::Ptr noteToDrop(new Domain::Note); @@ -1258,19 +938,14 @@ Utils::MockObject contextRepositoryMock; - Utils::MockObject tagQueriesMock; - tagQueriesMock(&Domain::TagQueries::findAll).when().thenReturn(tagResult); - Presentation::AvailableTaskPagesModel pages(Domain::ArtifactQueries::Ptr(), projectQueriesMock.getInstance(), projectRepositoryMock.getInstance(), contextQueriesMock.getInstance(), contextRepositoryMock.getInstance(), Domain::TaskQueries::Ptr(), taskRepositoryMock.getInstance(), - Domain::NoteRepository::Ptr(), - tagQueriesMock.getInstance(), - Domain::TagRepository::Ptr()); + Domain::NoteRepository::Ptr()); FakeErrorHandler errorHandler; pages.setErrorHandler(&errorHandler); @@ -1314,10 +989,6 @@ contextProvider->append(context1); contextProvider->append(context2); - // No Tags - auto tagProvider = Domain::QueryResultProvider::Ptr::create(); - auto tagResult = Domain::QueryResult::create(tagProvider); - // Two artifacts (used for dropping later on) Domain::Artifact::Ptr taskToDrop(new Domain::Task); taskToDrop->setTitle("taskDropped"); @@ -1334,19 +1005,14 @@ Utils::MockObject contextRepositoryMock; - Utils::MockObject tagQueriesMock; - tagQueriesMock(&Domain::TagQueries::findAll).when().thenReturn(tagResult); - Presentation::AvailableTaskPagesModel pages(Domain::ArtifactQueries::Ptr(), projectQueriesMock.getInstance(), projectRepositoryMock.getInstance(), contextQueriesMock.getInstance(), contextRepositoryMock.getInstance(), Domain::TaskQueries::Ptr(), taskRepositoryMock.getInstance(), - Domain::NoteRepository::Ptr(), - tagQueriesMock.getInstance(), - Domain::TagRepository::Ptr()); + Domain::NoteRepository::Ptr()); FakeErrorHandler errorHandler; pages.setErrorHandler(&errorHandler); @@ -1392,14 +1058,9 @@ contextProvider->append(context1); contextProvider->append(context2); - // No Tags - auto tagProvider = Domain::QueryResultProvider::Ptr::create(); - auto tagResult = Domain::QueryResult::create(tagProvider); - // Two artifacts (used for dropping later on) Domain::Artifact::Ptr taskToDrop(new Domain::Task); taskToDrop->setTitle("taskDropped"); - Domain::Artifact::Ptr noteToDrop(new Domain::Note); Utils::MockObject projectQueriesMock; projectQueriesMock(&Domain::ProjectQueries::findAll).when().thenReturn(projectResult); @@ -1412,19 +1073,14 @@ Utils::MockObject contextRepositoryMock; - Utils::MockObject tagQueriesMock; - tagQueriesMock(&Domain::TagQueries::findAll).when().thenReturn(tagResult); - Presentation::AvailableTaskPagesModel pages(Domain::ArtifactQueries::Ptr(), projectQueriesMock.getInstance(), projectRepositoryMock.getInstance(), contextQueriesMock.getInstance(), contextRepositoryMock.getInstance(), Domain::TaskQueries::Ptr(), taskRepositoryMock.getInstance(), - Domain::NoteRepository::Ptr(), - tagQueriesMock.getInstance(), - Domain::TagRepository::Ptr()); + Domain::NoteRepository::Ptr()); FakeErrorHandler errorHandler; pages.setErrorHandler(&errorHandler); @@ -1446,76 +1102,6 @@ QCOMPARE(errorHandler.m_message, QString("Cannot add taskDropped to context context 1: Foo")); } - void shouldGetAnErrorMessageWhenAssociateTagFailed() - { - // GIVEN - - // No project - auto projectProvider = Domain::QueryResultProvider::Ptr::create(); - auto projectResult = Domain::QueryResult::create(projectProvider); - - // No context - auto contextProvider = Domain::QueryResultProvider::Ptr::create(); - auto contextResult = Domain::QueryResult::create(contextProvider); - - // one tag - auto tag1 = Domain::Tag::Ptr::create(); - tag1->setName("Tag 1"); - auto tagProvider = Domain::QueryResultProvider::Ptr::create(); - auto tagResult = Domain::QueryResult::create(tagProvider); - tagProvider->append(tag1); - - // Two artifacts (used for dropping later on) - Domain::Artifact::Ptr taskToDrop(new Domain::Task); - taskToDrop->setTitle("taskDropped"); - - Utils::MockObject projectQueriesMock; - projectQueriesMock(&Domain::ProjectQueries::findAll).when().thenReturn(projectResult); - - Utils::MockObject projectRepositoryMock; - Utils::MockObject taskRepositoryMock; - - Utils::MockObject contextQueriesMock; - contextQueriesMock(&Domain::ContextQueries::findAll).when().thenReturn(contextResult); - - Utils::MockObject contextRepositoryMock; - - Utils::MockObject tagQueriesMock; - tagQueriesMock(&Domain::TagQueries::findAll).when().thenReturn(tagResult); - - Utils::MockObject tagRepositoryMock; - - Presentation::AvailableTaskPagesModel pages(Domain::ArtifactQueries::Ptr(), - projectQueriesMock.getInstance(), - projectRepositoryMock.getInstance(), - contextQueriesMock.getInstance(), - contextRepositoryMock.getInstance(), - Domain::TaskQueries::Ptr(), - taskRepositoryMock.getInstance(), - Domain::NoteRepository::Ptr(), - tagQueriesMock.getInstance(), - tagRepositoryMock.getInstance()); - - FakeErrorHandler errorHandler; - pages.setErrorHandler(&errorHandler); - QAbstractItemModel *model = pages.pageListModel(); - const QModelIndex tagsIndex = model->index(4, 0); - const QModelIndex tag1Index = model->index(0, 0, tagsIndex); - - // WHEN - auto job = new FakeJob(this); - job->setExpectedError(KJob::KilledJobError, "Foo"); - tagRepositoryMock(&Domain::TagRepository::associate).when(tag1, taskToDrop).thenReturn(job); - auto data = new QMimeData; - data->setData("application/x-zanshin-object", "object"); - data->setProperty("objects", QVariant::fromValue(Domain::Artifact::List() << taskToDrop)); - model->dropMimeData(data, Qt::MoveAction, -1, -1, tag1Index); - - // THEN - QTest::qWait(150); - QCOMPARE(errorHandler.m_message, QString("Cannot tag taskDropped with Tag 1: Foo")); - } - void shouldGetAnErrorMessageWhenDissociateFailed() { // GIVEN @@ -1528,13 +1114,6 @@ auto contextProvider = Domain::QueryResultProvider::Ptr::create(); auto contextResult = Domain::QueryResult::create(contextProvider); - // one tag - auto tag1 = Domain::Tag::Ptr::create(); - tag1->setName("Tag 1"); - auto tagProvider = Domain::QueryResultProvider::Ptr::create(); - auto tagResult = Domain::QueryResult::create(tagProvider); - tagProvider->append(tag1); - // Two artifacts (used for dropping later on) Domain::Artifact::Ptr taskToDrop(new Domain::Task); taskToDrop->setTitle("taskDropped"); @@ -1550,21 +1129,14 @@ Utils::MockObject contextRepositoryMock; - Utils::MockObject tagQueriesMock; - tagQueriesMock(&Domain::TagQueries::findAll).when().thenReturn(tagResult); - - Utils::MockObject tagRepositoryMock; - Presentation::AvailableTaskPagesModel pages(Domain::ArtifactQueries::Ptr(), projectQueriesMock.getInstance(), projectRepositoryMock.getInstance(), contextQueriesMock.getInstance(), contextRepositoryMock.getInstance(), Domain::TaskQueries::Ptr(), taskRepositoryMock.getInstance(), - Domain::NoteRepository::Ptr(), - tagQueriesMock.getInstance(), - tagRepositoryMock.getInstance()); + Domain::NoteRepository::Ptr()); FakeErrorHandler errorHandler; pages.setErrorHandler(&errorHandler); @@ -1585,76 +1157,6 @@ QTest::qWait(150); QCOMPARE(errorHandler.m_message, QString("Cannot move taskDropped to Inbox: Foo")); } - - void shouldGetAnErrorMessageWhenDissociateTaskFailed() - { - // GIVEN - - // No project - auto projectProvider = Domain::QueryResultProvider::Ptr::create(); - auto projectResult = Domain::QueryResult::create(projectProvider); - - // No context - auto contextProvider = Domain::QueryResultProvider::Ptr::create(); - auto contextResult = Domain::QueryResult::create(contextProvider); - - // one tag - auto tag1 = Domain::Tag::Ptr::create(); - tag1->setName("Tag 1"); - auto tagProvider = Domain::QueryResultProvider::Ptr::create(); - auto tagResult = Domain::QueryResult::create(tagProvider); - tagProvider->append(tag1); - - // Two artifacts (used for dropping later on) - Domain::Artifact::Ptr taskToDrop(new Domain::Task); - taskToDrop->setTitle("taskDropped"); - - Utils::MockObject projectQueriesMock; - projectQueriesMock(&Domain::ProjectQueries::findAll).when().thenReturn(projectResult); - - Utils::MockObject projectRepositoryMock; - Utils::MockObject taskRepositoryMock; - - Utils::MockObject contextQueriesMock; - contextQueriesMock(&Domain::ContextQueries::findAll).when().thenReturn(contextResult); - - Utils::MockObject contextRepositoryMock; - - Utils::MockObject tagQueriesMock; - tagQueriesMock(&Domain::TagQueries::findAll).when().thenReturn(tagResult); - - Utils::MockObject tagRepositoryMock; - - Presentation::AvailableTaskPagesModel pages(Domain::ArtifactQueries::Ptr(), - projectQueriesMock.getInstance(), - projectRepositoryMock.getInstance(), - contextQueriesMock.getInstance(), - contextRepositoryMock.getInstance(), - Domain::TaskQueries::Ptr(), - taskRepositoryMock.getInstance(), - Domain::NoteRepository::Ptr(), - tagQueriesMock.getInstance(), - tagRepositoryMock.getInstance()); - - FakeErrorHandler errorHandler; - pages.setErrorHandler(&errorHandler); - QAbstractItemModel *model = pages.pageListModel(); - const QModelIndex inboxIndex = model->index(0, 0); - - // WHEN - auto job = new FakeJob(this); - job->setExpectedError(KJob::KilledJobError, "Foo"); - projectRepositoryMock(&Domain::ProjectRepository::dissociate).when(taskToDrop).thenReturn(new FakeJob(this)); - taskRepositoryMock(&Domain::TaskRepository::dissociateAll).when(taskToDrop.objectCast()).thenReturn(job); - auto data = new QMimeData; - data->setData("application/x-zanshin-object", "object"); - data->setProperty("objects", QVariant::fromValue(Domain::Artifact::List() << taskToDrop)); - model->dropMimeData(data, Qt::MoveAction, -1, -1, inboxIndex); - - // THEN - QTest::qWait(150); - QCOMPARE(errorHandler.m_message, QString("Cannot move task taskDropped to Inbox: Foo")); - } }; QTEST_MAIN(AvailableTaskPagesModelTest)