예제 #1
0
  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);
  }
예제 #2
0
  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());
  }
예제 #3
0
  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);
  }
예제 #4
0
  public void testPerform() {
    PhaseSet phaseSet = new TestPhaseSet(new TestPhase());
    IProfile profile = createProfile("PhaseTest");

    engine.perform(engine.createPlan(profile, null), phaseSet, new NullProgressMonitor());
  }