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; } }