blob: 506d4e04161df7205cf0ef37353d4c07feb9553d [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2009 IBM Corporation and others. All rights reserved.
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v1.0 which accompanies this distribution,
* and is available at http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* IBM Corporation - initial implementation and ideas
******************************************************************************/
package org.eclipse.equinox.p2.cudf.tests;
import java.util.Collection;
import junit.framework.TestCase;
import org.eclipse.equinox.p2.cudf.metadata.*;
import org.eclipse.equinox.p2.cudf.query.QueryableArray;
import org.eclipse.equinox.p2.cudf.solver.*;
public class TestOptional extends TestCase {
private QueryableArray dataSet;
protected void setUp() throws Exception {
InstallableUnit iu = new InstallableUnit();
iu.setId("A");
iu.setVersion(new Version(1, 0, 0));
iu.setCapabilities(new ProvidedCapability[] {new ProvidedCapability("A", new VersionRange(new Version(1, 0, 0), true, new Version(1, 0, 0), true))});
InstallableUnit iu2 = new InstallableUnit();
iu2.setId("A");
iu2.setVersion(new Version(2, 0, 0));
iu2.setCapabilities(new ProvidedCapability[] {new ProvidedCapability("A", new VersionRange(new Version(2, 0, 0), true, new Version(2, 0, 0), true))});
InstallableUnit iu3 = new InstallableUnit();
iu3.setId("A");
iu3.setVersion(new Version(3, 0, 0));
iu3.setCapabilities(new ProvidedCapability[] {new ProvidedCapability("A", new VersionRange(new Version(3, 0, 0), true, new Version(3, 0, 0), true))});
iu3.setRequiredCapabilities(new IRequiredCapability[] {new RequiredCapability("missing", VersionRange.emptyRange)});
dataSet = new QueryableArray(new InstallableUnit[] {iu, iu2, iu3});
}
public void testFailInstall() {
ProfileChangeRequest pcr = new ProfileChangeRequest(dataSet);
pcr.addInstallableUnit(new RequiredCapability("A", new VersionRange("[3.0.0, 3.0.0]")));
pcr.addInstallableUnit(new RequiredCapability("A", new VersionRange("[2.0.0, 2.0.0]")));
pcr.addInstallableUnit(new RequiredCapability("A", new VersionRange("[1.0.0, 1.0.0]")));
Object result = new SimplePlanner().getSolutionFor(pcr, new SolverConfiguration("paranoid", "1000c", true, false));
assertEquals(false, result instanceof Collection);
}
public void testPassInstall() {
ProfileChangeRequest pcr = new ProfileChangeRequest(dataSet);
pcr.addInstallableUnit(new RequiredCapability("A", new VersionRange("[3.0.0, 3.0.0]"), true));
pcr.addInstallableUnit(new RequiredCapability("A", new VersionRange("[2.0.0, 2.0.0]")));
pcr.addInstallableUnit(new RequiredCapability("A", new VersionRange("[1.0.0, 1.0.0]")));
Object result = new SimplePlanner().getSolutionFor(pcr, new SolverConfiguration("paranoid", "1000c", true, false));
assertEquals(true, result instanceof Collection);
assertEquals(2, ((Collection) result).size());
}
}