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.cpp40
1 files changed, 39 insertions, 1 deletions
diff --git a/tests/auto/installer/solver/tst_solver.cpp b/tests/auto/installer/solver/tst_solver.cpp
index 5ccf0b2c8..5829621f2 100644
--- a/tests/auto/installer/solver/tst_solver.cpp
+++ b/tests/auto/installer/solver/tst_solver.cpp
@@ -155,15 +155,19 @@ private slots:
componentA->appendComponent(componentAA);
componentA->appendComponent(componentAB);
NamedComponent *componentB = new NamedComponent(core, QLatin1String("B"));
+ NamedComponent *componentB_NewVersion = new NamedComponent(core, QLatin1String("B_version"), QLatin1String("2.0.0"));
componentB->addDependency(QLatin1String("A.B"));
+ componentAB->addDependency(QLatin1String("B_version->=2.0.0"));
core->appendRootComponent(componentA);
core->appendRootComponent(componentB);
+ core->appendRootComponent(componentB_NewVersion);
QTest::newRow("Installer resolved") << core
<< (QList<Component *>() << componentB)
- << (QList<Component *>() << componentAB << componentB)
+ << (QList<Component *>() << componentB_NewVersion << componentAB << componentB)
<< (QList<int>()
<< InstallerCalculator::Dependent
+ << InstallerCalculator::Dependent
<< InstallerCalculator::Resolved);
}
@@ -186,6 +190,40 @@ private slots:
delete core;
}
+ void unresolvedDependencyVersion_data()
+ {
+ QTest::addColumn<PackageManagerCore *>("core");
+ QTest::addColumn<QList<Component *> >("selectedComponents");
+ QTest::addColumn<QList<Component *> >("expectedResult");
+
+ PackageManagerCore *core = new PackageManagerCore();
+ core->setPackageManager();
+ NamedComponent *componentA = new NamedComponent(core, QLatin1String("A"));
+ NamedComponent *componentB = new NamedComponent(core, QLatin1String("B"), QLatin1String("1.0.0"));
+ componentA->addDependency(QLatin1String("B->=2.0.0"));
+ core->appendRootComponent(componentA);
+ core->appendRootComponent(componentB);
+
+ QTest::newRow("Installer resolved") << core
+ << (QList<Component *>() << componentA)
+ << (QList<Component *>());
+ }
+
+ void unresolvedDependencyVersion()
+ {
+ QFETCH(PackageManagerCore *, core);
+ QFETCH(QList<Component *> , selectedComponents);
+ QFETCH(QList<Component *> , expectedResult);
+
+ InstallerCalculator calc(core->components(PackageManagerCore::ComponentType::AllNoReplacements));
+ QTest::ignoreMessage(QtWarningMsg, "Cannot find missing dependency \"B->=2.0.0\" for \"A\".");
+ calc.appendComponentsToInstall(selectedComponents);
+
+ QList<Component *> result = calc.orderedComponentsToInstall();
+ QCOMPARE(result.count(), expectedResult.count());
+ delete core;
+ }
+
void resolveUninstaller_data()
{
QTest::addColumn<PackageManagerCore *>("core");