blob: 9c3a9d1c0f3d5db5660eab0ed86dfde2a25cad11 [file] [log] [blame]
package org.eclipse.equinox.p2.tests.planner;
import java.util.ArrayList;
import java.util.Collection;
import org.eclipse.equinox.internal.p2.director.ProfileChangeRequest;
import org.eclipse.equinox.internal.p2.metadata.ResolvedInstallableUnit;
import org.eclipse.equinox.p2.engine.IProfile;
import org.eclipse.equinox.p2.metadata.IInstallableUnit;
import org.eclipse.equinox.p2.tests.*;
public class ResolvedIUInPCR extends AbstractProvisioningTest {
@IUDescription(content = "package: iu1 \n" + "singleton: true\n" + "version: 1 \n")
public IInstallableUnit iu1;
@IUDescription(content = "package: iu2 \n" + "singleton: true\n" + "version: 1 \n")
public IInstallableUnit iu2;
private IProfile profile;
protected void setUp() throws Exception {
IULoader.loadIUs(this);
profile = createProfile("ResolvedIUInPCR." + getName());
}
public void testNoResolvedIUInAddition() {
ResolvedInstallableUnit riu1 = new ResolvedInstallableUnit(iu1);
ProfileChangeRequest pcr = new ProfileChangeRequest(profile);
pcr.add(riu1);
assertFalse(identityContains(pcr.getAdditions(), riu1));
assertTrue(identityContains(pcr.getAdditions(), iu1));
}
public void testNoResolvedIUInBulkAddition() {
Collection<IInstallableUnit> riusToAdd = new ArrayList<IInstallableUnit>();
ResolvedInstallableUnit riu1 = new ResolvedInstallableUnit(iu1);
riusToAdd.add(riu1);
ProfileChangeRequest pcr = new ProfileChangeRequest(profile);
pcr.addAll(riusToAdd);
assertFalse(identityContains(pcr.getAdditions(), riu1));
assertTrue(identityContains(pcr.getAdditions(), iu1));
}
public void testNoResolvedIUInBulkAddition2() {
ResolvedInstallableUnit riu1 = new ResolvedInstallableUnit(iu1);
ResolvedInstallableUnit riu2 = new ResolvedInstallableUnit(iu2);
ProfileChangeRequest pcr = new ProfileChangeRequest(profile);
pcr.addInstallableUnits(riu1, riu2);
assertFalse(identityContains(pcr.getAdditions(), riu1));
assertFalse(identityContains(pcr.getAdditions(), riu2));
assertTrue(identityContains(pcr.getAdditions(), iu1));
assertTrue(identityContains(pcr.getAdditions(), iu2));
}
public void testNoResolvedIUInRemoval() {
ResolvedInstallableUnit riu1 = new ResolvedInstallableUnit(iu1);
ProfileChangeRequest pcr = new ProfileChangeRequest(profile);
pcr.remove(riu1);
assertFalse(identityContains(pcr.getRemovals(), riu1));
assertTrue(identityContains(pcr.getRemovals(), iu1));
}
public void testNoResolvedIUInBulkRemoval() {
Collection<IInstallableUnit> riusToAdd = new ArrayList<IInstallableUnit>();
ResolvedInstallableUnit riu1 = new ResolvedInstallableUnit(iu1);
riusToAdd.add(riu1);
ProfileChangeRequest pcr = new ProfileChangeRequest(profile);
pcr.removeAll(riusToAdd);
assertFalse(identityContains(pcr.getRemovals(), riu1));
assertTrue(identityContains(pcr.getRemovals(), iu1));
}
public void testNoResolvedIUInBulkRemoval2() {
ResolvedInstallableUnit riu1 = new ResolvedInstallableUnit(iu1);
ResolvedInstallableUnit riu2 = new ResolvedInstallableUnit(iu2);
ProfileChangeRequest pcr = new ProfileChangeRequest(profile);
pcr.removeInstallableUnits(new IInstallableUnit[] {riu1, riu2});
assertFalse(identityContains(pcr.getRemovals(), riu1));
assertFalse(identityContains(pcr.getRemovals(), riu2));
assertTrue(identityContains(pcr.getRemovals(), iu1));
assertTrue(identityContains(pcr.getRemovals(), iu2));
}
public void testNoResolvedIUInstallableUnitInclusionRules() {
ResolvedInstallableUnit riu1 = new ResolvedInstallableUnit(iu1);
ResolvedInstallableUnit riu2 = new ResolvedInstallableUnit(iu2);
ProfileChangeRequest pcr = new ProfileChangeRequest(profile);
pcr.setInstallableUnitInclusionRules(riu1, "inclusion");
pcr.setInstallableUnitProfileProperty(riu2, "a", "b");
assertFalse(identityContains(pcr.getInstallableUnitProfilePropertiesToAdd().keySet(), riu1));
assertFalse(identityContains(pcr.getInstallableUnitProfilePropertiesToAdd().keySet(), riu2));
assertTrue(identityContains(pcr.getInstallableUnitProfilePropertiesToAdd().keySet(), iu1));
assertTrue(identityContains(pcr.getInstallableUnitProfilePropertiesToAdd().keySet(), iu2));
}
public void testNoResolvedIUInstallableUnitInclusionRules2() {
ResolvedInstallableUnit riu1 = new ResolvedInstallableUnit(iu1);
ResolvedInstallableUnit riu2 = new ResolvedInstallableUnit(iu2);
ProfileChangeRequest pcr = new ProfileChangeRequest(profile);
pcr.removeInstallableUnitInclusionRules(riu1);
pcr.removeInstallableUnitProfileProperty(riu2, "a");
assertFalse(identityContains(pcr.getInstallableUnitProfilePropertiesToRemove().keySet(), riu1));
assertFalse(identityContains(pcr.getInstallableUnitProfilePropertiesToRemove().keySet(), riu2));
assertTrue(identityContains(pcr.getInstallableUnitProfilePropertiesToRemove().keySet(), iu1));
assertTrue(identityContains(pcr.getInstallableUnitProfilePropertiesToRemove().keySet(), iu2));
}
private boolean identityContains(Collection<IInstallableUnit> ius, IInstallableUnit match) {
for (IInstallableUnit iu : ius) {
if (iu == match)
return true;
}
return false;
}
}