Skip to content
This repository was archived by the owner on Mar 4, 2023. It is now read-only.

Commit 0d5f0ae

Browse files
committed
tested generic resolver exception
1 parent 1ebb572 commit 0d5f0ae

File tree

3 files changed

+18
-3
lines changed

3 files changed

+18
-3
lines changed

tests/auto/datasync/TestSyncController/testresolver.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@ TestData TestResolver::resolveConflict(TestData data1, TestData data2, QObject *
1010
Q_ASSERT_X(data1.id == data2.id, Q_FUNC_INFO, "resolveConflict called on different datasets");
1111

1212
TestData resData(data1.id);
13+
if(shouldThrow)
14+
throw NoConflictResultException{};
1315
if(data1.text < data2.text)
1416
resData.text = data1.text + QStringLiteral("+conflict");
1517
else if(data2.text < data1.text)

tests/auto/datasync/TestSyncController/testresolver.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@ class TestResolver : public QtDataSync::GenericConflictResolver<TestData>
1414
explicit TestResolver(QObject *parent = nullptr);
1515

1616
TestData resolveConflict(TestData data1, TestData data2, QObject *parent) const override;
17+
18+
bool shouldThrow = false;
1719
};
1820

1921
#endif // TESTRESOLVER_H

tests/auto/datasync/TestSyncController/tst_synccontroller.cpp

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -490,15 +490,23 @@ void TestSyncController::testResolver_data()
490490
QTest::addColumn<QJsonObject>("localData");
491491
QTest::addColumn<QJsonObject>("remoteData");
492492
QTest::addColumn<QJsonObject>("resultData");
493+
QTest::addColumn<bool>("testThrow");
493494

494495
QTest::newRow("conflict:local") << TestLib::generateKey(10)
495496
<< TestLib::generateDataJson(10, QStringLiteral("dataA"))
496497
<< TestLib::generateDataJson(10, QStringLiteral("dataB"))
497-
<< TestLib::generateDataJson(10, QStringLiteral("dataA+conflict"));
498+
<< TestLib::generateDataJson(10, QStringLiteral("dataA+conflict"))
499+
<< false;
498500
QTest::newRow("conflict:remote") << TestLib::generateKey(10)
499501
<< TestLib::generateDataJson(10, QStringLiteral("dataB"))
500502
<< TestLib::generateDataJson(10, QStringLiteral("dataA"))
501-
<< TestLib::generateDataJson(10, QStringLiteral("dataA+conflict"));
503+
<< TestLib::generateDataJson(10, QStringLiteral("dataA+conflict"))
504+
<< false;
505+
QTest::newRow("conflict:throw") << TestLib::generateKey(10)
506+
<< TestLib::generateDataJson(10, QStringLiteral("dataA"))
507+
<< TestLib::generateDataJson(10, QStringLiteral("dataB"))
508+
<< TestLib::generateDataJson(10, QStringLiteral("dataB"))
509+
<< true;
502510
}
503511

504512
void TestSyncController::testResolver()
@@ -507,6 +515,7 @@ void TestSyncController::testResolver()
507515
QFETCH(QJsonObject, localData);
508516
QFETCH(QJsonObject, remoteData);
509517
QFETCH(QJsonObject, resultData);
518+
QFETCH(bool, testThrow);
510519
QSignalSpy doneSpy(controller, &SyncController::syncDone);
511520
QSignalSpy errorSpy(controller, &SyncController::controllerError);
512521

@@ -517,7 +526,9 @@ void TestSyncController::testResolver()
517526

518527
auto dPriv = DefaultsPrivate::obtainDefaults(DefaultSetup);
519528
auto oldRes = dPriv->resolver;
520-
dPriv->resolver = new TestResolver(controller);
529+
auto testRes = new TestResolver(controller);
530+
testRes->shouldThrow = testThrow;
531+
dPriv->resolver = testRes;
521532
dPriv->resolver->setDefaults(dPriv);
522533

523534
//step 1: setup the local store

0 commit comments

Comments
 (0)