summaryrefslogtreecommitdiffstats
path: root/tests/auto/installer/solver/tst_solver.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/installer/solver/tst_solver.cpp')
-rw-r--r--tests/auto/installer/solver/tst_solver.cpp52
1 files changed, 49 insertions, 3 deletions
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 <component.h>
#include <graph.h>
#include <installercalculator.h>
+#include <uninstallercalculator.h>
#include <packagemanagercore.h>
#include <QTest>
@@ -149,7 +150,7 @@ private slots:
qPrintable(cycle.first.data()));
}
- void resolve_data()
+ void resolveInstaller_data()
{
QTest::addColumn<PackageManagerCore *>("core");
QTest::addColumn<QList<Component *> >("selectedComponents");
@@ -168,7 +169,7 @@ private slots:
core->appendRootComponent(componentA);
core->appendRootComponent(componentB);
- QTest::newRow("Simple resolved") << core
+ QTest::newRow("Installer resolved") << core
<< (QList<Component *>() << componentB)
<< (QList<Component *>() << componentAB << componentB)
<< (QList<int>()
@@ -176,7 +177,7 @@ private slots:
<< InstallerCalculator::Resolved);
}
- void resolve()
+ void resolveInstaller()
{
QFETCH(PackageManagerCore *, core);
QFETCH(QList<Component *> , selectedComponents);
@@ -194,6 +195,51 @@ private slots:
}
delete core;
}
+
+ void resolveUninstaller_data()
+ {
+ QTest::addColumn<PackageManagerCore *>("core");
+ QTest::addColumn<QList<Component *> >("selectedToUninstall");
+ QTest::addColumn<QList<Component *> >("installedComponents");
+ QTest::addColumn<QSet<Component *> >("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<Component *>() << componentAB)
+ << (QList<Component *>() << componentA << componentB << componentAB)
+ << (QSet<Component *>() << componentAB << componentB);
+ }
+
+ void resolveUninstaller()
+ {
+ QFETCH(PackageManagerCore *, core);
+ QFETCH(QList<Component *> , selectedToUninstall);
+ QFETCH(QList<Component *> , installedComponents);
+ QFETCH(QSet<Component *> , expectedResult);
+
+ UninstallerCalculator calc(installedComponents);
+ calc.appendComponentsToUninstall(selectedToUninstall);
+ QSet<Component *> result = calc.componentsToUninstall();
+
+ QCOMPARE(result.count(), expectedResult.count());
+ QCOMPARE(result, expectedResult);
+ delete core;
+ }
};
QTEST_MAIN(tst_Solver)