1 package org.eclipse.equinox.p2.tests.planner; 2 3 import java.util.ArrayList; 4 import java.util.Collection; 5 import org.eclipse.equinox.internal.p2.director.ProfileChangeRequest; 6 import org.eclipse.equinox.internal.p2.metadata.ResolvedInstallableUnit; 7 import org.eclipse.equinox.p2.engine.IProfile; 8 import org.eclipse.equinox.p2.metadata.IInstallableUnit; 9 import org.eclipse.equinox.p2.tests.*; 10 11 public class ResolvedIUInPCR extends AbstractProvisioningTest { 12 13 @IUDescription(content = "package: iu1 \n" + "singleton: true\n" + "version: 1 \n") 14 public IInstallableUnit iu1; 15 16 @IUDescription(content = "package: iu2 \n" + "singleton: true\n" + "version: 1 \n") 17 public IInstallableUnit iu2; 18 19 private IProfile profile; 20 21 @Override setUp()22 protected void setUp() throws Exception { 23 IULoader.loadIUs(this); 24 profile = createProfile("ResolvedIUInPCR." + getName()); 25 } 26 testNoResolvedIUInAddition()27 public void testNoResolvedIUInAddition() { 28 ResolvedInstallableUnit riu1 = new ResolvedInstallableUnit(iu1); 29 ProfileChangeRequest pcr = new ProfileChangeRequest(profile); 30 pcr.add(riu1); 31 32 assertFalse(identityContains(pcr.getAdditions(), riu1)); 33 assertTrue(identityContains(pcr.getAdditions(), iu1)); 34 } 35 testNoResolvedIUInBulkAddition()36 public void testNoResolvedIUInBulkAddition() { 37 Collection<IInstallableUnit> riusToAdd = new ArrayList<>(); 38 ResolvedInstallableUnit riu1 = new ResolvedInstallableUnit(iu1); 39 riusToAdd.add(riu1); 40 41 ProfileChangeRequest pcr = new ProfileChangeRequest(profile); 42 pcr.addAll(riusToAdd); 43 44 assertFalse(identityContains(pcr.getAdditions(), riu1)); 45 assertTrue(identityContains(pcr.getAdditions(), iu1)); 46 } 47 testNoResolvedIUInBulkAddition2()48 public void testNoResolvedIUInBulkAddition2() { 49 ResolvedInstallableUnit riu1 = new ResolvedInstallableUnit(iu1); 50 ResolvedInstallableUnit riu2 = new ResolvedInstallableUnit(iu2); 51 52 ProfileChangeRequest pcr = new ProfileChangeRequest(profile); 53 pcr.addInstallableUnits(riu1, riu2); 54 55 assertFalse(identityContains(pcr.getAdditions(), riu1)); 56 assertFalse(identityContains(pcr.getAdditions(), riu2)); 57 58 assertTrue(identityContains(pcr.getAdditions(), iu1)); 59 assertTrue(identityContains(pcr.getAdditions(), iu2)); 60 } 61 testNoResolvedIUInRemoval()62 public void testNoResolvedIUInRemoval() { 63 ResolvedInstallableUnit riu1 = new ResolvedInstallableUnit(iu1); 64 ProfileChangeRequest pcr = new ProfileChangeRequest(profile); 65 pcr.remove(riu1); 66 67 assertFalse(identityContains(pcr.getRemovals(), riu1)); 68 assertTrue(identityContains(pcr.getRemovals(), iu1)); 69 } 70 testNoResolvedIUInBulkRemoval()71 public void testNoResolvedIUInBulkRemoval() { 72 Collection<IInstallableUnit> riusToAdd = new ArrayList<>(); 73 ResolvedInstallableUnit riu1 = new ResolvedInstallableUnit(iu1); 74 riusToAdd.add(riu1); 75 76 ProfileChangeRequest pcr = new ProfileChangeRequest(profile); 77 pcr.removeAll(riusToAdd); 78 79 assertFalse(identityContains(pcr.getRemovals(), riu1)); 80 assertTrue(identityContains(pcr.getRemovals(), iu1)); 81 } 82 testNoResolvedIUInBulkRemoval2()83 public void testNoResolvedIUInBulkRemoval2() { 84 ResolvedInstallableUnit riu1 = new ResolvedInstallableUnit(iu1); 85 ResolvedInstallableUnit riu2 = new ResolvedInstallableUnit(iu2); 86 87 ProfileChangeRequest pcr = new ProfileChangeRequest(profile); 88 pcr.removeInstallableUnits(new IInstallableUnit[] {riu1, riu2}); 89 90 assertFalse(identityContains(pcr.getRemovals(), riu1)); 91 assertFalse(identityContains(pcr.getRemovals(), riu2)); 92 93 assertTrue(identityContains(pcr.getRemovals(), iu1)); 94 assertTrue(identityContains(pcr.getRemovals(), iu2)); 95 } 96 testNoResolvedIUInstallableUnitInclusionRules()97 public void testNoResolvedIUInstallableUnitInclusionRules() { 98 ResolvedInstallableUnit riu1 = new ResolvedInstallableUnit(iu1); 99 ResolvedInstallableUnit riu2 = new ResolvedInstallableUnit(iu2); 100 101 ProfileChangeRequest pcr = new ProfileChangeRequest(profile); 102 pcr.setInstallableUnitInclusionRules(riu1, "inclusion"); 103 pcr.setInstallableUnitProfileProperty(riu2, "a", "b"); 104 105 assertFalse(identityContains(pcr.getInstallableUnitProfilePropertiesToAdd().keySet(), riu1)); 106 assertFalse(identityContains(pcr.getInstallableUnitProfilePropertiesToAdd().keySet(), riu2)); 107 108 assertTrue(identityContains(pcr.getInstallableUnitProfilePropertiesToAdd().keySet(), iu1)); 109 assertTrue(identityContains(pcr.getInstallableUnitProfilePropertiesToAdd().keySet(), iu2)); 110 } 111 testNoResolvedIUInstallableUnitInclusionRules2()112 public void testNoResolvedIUInstallableUnitInclusionRules2() { 113 ResolvedInstallableUnit riu1 = new ResolvedInstallableUnit(iu1); 114 ResolvedInstallableUnit riu2 = new ResolvedInstallableUnit(iu2); 115 116 ProfileChangeRequest pcr = new ProfileChangeRequest(profile); 117 pcr.removeInstallableUnitInclusionRules(riu1); 118 pcr.removeInstallableUnitProfileProperty(riu2, "a"); 119 120 assertFalse(identityContains(pcr.getInstallableUnitProfilePropertiesToRemove().keySet(), riu1)); 121 assertFalse(identityContains(pcr.getInstallableUnitProfilePropertiesToRemove().keySet(), riu2)); 122 123 assertTrue(identityContains(pcr.getInstallableUnitProfilePropertiesToRemove().keySet(), iu1)); 124 assertTrue(identityContains(pcr.getInstallableUnitProfilePropertiesToRemove().keySet(), iu2)); 125 } 126 identityContains(Collection<IInstallableUnit> ius, IInstallableUnit match)127 private boolean identityContains(Collection<IInstallableUnit> ius, IInstallableUnit match) { 128 for (IInstallableUnit iu : ius) { 129 if (iu == match) 130 return true; 131 } 132 return false; 133 } 134 } 135