Changeset View
Changeset View
Standalone View
Standalone View
tests/units/presentation/availabletaskpagesmodeltest.cpp
Show All 17 Lines | 1 | /* This file is part of Zanshin | |||
---|---|---|---|---|---|
18 | You should have received a copy of the GNU General Public License | 18 | You should have received a copy of the GNU General Public License | ||
19 | along with this program; if not, write to the Free Software | 19 | along with this program; if not, write to the Free Software | ||
20 | Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, | 20 | Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, | ||
21 | USA. | 21 | USA. | ||
22 | */ | 22 | */ | ||
23 | 23 | | |||
24 | #include <testlib/qtest_zanshin.h> | 24 | #include <testlib/qtest_zanshin.h> | ||
25 | 25 | | |||
26 | #include <memory> | ||||
27 | | ||||
28 | #include <QMimeData> | ||||
29 | | ||||
26 | #include "utils/mockobject.h" | 30 | #include "utils/mockobject.h" | ||
27 | #include "utils/datetime.h" | 31 | #include "utils/datetime.h" | ||
28 | 32 | | |||
29 | #include "domain/note.h" | 33 | #include "domain/note.h" | ||
30 | 34 | | |||
31 | #include "presentation/availabletaskpagesmodel.h" | 35 | #include "presentation/availabletaskpagesmodel.h" | ||
32 | #include "presentation/contextpagemodel.h" | 36 | #include "presentation/contextpagemodel.h" | ||
33 | #include "presentation/errorhandler.h" | 37 | #include "presentation/errorhandler.h" | ||
▲ Show 20 Lines • Show All 172 Lines • ▼ Show 20 Line(s) | 75 | { | |||
206 | 210 | | |||
207 | QCOMPARE(project1->name(), QStringLiteral("New Project 1")); | 211 | QCOMPARE(project1->name(), QStringLiteral("New Project 1")); | ||
208 | QCOMPARE(project2->name(), QStringLiteral("New Project 2")); | 212 | QCOMPARE(project2->name(), QStringLiteral("New Project 2")); | ||
209 | QCOMPARE(context1->name(), QStringLiteral("New Context 1")); | 213 | QCOMPARE(context1->name(), QStringLiteral("New Context 1")); | ||
210 | QCOMPARE(context2->name(), QStringLiteral("New Context 2")); | 214 | QCOMPARE(context2->name(), QStringLiteral("New Context 2")); | ||
211 | 215 | | |||
212 | // WHEN | 216 | // WHEN | ||
213 | projectRepositoryMock(&Domain::ProjectRepository::associate).when(project1, taskToDrop).thenReturn(new FakeJob(this)); | 217 | projectRepositoryMock(&Domain::ProjectRepository::associate).when(project1, taskToDrop).thenReturn(new FakeJob(this)); | ||
214 | QMimeData *data = new QMimeData; | 218 | auto data = std::make_unique<QMimeData>(); | ||
215 | data->setData(QStringLiteral("application/x-zanshin-object"), "object"); | 219 | data->setData(QStringLiteral("application/x-zanshin-object"), "object"); | ||
216 | data->setProperty("objects", QVariant::fromValue(Domain::Artifact::List() << taskToDrop)); | 220 | data->setProperty("objects", QVariant::fromValue(Domain::Artifact::List() << taskToDrop)); | ||
217 | model->dropMimeData(data, Qt::MoveAction, -1, -1, project1Index); | 221 | model->dropMimeData(data.get(), Qt::MoveAction, -1, -1, project1Index); | ||
218 | 222 | | |||
219 | // THEN | 223 | // THEN | ||
220 | QVERIFY(projectRepositoryMock(&Domain::ProjectRepository::associate).when(project1, taskToDrop).exactly(1)); | 224 | QVERIFY(projectRepositoryMock(&Domain::ProjectRepository::associate).when(project1, taskToDrop).exactly(1)); | ||
221 | 225 | | |||
222 | // WHEN a task is dropped on a context | 226 | // WHEN a task is dropped on a context | ||
223 | contextRepositoryMock(&Domain::ContextRepository::associate).when(context1, taskToDrop.objectCast<Domain::Task>()).thenReturn(new FakeJob(this)); | 227 | contextRepositoryMock(&Domain::ContextRepository::associate).when(context1, taskToDrop.objectCast<Domain::Task>()).thenReturn(new FakeJob(this)); | ||
224 | data = new QMimeData; | 228 | data.reset(new QMimeData); | ||
225 | data->setData(QStringLiteral("application/x-zanshin-object"), "object"); | 229 | data->setData(QStringLiteral("application/x-zanshin-object"), "object"); | ||
226 | data->setProperty("objects", QVariant::fromValue(Domain::Artifact::List() << taskToDrop)); | 230 | data->setProperty("objects", QVariant::fromValue(Domain::Artifact::List() << taskToDrop)); | ||
227 | model->dropMimeData(data, Qt::MoveAction, -1, -1, context1Index); | 231 | model->dropMimeData(data.get(), Qt::MoveAction, -1, -1, context1Index); | ||
228 | 232 | | |||
229 | // THEN | 233 | // THEN | ||
230 | QVERIFY(contextRepositoryMock(&Domain::ContextRepository::associate).when(context1, taskToDrop.objectCast<Domain::Task>()).exactly(1)); | 234 | QVERIFY(contextRepositoryMock(&Domain::ContextRepository::associate).when(context1, taskToDrop.objectCast<Domain::Task>()).exactly(1)); | ||
231 | 235 | | |||
232 | // WHEN | 236 | // WHEN | ||
233 | projectRepositoryMock(&Domain::ProjectRepository::dissociate).when(taskToDrop).thenReturn(new FakeJob(this)); | 237 | projectRepositoryMock(&Domain::ProjectRepository::dissociate).when(taskToDrop).thenReturn(new FakeJob(this)); | ||
234 | taskRepositoryMock(&Domain::TaskRepository::dissociateAll).when(taskToDrop.objectCast<Domain::Task>()).thenReturn(new FakeJob(this)); | 238 | taskRepositoryMock(&Domain::TaskRepository::dissociateAll).when(taskToDrop.objectCast<Domain::Task>()).thenReturn(new FakeJob(this)); | ||
235 | data = new QMimeData; | 239 | data.reset(new QMimeData); | ||
236 | data->setData(QStringLiteral("application/x-zanshin-object"), "object"); | 240 | data->setData(QStringLiteral("application/x-zanshin-object"), "object"); | ||
237 | data->setProperty("objects", QVariant::fromValue(Domain::Artifact::List() << taskToDrop)); | 241 | data->setProperty("objects", QVariant::fromValue(Domain::Artifact::List() << taskToDrop)); | ||
238 | model->dropMimeData(data, Qt::MoveAction, -1, -1, inboxIndex); | 242 | model->dropMimeData(data.get(), Qt::MoveAction, -1, -1, inboxIndex); | ||
239 | QTest::qWait(150); | 243 | QTest::qWait(150); | ||
240 | 244 | | |||
241 | // THEN | 245 | // THEN | ||
242 | QVERIFY(projectRepositoryMock(&Domain::ProjectRepository::dissociate).when(taskToDrop).exactly(1)); | 246 | QVERIFY(projectRepositoryMock(&Domain::ProjectRepository::dissociate).when(taskToDrop).exactly(1)); | ||
243 | QVERIFY(taskRepositoryMock(&Domain::TaskRepository::dissociateAll).when(taskToDrop.objectCast<Domain::Task>()).exactly(1)); | 247 | QVERIFY(taskRepositoryMock(&Domain::TaskRepository::dissociateAll).when(taskToDrop.objectCast<Domain::Task>()).exactly(1)); | ||
244 | 248 | | |||
245 | // WHEN | 249 | // WHEN | ||
246 | projectRepositoryMock(&Domain::ProjectRepository::associate).when(project2, noteToDrop).thenReturn(new FakeJob(this)); | 250 | projectRepositoryMock(&Domain::ProjectRepository::associate).when(project2, noteToDrop).thenReturn(new FakeJob(this)); | ||
247 | data = new QMimeData; | 251 | data.reset(new QMimeData); | ||
248 | data->setData(QStringLiteral("application/x-zanshin-object"), "object"); | 252 | data->setData(QStringLiteral("application/x-zanshin-object"), "object"); | ||
249 | data->setProperty("objects", QVariant::fromValue(Domain::Artifact::List() << noteToDrop)); | 253 | data->setProperty("objects", QVariant::fromValue(Domain::Artifact::List() << noteToDrop)); | ||
250 | model->dropMimeData(data, Qt::MoveAction, -1, -1, project2Index); | 254 | model->dropMimeData(data.get(), Qt::MoveAction, -1, -1, project2Index); | ||
251 | 255 | | |||
252 | // THEN | 256 | // THEN | ||
253 | QVERIFY(projectRepositoryMock(&Domain::ProjectRepository::associate).when(project2, noteToDrop).exactly(1)); | 257 | QVERIFY(projectRepositoryMock(&Domain::ProjectRepository::associate).when(project2, noteToDrop).exactly(1)); | ||
254 | 258 | | |||
255 | // WHEN | 259 | // WHEN | ||
256 | Domain::Artifact::Ptr taskToDrop2(new Domain::Task); | 260 | Domain::Artifact::Ptr taskToDrop2(new Domain::Task); | ||
257 | Domain::Artifact::Ptr noteToDrop2(new Domain::Note); | 261 | Domain::Artifact::Ptr noteToDrop2(new Domain::Note); | ||
258 | projectRepositoryMock(&Domain::ProjectRepository::associate).when(project1, taskToDrop2).thenReturn(new FakeJob(this)); | 262 | projectRepositoryMock(&Domain::ProjectRepository::associate).when(project1, taskToDrop2).thenReturn(new FakeJob(this)); | ||
259 | projectRepositoryMock(&Domain::ProjectRepository::associate).when(project1, noteToDrop2).thenReturn(new FakeJob(this)); | 263 | projectRepositoryMock(&Domain::ProjectRepository::associate).when(project1, noteToDrop2).thenReturn(new FakeJob(this)); | ||
260 | data = new QMimeData; | 264 | data.reset(new QMimeData); | ||
261 | data->setData(QStringLiteral("application/x-zanshin-object"), "object"); | 265 | data->setData(QStringLiteral("application/x-zanshin-object"), "object"); | ||
262 | data->setProperty("objects", QVariant::fromValue(Domain::Artifact::List() << taskToDrop2 << noteToDrop2)); | 266 | data->setProperty("objects", QVariant::fromValue(Domain::Artifact::List() << taskToDrop2 << noteToDrop2)); | ||
263 | model->dropMimeData(data, Qt::MoveAction, -1, -1, project1Index); | 267 | model->dropMimeData(data.get(), Qt::MoveAction, -1, -1, project1Index); | ||
264 | 268 | | |||
265 | // THEN | 269 | // THEN | ||
266 | QVERIFY(projectRepositoryMock(&Domain::ProjectRepository::associate).when(project1, taskToDrop2).exactly(1)); | 270 | QVERIFY(projectRepositoryMock(&Domain::ProjectRepository::associate).when(project1, taskToDrop2).exactly(1)); | ||
267 | QVERIFY(projectRepositoryMock(&Domain::ProjectRepository::associate).when(project1, noteToDrop2).exactly(1)); | 271 | QVERIFY(projectRepositoryMock(&Domain::ProjectRepository::associate).when(project1, noteToDrop2).exactly(1)); | ||
268 | 272 | | |||
269 | // WHEN a task and a note are dropped on a context | 273 | // WHEN a task and a note are dropped on a context | ||
270 | data = new QMimeData; | 274 | data.reset(new QMimeData); | ||
271 | data->setData(QStringLiteral("application/x-zanshin-object"), "object"); | 275 | data->setData(QStringLiteral("application/x-zanshin-object"), "object"); | ||
272 | data->setProperty("objects", QVariant::fromValue(Domain::Artifact::List() << taskToDrop2 << noteToDrop2)); | 276 | data->setProperty("objects", QVariant::fromValue(Domain::Artifact::List() << taskToDrop2 << noteToDrop2)); | ||
273 | model->dropMimeData(data, Qt::MoveAction, -1, -1, context1Index); | 277 | model->dropMimeData(data.get(), Qt::MoveAction, -1, -1, context1Index); | ||
274 | 278 | | |||
275 | // THEN | 279 | // THEN | ||
276 | QVERIFY(contextRepositoryMock(&Domain::ContextRepository::associate).when(context1, taskToDrop2.objectCast<Domain::Task>()).exactly(0)); | 280 | QVERIFY(contextRepositoryMock(&Domain::ContextRepository::associate).when(context1, taskToDrop2.objectCast<Domain::Task>()).exactly(0)); | ||
277 | 281 | | |||
278 | // WHEN two tasks are dropped on a context | 282 | // WHEN two tasks are dropped on a context | ||
279 | Domain::Task::Ptr taskToDrop3(new Domain::Task); | 283 | Domain::Task::Ptr taskToDrop3(new Domain::Task); | ||
280 | Domain::Task::Ptr taskToDrop4(new Domain::Task); | 284 | Domain::Task::Ptr taskToDrop4(new Domain::Task); | ||
281 | contextRepositoryMock(&Domain::ContextRepository::associate).when(context1, taskToDrop3).thenReturn(new FakeJob(this)); | 285 | contextRepositoryMock(&Domain::ContextRepository::associate).when(context1, taskToDrop3).thenReturn(new FakeJob(this)); | ||
282 | contextRepositoryMock(&Domain::ContextRepository::associate).when(context1, taskToDrop4).thenReturn(new FakeJob(this)); | 286 | contextRepositoryMock(&Domain::ContextRepository::associate).when(context1, taskToDrop4).thenReturn(new FakeJob(this)); | ||
283 | data = new QMimeData; | 287 | data.reset(new QMimeData); | ||
284 | data->setData(QStringLiteral("application/x-zanshin-object"), "object"); | 288 | data->setData(QStringLiteral("application/x-zanshin-object"), "object"); | ||
285 | data->setProperty("objects", QVariant::fromValue(Domain::Artifact::List() << taskToDrop3 << taskToDrop4)); | 289 | data->setProperty("objects", QVariant::fromValue(Domain::Artifact::List() << taskToDrop3 << taskToDrop4)); | ||
286 | model->dropMimeData(data, Qt::MoveAction, -1, -1, context1Index); | 290 | model->dropMimeData(data.get(), Qt::MoveAction, -1, -1, context1Index); | ||
287 | 291 | | |||
288 | // THEN | 292 | // THEN | ||
289 | QVERIFY(contextRepositoryMock(&Domain::ContextRepository::associate).when(context1, taskToDrop3).exactly(1)); | 293 | QVERIFY(contextRepositoryMock(&Domain::ContextRepository::associate).when(context1, taskToDrop3).exactly(1)); | ||
290 | QVERIFY(contextRepositoryMock(&Domain::ContextRepository::associate).when(context1, taskToDrop4).exactly(1)); | 294 | QVERIFY(contextRepositoryMock(&Domain::ContextRepository::associate).when(context1, taskToDrop4).exactly(1)); | ||
291 | 295 | | |||
292 | // WHEN a task is drop on the workday | 296 | // WHEN a task is drop on the workday | ||
293 | Domain::Task::Ptr taskToDrop5(new Domain::Task); | 297 | Domain::Task::Ptr taskToDrop5(new Domain::Task); | ||
294 | taskRepositoryMock(&Domain::TaskRepository::update).when(taskToDrop5).thenReturn(new FakeJob(this)); | 298 | taskRepositoryMock(&Domain::TaskRepository::update).when(taskToDrop5).thenReturn(new FakeJob(this)); | ||
295 | data = new QMimeData; | 299 | data.reset(new QMimeData); | ||
296 | data->setData(QStringLiteral("application/x-zanshin-object"), "object"); | 300 | data->setData(QStringLiteral("application/x-zanshin-object"), "object"); | ||
297 | data->setProperty("objects", QVariant::fromValue(Domain::Artifact::List() << taskToDrop5)); | 301 | data->setProperty("objects", QVariant::fromValue(Domain::Artifact::List() << taskToDrop5)); | ||
298 | model->dropMimeData(data, Qt::MoveAction, -1, -1, workdayIndex); | 302 | model->dropMimeData(data.get(), Qt::MoveAction, -1, -1, workdayIndex); | ||
299 | 303 | | |||
300 | // THEN | 304 | // THEN | ||
301 | QCOMPARE(taskToDrop5->startDate().date(), Utils::DateTime::currentDateTime().date()); | 305 | QCOMPARE(taskToDrop5->startDate().date(), Utils::DateTime::currentDateTime().date()); | ||
302 | 306 | | |||
303 | // WHEN two task are drop on the workday | 307 | // WHEN two task are drop on the workday | ||
304 | Domain::Task::Ptr taskToDrop6(new Domain::Task); | 308 | Domain::Task::Ptr taskToDrop6(new Domain::Task); | ||
305 | Domain::Task::Ptr taskToDrop7(new Domain::Task); | 309 | Domain::Task::Ptr taskToDrop7(new Domain::Task); | ||
306 | taskRepositoryMock(&Domain::TaskRepository::update).when(taskToDrop6).thenReturn(new FakeJob(this)); | 310 | taskRepositoryMock(&Domain::TaskRepository::update).when(taskToDrop6).thenReturn(new FakeJob(this)); | ||
307 | taskRepositoryMock(&Domain::TaskRepository::update).when(taskToDrop7).thenReturn(new FakeJob(this)); | 311 | taskRepositoryMock(&Domain::TaskRepository::update).when(taskToDrop7).thenReturn(new FakeJob(this)); | ||
308 | data = new QMimeData; | 312 | data.reset(new QMimeData); | ||
309 | data->setData(QStringLiteral("application/x-zanshin-object"), "object"); | 313 | data->setData(QStringLiteral("application/x-zanshin-object"), "object"); | ||
310 | data->setProperty("objects", QVariant::fromValue(Domain::Artifact::List() << taskToDrop6 << taskToDrop7)); | 314 | data->setProperty("objects", QVariant::fromValue(Domain::Artifact::List() << taskToDrop6 << taskToDrop7)); | ||
311 | model->dropMimeData(data, Qt::MoveAction, -1, -1, workdayIndex); | 315 | model->dropMimeData(data.get(), Qt::MoveAction, -1, -1, workdayIndex); | ||
312 | 316 | | |||
313 | // THEN | 317 | // THEN | ||
314 | QCOMPARE(taskToDrop6->startDate().date(), Utils::DateTime::currentDateTime().date()); | 318 | QCOMPARE(taskToDrop6->startDate().date(), Utils::DateTime::currentDateTime().date()); | ||
315 | QCOMPARE(taskToDrop7->startDate().date(), Utils::DateTime::currentDateTime().date()); | 319 | QCOMPARE(taskToDrop7->startDate().date(), Utils::DateTime::currentDateTime().date()); | ||
316 | } | 320 | } | ||
317 | 321 | | |||
318 | 322 | | |||
319 | 323 | | |||
▲ Show 20 Lines • Show All 672 Lines • ▼ Show 20 Line(s) | 948 | { | |||
992 | QAbstractItemModel *model = pages.pageListModel(); | 996 | QAbstractItemModel *model = pages.pageListModel(); | ||
993 | const QModelIndex projectsIndex = model->index(2, 0); | 997 | const QModelIndex projectsIndex = model->index(2, 0); | ||
994 | const QModelIndex project1Index = model->index(0, 0, projectsIndex); | 998 | const QModelIndex project1Index = model->index(0, 0, projectsIndex); | ||
995 | 999 | | |||
996 | // WHEN | 1000 | // WHEN | ||
997 | auto job = new FakeJob(this); | 1001 | auto job = new FakeJob(this); | ||
998 | job->setExpectedError(KJob::KilledJobError, QStringLiteral("Foo")); | 1002 | job->setExpectedError(KJob::KilledJobError, QStringLiteral("Foo")); | ||
999 | projectRepositoryMock(&Domain::ProjectRepository::associate).when(project1, taskToDrop).thenReturn(job); | 1003 | projectRepositoryMock(&Domain::ProjectRepository::associate).when(project1, taskToDrop).thenReturn(job); | ||
1000 | QMimeData *data = new QMimeData; | 1004 | auto data = std::make_unique<QMimeData>(); | ||
1001 | data->setData(QStringLiteral("application/x-zanshin-object"), "object"); | 1005 | data->setData(QStringLiteral("application/x-zanshin-object"), "object"); | ||
1002 | data->setProperty("objects", QVariant::fromValue(Domain::Artifact::List() << taskToDrop)); | 1006 | data->setProperty("objects", QVariant::fromValue(Domain::Artifact::List() << taskToDrop)); | ||
1003 | model->dropMimeData(data, Qt::MoveAction, -1, -1, project1Index); | 1007 | model->dropMimeData(data.get(), Qt::MoveAction, -1, -1, project1Index); | ||
1004 | 1008 | | |||
1005 | // THEN | 1009 | // THEN | ||
1006 | QTest::qWait(150); | 1010 | QTest::qWait(150); | ||
1007 | QCOMPARE(errorHandler.m_message, QStringLiteral("Cannot add taskDropped to project Project 1: Foo")); | 1011 | QCOMPARE(errorHandler.m_message, QStringLiteral("Cannot add taskDropped to project Project 1: Foo")); | ||
1008 | } | 1012 | } | ||
1009 | 1013 | | |||
1010 | void shouldGetAnErrorMessageWhenAssociateContextFailed() | 1014 | void shouldGetAnErrorMessageWhenAssociateContextFailed() | ||
1011 | { | 1015 | { | ||
▲ Show 20 Lines • Show All 46 Lines • ▼ Show 20 Line(s) | |||||
1058 | QAbstractItemModel *model = pages.pageListModel(); | 1062 | QAbstractItemModel *model = pages.pageListModel(); | ||
1059 | const QModelIndex contextsIndex = model->index(3, 0); | 1063 | const QModelIndex contextsIndex = model->index(3, 0); | ||
1060 | const QModelIndex context1Index = model->index(0, 0, contextsIndex); | 1064 | const QModelIndex context1Index = model->index(0, 0, contextsIndex); | ||
1061 | 1065 | | |||
1062 | // WHEN | 1066 | // WHEN | ||
1063 | auto job = new FakeJob(this); | 1067 | auto job = new FakeJob(this); | ||
1064 | job->setExpectedError(KJob::KilledJobError, QStringLiteral("Foo")); | 1068 | job->setExpectedError(KJob::KilledJobError, QStringLiteral("Foo")); | ||
1065 | contextRepositoryMock(&Domain::ContextRepository::associate).when(context1, taskToDrop.objectCast<Domain::Task>()).thenReturn(job); | 1069 | contextRepositoryMock(&Domain::ContextRepository::associate).when(context1, taskToDrop.objectCast<Domain::Task>()).thenReturn(job); | ||
1066 | auto data = new QMimeData; | 1070 | auto data = std::make_unique<QMimeData>(); | ||
1067 | data->setData(QStringLiteral("application/x-zanshin-object"), "object"); | 1071 | data->setData(QStringLiteral("application/x-zanshin-object"), "object"); | ||
1068 | data->setProperty("objects", QVariant::fromValue(Domain::Artifact::List() << taskToDrop)); | 1072 | data->setProperty("objects", QVariant::fromValue(Domain::Artifact::List() << taskToDrop)); | ||
1069 | model->dropMimeData(data, Qt::MoveAction, -1, -1, context1Index); | 1073 | model->dropMimeData(data.get(), Qt::MoveAction, -1, -1, context1Index); | ||
1070 | 1074 | | |||
1071 | // THEN | 1075 | // THEN | ||
1072 | QTest::qWait(150); | 1076 | QTest::qWait(150); | ||
1073 | QCOMPARE(errorHandler.m_message, QStringLiteral("Cannot add taskDropped to context context 1: Foo")); | 1077 | QCOMPARE(errorHandler.m_message, QStringLiteral("Cannot add taskDropped to context context 1: Foo")); | ||
1074 | } | 1078 | } | ||
1075 | 1079 | | |||
1076 | void shouldGetAnErrorMessageWhenDissociateFailed() | 1080 | void shouldGetAnErrorMessageWhenDissociateFailed() | ||
1077 | { | 1081 | { | ||
Show All 34 Lines | |||||
1112 | QAbstractItemModel *model = pages.pageListModel(); | 1116 | QAbstractItemModel *model = pages.pageListModel(); | ||
1113 | const QModelIndex inboxIndex = model->index(0, 0); | 1117 | const QModelIndex inboxIndex = model->index(0, 0); | ||
1114 | 1118 | | |||
1115 | // WHEN | 1119 | // WHEN | ||
1116 | auto job = new FakeJob(this); | 1120 | auto job = new FakeJob(this); | ||
1117 | job->setExpectedError(KJob::KilledJobError, QStringLiteral("Foo")); | 1121 | job->setExpectedError(KJob::KilledJobError, QStringLiteral("Foo")); | ||
1118 | projectRepositoryMock(&Domain::ProjectRepository::dissociate).when(taskToDrop).thenReturn(job); | 1122 | projectRepositoryMock(&Domain::ProjectRepository::dissociate).when(taskToDrop).thenReturn(job); | ||
1119 | taskRepositoryMock(&Domain::TaskRepository::dissociateAll).when(taskToDrop.objectCast<Domain::Task>()).thenReturn(new FakeJob(this)); | 1123 | taskRepositoryMock(&Domain::TaskRepository::dissociateAll).when(taskToDrop.objectCast<Domain::Task>()).thenReturn(new FakeJob(this)); | ||
1120 | auto data = new QMimeData; | 1124 | auto data = std::make_unique<QMimeData>(); | ||
1121 | data->setData(QStringLiteral("application/x-zanshin-object"), "object"); | 1125 | data->setData(QStringLiteral("application/x-zanshin-object"), "object"); | ||
1122 | data->setProperty("objects", QVariant::fromValue(Domain::Artifact::List() << taskToDrop)); | 1126 | data->setProperty("objects", QVariant::fromValue(Domain::Artifact::List() << taskToDrop)); | ||
1123 | model->dropMimeData(data, Qt::MoveAction, -1, -1, inboxIndex); | 1127 | model->dropMimeData(data.get(), Qt::MoveAction, -1, -1, inboxIndex); | ||
1124 | 1128 | | |||
1125 | // THEN | 1129 | // THEN | ||
1126 | QTest::qWait(150); | 1130 | QTest::qWait(150); | ||
1127 | QCOMPARE(errorHandler.m_message, QStringLiteral("Cannot move taskDropped to Inbox: Foo")); | 1131 | QCOMPARE(errorHandler.m_message, QStringLiteral("Cannot move taskDropped to Inbox: Foo")); | ||
1128 | } | 1132 | } | ||
1129 | }; | 1133 | }; | ||
1130 | 1134 | | |||
1131 | ZANSHIN_TEST_MAIN(AvailableTaskPagesModelTest) | 1135 | ZANSHIN_TEST_MAIN(AvailableTaskPagesModelTest) | ||
1132 | 1136 | | |||
1133 | #include "availabletaskpagesmodeltest.moc" | 1137 | #include "availabletaskpagesmodeltest.moc" |