From a1111938ad040dd28ee1fd3638d57f7330d5854f Mon Sep 17 00:00:00 2001 From: Claudio Cambra Date: Wed, 1 Mar 2023 13:16:37 +0100 Subject: [PATCH] Add test to check that the sortedactivitylistmodel correctly gets updated when the sourcemodel does Signed-off-by: Claudio Cambra --- test/testsortedactivitylistmodel.cpp | 28 ++++++++++++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) diff --git a/test/testsortedactivitylistmodel.cpp b/test/testsortedactivitylistmodel.cpp index 5fa195bf0..e6214b933 100644 --- a/test/testsortedactivitylistmodel.cpp +++ b/test/testsortedactivitylistmodel.cpp @@ -44,7 +44,8 @@ public: OCC::Activity testSyncFileItemActivity; OCC::Activity testFileIgnoredActivity; - QSharedPointer testingSortedALM() { + QSharedPointer testingSortedALM() + { const auto model = new TestingALM; model->setAccountState(accountState.data()); @@ -55,6 +56,17 @@ public: return sortedModel; } + void addActivity(QSharedPointer model, + void(OCC::ActivityListModel::*addingMethod)(const OCC::Activity&), + OCC::Activity &activity) + { + const auto originalRowCount = model->rowCount(); + const auto sourceModel = dynamic_cast(model->sourceModel()); + + (sourceModel->*addingMethod)(activity); + QCOMPARE(model->rowCount(), originalRowCount + 1); + } + private slots: void initTestCase() { @@ -100,9 +112,21 @@ private slots: QCOMPARE(model->rowCount(), sourceModel->rowCount()); } - void testSortOrder() + void testUpdate() { + const auto model = testingSortedALM(); + const auto sourceModel = dynamic_cast(model->sourceModel()); + + sourceModel->setCurrentItem(FakeRemoteActivityStorage::instance()->startingIdLast()); + sourceModel->startFetchJob(); + QSignalSpy activitiesJob(sourceModel, &TestingALM::activitiesProcessed); + QVERIFY(activitiesJob.wait(3000)); + QCOMPARE(sourceModel->rowCount(), 50); + addActivity(model, &TestingALM::addSyncFileItemToActivityList, testSyncFileItemActivity); + addActivity(model, &TestingALM::addNotificationToActivityList, testNotificationActivity); + addActivity(model, &TestingALM::addErrorToActivityList, testSyncResultErrorActivity); + addActivity(model, &TestingALM::addIgnoredFileToList, testFileIgnoredActivity); } }; -- 2.30.2