public void testChangeIUProperty() { // Add into the profile the version a1; ProfileChangeRequest req = new ProfileChangeRequest(profile); req.addInstallableUnits(new IInstallableUnit[] {a1}); req.setInstallableUnitProfileProperty( a1, IProfile.PROP_PROFILE_ROOT_IU, Boolean.TRUE.toString()); IProvisioningPlan plan = planner.getProvisioningPlan(req, null, null); assertEquals(IStatus.OK, plan.getStatus().getSeverity()); engine.perform(plan, null); assertProfileContainsAll("A1 is missing", profile, new IInstallableUnit[] {a1}); IProfileRegistry profileRegistry = getProfileRegistry(); profile = profileRegistry.getProfile(profile.getProfileId()); IQueryResult c = profile.query(new UserVisibleRootQuery(), null); assertEquals(queryResultSize(c), 1); System.gc(); ProfileChangeRequest req2 = ProfileChangeRequest.createByProfileId(getAgent(), profile.getProfileId()); req2.removeInstallableUnits(new IInstallableUnit[] {a1}); req2.addInstallableUnits(new IInstallableUnit[] {a2}); // req2.setInstallableUnitProfileProperty(a2, IProfile.PROP_PROFILE_ROOT_IU, // Boolean.TRUE.toString()); IProvisioningPlan plan2 = planner.getProvisioningPlan(req2, null, null); assertEquals(IStatus.OK, plan2.getStatus().getSeverity()); assertInstallOperand(plan2, a2); engine.perform(plan2, null); profile = getProfile(profile.getProfileId()); assertProfileContains("A2 is missing", profile, new IInstallableUnit[] {a2}); }
public void testInitCompleteOperand() { TestPhase phase = new TestPhase() { protected IStatus completeOperand( IProfile profile, Operand operand, Map parameters, IProgressMonitor monitor) { assertTrue(parameters.containsKey("TestPhase.initializeOperand")); assertFalse(completeOperand); super.completeOperand(profile, operand, parameters, monitor); assertTrue(parameters.containsKey("TestPhase.initializeOperand")); assertTrue(completeOperand); return null; } protected IStatus initializeOperand( IProfile profile, Operand operand, Map parameters, IProgressMonitor monitor) { assertFalse(parameters.containsKey("TestPhase.initializeOperand")); assertFalse(completeOperand); super.initializeOperand(profile, operand, parameters, monitor); assertTrue(parameters.containsKey("TestPhase.initializeOperand")); assertFalse(completeOperand); return null; } }; PhaseSet phaseSet = new TestPhaseSet(phase); IProfile profile = createProfile("PhaseTest"); IInstallableUnit unit = createIU("testInitCompleteOperand"); IProvisioningPlan plan = engine.createPlan(profile, null); plan.addInstallableUnit(unit); engine.perform(plan, phaseSet, new NullProgressMonitor()); assertTrue(phase.initializeOperand); assertTrue(phase.completeOperand); }
public void testOneIUWithMultiplePatchesApplyingOnIt() { // //Confirm that f1 can't be installed // ProfileChangeRequest req1 = new ProfileChangeRequest(profile1); // req1.addInstallableUnits(new IInstallableUnit[] {f1}); // ProvisioningPlan plan1 = planner.getProvisioningPlan(req1, null, null); // assertEquals(IStatus.ERROR, plan1.getStatus().getSeverity()); // // //Verify that the installation of f1 and p1 succeed // ProfileChangeRequest req2 = new ProfileChangeRequest(profile1); // req2.addInstallableUnits(new IInstallableUnit[] {f1, p1}); // ProvisioningPlan plan2 = planner.getProvisioningPlan(req2, null, null); // assertEquals(IStatus.WARNING, plan2.getStatus().getSeverity()); // assertInstallOperand(plan2, f1); // assertInstallOperand(plan2, a1); // assertInstallOperand(plan2, b1); // assertInstallOperand(plan2, c1); // assertInstallOperand(plan2, x1); // assertInstallOperand(plan2, y1); // assertInstallOperand(plan2, p1); // Verify that the installation of f1 and p1 succeed ProfileChangeRequest req3 = new ProfileChangeRequest(profile1); req3.addInstallableUnits(new IInstallableUnit[] {f1, p1, r1}); IProvisioningPlan plan3 = planner.getProvisioningPlan(req3, null, null); assertEquals(IStatus.OK, plan3.getStatus().getSeverity()); }
public void testGetAction() { final ArrayList actionsList1 = new ArrayList(); InstallableUnitPhase phase1 = new InstallableUnitPhase("test", 1) { protected List<ProvisioningAction> getActions(InstallableUnitOperand operand) { List<ProvisioningAction> actions = getActions(operand.second(), "test1"); actionsList1.addAll(actions); return actions; } }; final ArrayList actionsList2 = new ArrayList(); InstallableUnitPhase phase2 = new InstallableUnitPhase("test", 1) { protected List<ProvisioningAction> getActions(InstallableUnitOperand operand) { List<ProvisioningAction> actions = getActions(operand.second(), "test2"); actionsList2.addAll(actions); return actions; } }; PhaseSet phaseSet = new TestPhaseSet(new Phase[] {phase1, phase2}); IProfile profile = createProfile("PhaseTest"); Map instructions = new HashMap(); instructions.put("test1", MetadataFactory.createTouchpointInstruction("test1.test()", null)); instructions.put("test2", MetadataFactory.createTouchpointInstruction("test2.test()", null)); ITouchpointData touchpointData = MetadataFactory.createTouchpointData(instructions); IInstallableUnit unit = createIU( "test", Version.create("1.0.0"), null, NO_REQUIRES, new IProvidedCapability[0], NO_PROPERTIES, ITouchpointType.NONE, touchpointData, false); IProvisioningPlan plan = engine.createPlan(profile, null); plan.addInstallableUnit(unit); IStatus status = engine.perform(plan, phaseSet, new NullProgressMonitor()); if (!status.isOK()) { fail(status.toString()); } assertEquals( TestAction.class, ((ParameterizedProvisioningAction) actionsList1.get(0)).getAction().getClass()); assertEquals( TestAction.class, ((ParameterizedProvisioningAction) actionsList2.get(0)).getAction().getClass()); }
public void testGetProfileDataArea() { TestPhase phase = new TestPhase() { protected IStatus initializePhase( IProgressMonitor monitor, IProfile profile, Map parameters) { File profileDataArea = (File) parameters.get("profileDataDirectory"); assertTrue(profileDataArea.isDirectory()); File test = new File(profileDataArea, "test"); assertFalse(test.exists()); try { test.createNewFile(); } catch (IOException e) { fail(e.getMessage()); } assertTrue(test.exists()); return super.initializePhase(monitor, profile, parameters); } protected IStatus completePhase( IProgressMonitor monitor, IProfile profile, Map parameters) { File profileDataArea = (File) parameters.get("profileDataDirectory"); assertTrue(profileDataArea.isDirectory()); File test = new File(profileDataArea, "test"); assertTrue(test.exists()); test.delete(); assertFalse(test.exists()); return super.completePhase(monitor, profile, parameters); } }; PhaseSet phaseSet = new TestPhaseSet(phase); IProfile profile = createProfile("PhaseTest"); IInstallableUnit unit = createIU("testGetProfileDataArea"); IProvisioningPlan plan = engine.createPlan(profile, null); plan.addInstallableUnit(unit); engine.perform(plan, phaseSet, new NullProgressMonitor()); assertTrue(phase.initializePhase); assertTrue(phase.completePhase); }