From 7f97957097ab38ae6e00c1325b840cc22cae33fc Mon Sep 17 00:00:00 2001 From: jkobus Date: Tue, 7 Oct 2014 16:01:45 +0200 Subject: Move the uninstallation calculations into UninstallerCalculator Change-Id: I1b398815414430c2fab9a5c611b44e3a92c2fb39 Reviewed-by: Jarek Kobus --- tests/auto/installer/solver/tst_solver.cpp | 52 ++++++++++++++++++++++++++++-- 1 file changed, 49 insertions(+), 3 deletions(-) (limited to 'tests') diff --git a/tests/auto/installer/solver/tst_solver.cpp b/tests/auto/installer/solver/tst_solver.cpp index 3c1530a1c..b2a932419 100644 --- a/tests/auto/installer/solver/tst_solver.cpp +++ b/tests/auto/installer/solver/tst_solver.cpp @@ -42,6 +42,7 @@ #include #include #include +#include #include #include @@ -149,7 +150,7 @@ private slots: qPrintable(cycle.first.data())); } - void resolve_data() + void resolveInstaller_data() { QTest::addColumn("core"); QTest::addColumn >("selectedComponents"); @@ -168,7 +169,7 @@ private slots: core->appendRootComponent(componentA); core->appendRootComponent(componentB); - QTest::newRow("Simple resolved") << core + QTest::newRow("Installer resolved") << core << (QList() << componentB) << (QList() << componentAB << componentB) << (QList() @@ -176,7 +177,7 @@ private slots: << InstallerCalculator::Resolved); } - void resolve() + void resolveInstaller() { QFETCH(PackageManagerCore *, core); QFETCH(QList , selectedComponents); @@ -194,6 +195,51 @@ private slots: } delete core; } + + void resolveUninstaller_data() + { + QTest::addColumn("core"); + QTest::addColumn >("selectedToUninstall"); + QTest::addColumn >("installedComponents"); + QTest::addColumn >("expectedResult"); + + PackageManagerCore *core = new PackageManagerCore(); + core->setPackageManager(); + NamedComponent *componentA = new NamedComponent(core, QLatin1String("A")); + NamedComponent *componentAA = new NamedComponent(core, QLatin1String("A.A")); + NamedComponent *componentAB = new NamedComponent(core, QLatin1String("A.B")); + componentA->appendComponent(componentAA); + componentA->appendComponent(componentAB); + NamedComponent *componentB = new NamedComponent(core, QLatin1String("B")); + componentB->addDependency(QLatin1String("A.B")); + core->appendRootComponent(componentA); + core->appendRootComponent(componentB); + + componentA->setInstalled(); + componentB->setInstalled(); + componentAB->setInstalled(); + + QTest::newRow("Uninstaller resolved") << core + << (QList() << componentAB) + << (QList() << componentA << componentB << componentAB) + << (QSet() << componentAB << componentB); + } + + void resolveUninstaller() + { + QFETCH(PackageManagerCore *, core); + QFETCH(QList , selectedToUninstall); + QFETCH(QList , installedComponents); + QFETCH(QSet , expectedResult); + + UninstallerCalculator calc(installedComponents); + calc.appendComponentsToUninstall(selectedToUninstall); + QSet result = calc.componentsToUninstall(); + + QCOMPARE(result.count(), expectedResult.count()); + QCOMPARE(result, expectedResult); + delete core; + } }; QTEST_MAIN(tst_Solver) -- cgit v1.2.3