diff options
Diffstat (limited to 'tests/auto/installer/solver/tst_solver.cpp')
-rw-r--r-- | tests/auto/installer/solver/tst_solver.cpp | 40 |
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"); |