blob: a5b4103c1bec7cf3c4cce15e5730c15e66afe072 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2007, 2008 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 API and implementation
*******************************************************************************/
package org.eclipse.equinox.p2.tests.director;
import java.util.ArrayList;
import java.util.Collection;
import org.eclipse.equinox.internal.p2.director.OperationGenerator;
import org.eclipse.equinox.internal.p2.metadata.ResolvedInstallableUnit;
import org.eclipse.equinox.internal.p2.resolution.ResolutionHelper;
import org.eclipse.equinox.internal.provisional.p2.core.Version;
import org.eclipse.equinox.internal.provisional.p2.core.VersionRange;
import org.eclipse.equinox.internal.provisional.p2.engine.InstallableUnitOperand;
import org.eclipse.equinox.internal.provisional.p2.metadata.*;
import org.eclipse.equinox.internal.provisional.p2.metadata.MetadataFactory.InstallableUnitDescription;
import org.eclipse.equinox.p2.tests.AbstractProvisioningTest;
public class OperationGenerationTest extends AbstractProvisioningTest {
public void testInstallUninstall() {
IInstallableUnit a1 = createIU("a", new Version(1, 0, 0), false);
IInstallableUnit a2 = createIU("a", new Version(2, 0, 0), false);
IInstallableUnit a3 = createIU("a", new Version(3, 0, 0), false);
Collection from;
from = new ArrayList();
from.add(a1);
from.add(a2);
Collection to;
to = new ArrayList();
to.add(a1);
to.add(a3);
from = new ResolutionHelper(null, null).attachCUs(from);
to = new ResolutionHelper(null, null).attachCUs(to);
InstallableUnitOperand[] operands = new OperationGenerator().generateOperation(from, to);
// 1 x install
// 1 x uninstall
assertEquals(2, operands.length);
}
public void test1() {
IInstallableUnit a1 = createIU("a", new Version(1, 0, 0), false);
IInstallableUnit a2 = createIU("a", new Version(2, 0, 0), false);
IInstallableUnit a3 = createIU("a", new Version(3, 0, 0), false);
Collection from;
from = new ArrayList();
from.add(a1);
from.add(a3);
Collection to;
to = new ArrayList();
to.add(a1);
to.add(a3);
to.add(a2);
from = new ResolutionHelper(null, null).attachCUs(from);
to = new ResolutionHelper(null, null).attachCUs(to);
InstallableUnitOperand[] operands = new OperationGenerator().generateOperation(from, to);
// 1 x install
assertEquals(1, operands.length);
}
public void test2() {
IInstallableUnit a1 = createIU("a", new Version(1, 0, 0), false);
IInstallableUnit a2 = createIU("a", new Version(2, 0, 0), false);
IInstallableUnit a3 = createIU("a", new Version(3, 0, 0), false);
Collection from;
from = new ArrayList();
from.add(a1);
from.add(a2);
from.add(a3);
Collection to;
to = new ArrayList();
to.add(a1);
to.add(a3);
from = new ResolutionHelper(null, null).attachCUs(from);
to = new ResolutionHelper(null, null).attachCUs(to);
InstallableUnitOperand[] operands = new OperationGenerator().generateOperation(from, to);
// 1 x uninstall
assertEquals(1, operands.length);
}
public void testUpdate1() {
IInstallableUnit a = createIU("a", new Version(1, 0, 0), false);
InstallableUnitDescription b = new MetadataFactory.InstallableUnitDescription();
b.setId("b");
b.setVersion(new Version(1, 0, 0));
b.setUpdateDescriptor(MetadataFactory.createUpdateDescriptor("a", new VersionRange("[1.0.0, 2.0.0)"), IUpdateDescriptor.NORMAL, null));
Collection from;
from = new ArrayList();
from.add(a);
Collection to;
to = new ArrayList();
to.add(MetadataFactory.createInstallableUnit(b));
from = new ResolutionHelper(null, null).attachCUs(from);
to = new ResolutionHelper(null, null).attachCUs(to);
InstallableUnitOperand[] operands = new OperationGenerator().generateOperation(from, to);
// 1 x upgrade
assertEquals(1, operands.length);
}
public void testUpdate2() {
IInstallableUnit a1 = createIU("a", new Version(1, 0, 0), false);
IInstallableUnit a2 = createIU("a", new Version(2, 0, 0), false);
InstallableUnitDescription b = new MetadataFactory.InstallableUnitDescription();
b.setId("b");
b.setVersion(new Version(1, 0, 0));
b.setUpdateDescriptor(MetadataFactory.createUpdateDescriptor("a", new VersionRange("[1.0.0, 3.0.0)"), IUpdateDescriptor.NORMAL, null));
Collection from;
from = new ArrayList();
from.add(a1);
from.add(a2);
Collection to;
to = new ArrayList();
to.add(MetadataFactory.createInstallableUnit(b));
from = new ResolutionHelper(null, null).attachCUs(from);
to = new ResolutionHelper(null, null).attachCUs(to);
InstallableUnitOperand[] operands = new OperationGenerator().generateOperation(from, to);
// 1 x install
// 2 x uninstall
assertEquals(3, operands.length);
}
public void testUpdate3() {
IInstallableUnit a1 = createIU("a", new Version(1, 0, 0), false);
IInstallableUnit a2 = createIU("a", new Version(2, 0, 0), false);
InstallableUnitDescription b = new MetadataFactory.InstallableUnitDescription();
b.setId("b");
b.setVersion(new Version(1, 0, 0));
b.setUpdateDescriptor(MetadataFactory.createUpdateDescriptor("a", new VersionRange("[1.0.0, 2.0.0)"), IUpdateDescriptor.NORMAL, null));
InstallableUnitDescription c = new MetadataFactory.InstallableUnitDescription();
c.setId("c");
c.setVersion(new Version(1, 0, 0));
c.setUpdateDescriptor(MetadataFactory.createUpdateDescriptor("a", new VersionRange("[2.0.0, 2.3.0)"), IUpdateDescriptor.NORMAL, null));
Collection from;
from = new ArrayList();
from.add(a1);
from.add(a2);
Collection to;
to = new ArrayList();
to.add(MetadataFactory.createInstallableUnit(b));
to.add(MetadataFactory.createInstallableUnit(c));
from = new ResolutionHelper(null, null).attachCUs(from);
to = new ResolutionHelper(null, null).attachCUs(to);
InstallableUnitOperand[] operands = new OperationGenerator().generateOperation(from, to);
// 2 x update
assertEquals(2, operands.length);
}
public void testUpdate4() {
IInstallableUnit a1 = createIU("a", new Version(1, 0, 0), false);
IInstallableUnit a2 = createIU("a", new Version(2, 0, 0), false);
IInstallableUnit b1 = createIU("b", new Version(1, 0, 0), false);
InstallableUnitDescription b2 = new MetadataFactory.InstallableUnitDescription();
b2.setId("b");
b2.setVersion(new Version(2, 0, 0));
b2.setUpdateDescriptor(MetadataFactory.createUpdateDescriptor("b", new VersionRange("[1.0.0, 2.0.0)"), IUpdateDescriptor.NORMAL, null));
Collection from;
from = new ArrayList();
from.add(a1);
from.add(a2);
from.add(b1);
Collection to;
to = new ArrayList();
to.add(a1);
to.add(a2);
to.add(MetadataFactory.createInstallableUnit(b2));
from = new ResolutionHelper(null, null).attachCUs(from);
to = new ResolutionHelper(null, null).attachCUs(to);
InstallableUnitOperand[] operands = new OperationGenerator().generateOperation(from, to);
// 1 x update
assertEquals(1, operands.length);
}
public void testUpdate5() {
IInstallableUnit a1 = createIU("a", new Version(1, 0, 0), false);
IInstallableUnit a2 = createIU("a", new Version(2, 0, 0), false);
IInstallableUnit b1 = createIU("b", new Version(1, 0, 0), false);
InstallableUnitDescription b2 = new MetadataFactory.InstallableUnitDescription();
b2.setId("b");
b2.setVersion(new Version(2, 0, 0));
b2.setUpdateDescriptor(MetadataFactory.createUpdateDescriptor("b", new VersionRange("[1.0.0, 2.0.0)"), IUpdateDescriptor.NORMAL, null));
Collection from;
from = new ArrayList();
from.add(a1);
from.add(a2);
from.add(b1);
Collection to;
to = new ArrayList();
to.add(a1);
to.add(MetadataFactory.createInstallableUnit(b2));
from = new ResolutionHelper(null, null).attachCUs(from);
to = new ResolutionHelper(null, null).attachCUs(to);
InstallableUnitOperand[] operands = new OperationGenerator().generateOperation(from, to);
// 1 x update
// 1 x uninstall
assertEquals(2, operands.length);
}
public void test248468b() {
String id = "myBundle";
IUpdateDescriptor update = createUpdateDescriptor(id, new Version("1.0.0"));
IInstallableUnit one = createIU(id, new Version("1.0.0"), null, NO_REQUIRES, NO_PROVIDES, NO_PROPERTIES, ITouchpointType.NONE, NO_TP_DATA, false, update);
IUpdateDescriptor update2 = createUpdateDescriptor(id, new Version("2.0.0"));
IInstallableUnit two = createIU(id, new Version("2.0.0"), null, NO_REQUIRES, NO_PROVIDES, NO_PROPERTIES, ITouchpointType.NONE, NO_TP_DATA, false, update2);
IUpdateDescriptor update3 = createUpdateDescriptor(id, new Version("3.0.0"));
IInstallableUnit three = createIU(id, new Version("3.0.0"), null, NO_REQUIRES, NO_PROVIDES, NO_PROPERTIES, ITouchpointType.NONE, NO_TP_DATA, false, update3);
Collection from = new ArrayList();
from.add(MetadataFactory.createResolvedInstallableUnit(one, new IInstallableUnitFragment[0]));
from.add(MetadataFactory.createResolvedInstallableUnit(two, new IInstallableUnitFragment[0]));
from.add(MetadataFactory.createResolvedInstallableUnit(three, new IInstallableUnitFragment[0]));
Collection to = new ArrayList();
to.add(MetadataFactory.createResolvedInstallableUnit(three, new IInstallableUnitFragment[0]));
from = new ResolutionHelper(null, null).attachCUs(from);
to = new ResolutionHelper(null, null).attachCUs(to);
InstallableUnitOperand[] operands = new OperationGenerator().generateOperation(from, to);
//We are uninstalling myBundle 1.0 and 2.0. 3.0 stays unchanged.
for (int i = 0; i < operands.length; i++) {
assertNotSame("3.0", three, operands[i].first());
assertNotSame("3.0.1", three, operands[i].second());
}
assertEquals("3.1", one, operands[0].first());
assertNull("3.2", operands[0].second());
assertEquals("3.3", two, operands[1].first());
assertNull("3.4", operands[1].second());
}
public void test248468d() {
String id = "myBundle";
IUpdateDescriptor update = createUpdateDescriptor(id, new Version("1.0.0"));
IInstallableUnit one = createIU(id, new Version("1.0.0"), null, NO_REQUIRES, NO_PROVIDES, NO_PROPERTIES, ITouchpointType.NONE, NO_TP_DATA, false, update);
update = createUpdateDescriptor(id, new Version("2.0.0"));
IInstallableUnit two = createIU(id, new Version("2.0.0"), null, NO_REQUIRES, NO_PROVIDES, NO_PROPERTIES, ITouchpointType.NONE, NO_TP_DATA, false, update);
IUpdateDescriptor update3 = createUpdateDescriptor(id, new Version("3.0.0"));
IInstallableUnit three = createIU("anotherBundle", new Version("3.0.0"), null, NO_REQUIRES, NO_PROVIDES, NO_PROPERTIES, ITouchpointType.NONE, NO_TP_DATA, false, update3);
Collection from = new ArrayList();
from.add(MetadataFactory.createResolvedInstallableUnit(one, new IInstallableUnitFragment[0]));
from.add(MetadataFactory.createResolvedInstallableUnit(two, new IInstallableUnitFragment[0]));
Collection to = new ArrayList();
to.add(MetadataFactory.createResolvedInstallableUnit(two, new IInstallableUnitFragment[0]));
to.add(MetadataFactory.createResolvedInstallableUnit(three, new IInstallableUnitFragment[0]));
from = new ResolutionHelper(null, null).attachCUs(from);
to = new ResolutionHelper(null, null).attachCUs(to);
InstallableUnitOperand[] operands = new OperationGenerator().generateOperation(from, to);
//Two is already in the system therefore it will not be in the operands
for (int i = 0; i < operands.length; i++) {
assertNotSame("2.0", two, operands[i].first());
assertNotSame("2.1", two, operands[i].second());
}
//three is an update of one
assertEquals("2.2", 1, operands.length);
assertEquals("2.4", one, operands[0].first());
assertEquals("2.5", three, operands[0].second());
}
public void test248468c() {
String id = "myBundle";
IUpdateDescriptor update = createUpdateDescriptor(id, new Version("1.0.0"));
IInstallableUnit one = createIU(id, new Version("1.0.0"), null, NO_REQUIRES, NO_PROVIDES, NO_PROPERTIES, ITouchpointType.NONE, NO_TP_DATA, false, update);
update = createUpdateDescriptor(id, new Version("2.0.0"));
IInstallableUnit two = createIU(id, new Version("2.0.0"), null, NO_REQUIRES, NO_PROVIDES, NO_PROPERTIES, ITouchpointType.NONE, NO_TP_DATA, false, update);
IUpdateDescriptor update3 = MetadataFactory.createUpdateDescriptor(id, new VersionRange(new Version(2, 0, 0), true, new Version(3, 0, 0), false), IUpdateDescriptor.HIGH, "desc");
// IUpdateDescriptor update3 = createUpdateDescriptor(id, new Version("3.0.0"));
IInstallableUnit three = createIU("anotherBundle", new Version("3.0.0"), null, NO_REQUIRES, NO_PROVIDES, NO_PROPERTIES, ITouchpointType.NONE, NO_TP_DATA, false, update3);
Collection from = new ArrayList();
from.add(MetadataFactory.createResolvedInstallableUnit(one, new IInstallableUnitFragment[0]));
from.add(MetadataFactory.createResolvedInstallableUnit(two, new IInstallableUnitFragment[0]));
Collection to = new ArrayList();
to.add(MetadataFactory.createResolvedInstallableUnit(two, new IInstallableUnitFragment[0]));
to.add(MetadataFactory.createResolvedInstallableUnit(three, new IInstallableUnitFragment[0]));
from = new ResolutionHelper(null, null).attachCUs(from);
to = new ResolutionHelper(null, null).attachCUs(to);
InstallableUnitOperand[] operands = new OperationGenerator().generateOperation(from, to);
//Two is already in the system therefore it will not be in the operands
for (int i = 0; i < operands.length; i++) {
assertNotSame("2.0", two, operands[i].first());
assertNotSame("2.1", two, operands[i].second());
}
//We install three and uninstall one
assertEquals("2.2", 2, operands.length);
assertNull("2.3", operands[0].first());
assertEquals("2.4", three, operands[0].second());
assertEquals("2.5", one, operands[1].first());
assertNull("2.6", operands[1].second());
}
public void test248468() {
String id = "myBundle";
IUpdateDescriptor update = createUpdateDescriptor(id, new Version("1.0.0"));
IInstallableUnit one = createIU(id, new Version("1.0.0"), null, NO_REQUIRES, NO_PROVIDES, NO_PROPERTIES, ITouchpointType.NONE, NO_TP_DATA, false, update);
update = createUpdateDescriptor(id, new Version("2.0.0"));
IInstallableUnit two = createIU(id, new Version("2.0.0"), null, NO_REQUIRES, NO_PROVIDES, NO_PROPERTIES, ITouchpointType.NONE, NO_TP_DATA, false, update);
Collection from = new ArrayList();
from.add(MetadataFactory.createResolvedInstallableUnit(one, new IInstallableUnitFragment[0]));
from.add(MetadataFactory.createResolvedInstallableUnit(two, new IInstallableUnitFragment[0]));
Collection to = new ArrayList();
to.add(MetadataFactory.createResolvedInstallableUnit(two, new IInstallableUnitFragment[0]));
from = new ResolutionHelper(null, null).attachCUs(from);
to = new ResolutionHelper(null, null).attachCUs(to);
InstallableUnitOperand[] operands = new OperationGenerator().generateOperation(from, to);
assertEquals("1.0", 1, operands.length);
assertEquals("1.1", one, operands[0].first());
assertNull("1.2", operands[0].second());
}
public void testConfigurationChange1() {
String id = "myBundle";
String cuId = "cu";
IInstallableUnit anIU = createIU(id, new Version("1.0.0"), null, NO_REQUIRES, NO_PROVIDES, NO_PROPERTIES, ITouchpointType.NONE, NO_TP_DATA, false, null);
IInstallableUnit anotherIU = createIU("misc", new Version("1.0.0"), null, NO_REQUIRES, NO_PROVIDES, NO_PROPERTIES, ITouchpointType.NONE, NO_TP_DATA, false, null);
IInstallableUnit anotherIU2 = createIU("misc2", new Version("1.0.0"), null, NO_REQUIRES, NO_PROVIDES, NO_PROPERTIES, ITouchpointType.NONE, NO_TP_DATA, false, null);
IInstallableUnitFragment cu1 = createIUFragment(anIU, cuId, new Version("1.0.0"));
IInstallableUnitFragment cu2 = createIUFragment(anIU, cuId, new Version("2.0.0"));
Collection from = new ArrayList();
ResolvedInstallableUnit fromResolved = (ResolvedInstallableUnit) MetadataFactory.createResolvedInstallableUnit(anIU, new IInstallableUnitFragment[] {cu1});
from.add(fromResolved);
from.add(MetadataFactory.createResolvedInstallableUnit(anotherIU, new IInstallableUnitFragment[0]));
Collection to = new ArrayList();
IInstallableUnit toResolved = MetadataFactory.createResolvedInstallableUnit(anIU, new IInstallableUnitFragment[] {cu2});
to.add(toResolved);
to.add(MetadataFactory.createResolvedInstallableUnit(anotherIU2, new IInstallableUnitFragment[0]));
from = new ResolutionHelper(null, null).attachCUs(from);
to = new ResolutionHelper(null, null).attachCUs(to);
InstallableUnitOperand[] operands = new OperationGenerator().generateOperation(from, to);
assertEquals("1.0", 3, operands.length);
assertContainsConfigurationChange("2.0", operands);
assertContainsInstallableUnitOperand("3.0", operands, new InstallableUnitOperand(fromResolved, toResolved));
}
private void assertContainsInstallableUnitOperand(String message, InstallableUnitOperand[] operands, InstallableUnitOperand operand) {
for (int i = 0; i < operands.length; i++) {
if (operands[i].first() != null && operands[i].first().equals(operand.first()) && operands[i].second() != null && operands[i].second().equals(operand.second()))
return;
}
fail(message);
}
public void testConfigurationChange2() {
String id = "myBundle";
String cuId = "cu";
IInstallableUnit anIU = createIU(id, new Version("1.0.0"), null, NO_REQUIRES, NO_PROVIDES, NO_PROPERTIES, ITouchpointType.NONE, NO_TP_DATA, false, null);
IInstallableUnitFragment cu2 = createIUFragment(anIU, cuId, new Version("2.0.0"));
Collection from = new ArrayList();
ResolvedInstallableUnit fromResolved = (ResolvedInstallableUnit) MetadataFactory.createResolvedInstallableUnit(anIU, new IInstallableUnitFragment[0]);
from.add(fromResolved);
Collection to = new ArrayList();
IInstallableUnit toResolved = MetadataFactory.createResolvedInstallableUnit(anIU, new IInstallableUnitFragment[] {cu2});
to.add(toResolved);
from = new ResolutionHelper(null, null).attachCUs(from);
to = new ResolutionHelper(null, null).attachCUs(to);
InstallableUnitOperand[] operands = new OperationGenerator().generateOperation(from, to);
assertEquals("1.0", 1, operands.length);
assertContainsInstallableUnitOperand("3.0", operands, new InstallableUnitOperand(fromResolved, toResolved));
}
public void testConfigurationChange3() {
String id = "myBundle";
String cuId = "cu";
IInstallableUnit anIU = createIU(id, new Version("1.0.0"), null, NO_REQUIRES, NO_PROVIDES, NO_PROPERTIES, ITouchpointType.NONE, NO_TP_DATA, false, null);
IInstallableUnitFragment cu2 = createIUFragment(anIU, cuId, new Version("2.0.0"));
Collection from = new ArrayList();
ResolvedInstallableUnit fromResolved = (ResolvedInstallableUnit) MetadataFactory.createResolvedInstallableUnit(anIU, new IInstallableUnitFragment[] {cu2});
from.add(fromResolved);
Collection to = new ArrayList();
IInstallableUnit toResolved = MetadataFactory.createResolvedInstallableUnit(anIU, new IInstallableUnitFragment[0]);
to.add(toResolved);
from = new ResolutionHelper(null, null).attachCUs(from);
to = new ResolutionHelper(null, null).attachCUs(to);
InstallableUnitOperand[] operands = new OperationGenerator().generateOperation(from, to);
assertEquals("1.0", 1, operands.length);
assertContainsInstallableUnitOperand("3.0", operands, new InstallableUnitOperand(fromResolved, toResolved));
}
public void testConfigurationChange4() {
String id = "myBundle";
String cuId = "cu";
IInstallableUnit anIU = createIU(id, new Version("1.0.0"), null, NO_REQUIRES, NO_PROVIDES, NO_PROPERTIES, ITouchpointType.NONE, NO_TP_DATA, false, null);
IInstallableUnitFragment cu2 = createIUFragment(anIU, cuId, new Version("2.0.0"));
Collection from = new ArrayList();
ResolvedInstallableUnit fromResolved = (ResolvedInstallableUnit) MetadataFactory.createResolvedInstallableUnit(anIU, new IInstallableUnitFragment[] {cu2});
from.add(fromResolved);
Collection to = new ArrayList();
IInstallableUnit toResolved = MetadataFactory.createResolvedInstallableUnit(anIU, new IInstallableUnitFragment[] {cu2});
to.add(toResolved);
from = new ResolutionHelper(null, null).attachCUs(from);
to = new ResolutionHelper(null, null).attachCUs(to);
InstallableUnitOperand[] operands = new OperationGenerator().generateOperation(from, to);
assertEquals("1.0", 0, operands.length);
}
public void testConfigurationChange5() {
String id = "myBundle";
String cuId = "cu";
IInstallableUnit anIU = createIU(id, new Version("1.0.0"), null, NO_REQUIRES, NO_PROVIDES, NO_PROPERTIES, ITouchpointType.NONE, NO_TP_DATA, false, null);
IInstallableUnitFragment cu2 = createIUFragment(anIU, cuId, new Version("2.0.0"));
IInstallableUnitFragment cu1 = createIUFragment(anIU, cuId, new Version("1.0.0"));
Collection from = new ArrayList();
ResolvedInstallableUnit fromResolved = (ResolvedInstallableUnit) MetadataFactory.createResolvedInstallableUnit(anIU, new IInstallableUnitFragment[] {cu1, cu2});
from.add(fromResolved);
Collection to = new ArrayList();
IInstallableUnit toResolved = MetadataFactory.createResolvedInstallableUnit(anIU, new IInstallableUnitFragment[] {cu2, cu1});
to.add(toResolved);
from = new ResolutionHelper(null, null).attachCUs(from);
to = new ResolutionHelper(null, null).attachCUs(to);
InstallableUnitOperand[] operands = new OperationGenerator().generateOperation(from, to);
assertEquals("1.0", 0, operands.length);
}
public void testConfigurationChange6() {
String id = "myBundle";
String cuId = "cu";
IInstallableUnit anIU = createIU(id, new Version("1.0.0"), null, NO_REQUIRES, NO_PROVIDES, NO_PROPERTIES, ITouchpointType.NONE, NO_TP_DATA, false, null);
IInstallableUnitFragment cu2 = createIUFragment(anIU, cuId, new Version("2.0.0"));
IInstallableUnitFragment cu1 = createIUFragment(anIU, cuId, new Version("1.0.0"));
IInstallableUnitFragment cu3 = createIUFragment(anIU, cuId, new Version("3.0.0"));
Collection from = new ArrayList();
ResolvedInstallableUnit fromResolved = (ResolvedInstallableUnit) MetadataFactory.createResolvedInstallableUnit(anIU, new IInstallableUnitFragment[] {cu1, cu2});
from.add(fromResolved);
Collection to = new ArrayList();
IInstallableUnit toResolved = MetadataFactory.createResolvedInstallableUnit(anIU, new IInstallableUnitFragment[] {cu1, cu3});
to.add(toResolved);
from = new ResolutionHelper(null, null).attachCUs(from);
to = new ResolutionHelper(null, null).attachCUs(to);
InstallableUnitOperand[] operands = new OperationGenerator().generateOperation(from, to);
assertEquals("1.0", 1, operands.length);
assertContainsInstallableUnitOperand("3.0", operands, new InstallableUnitOperand(fromResolved, toResolved));
}
public void assertContains(String message, Object[] searched, Object expected) {
for (int i = 0; i < searched.length; i++) {
if (searched[i].equals(expected))
return;
}
fail(message + "Can't find " + expected);
}
public void assertContainsConfigurationChange(String message, InstallableUnitOperand[] ops) {
for (int i = 0; i < ops.length; i++) {
if (ops[i].first() != null && ops[i].first().equals(ops[i].second())) {
return;
}
}
fail(message + " No configuration change operand found");
}
}