/******************************************************************************* * Copyright (c) 2007, 2009 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * IBM Corporation - initial API and implementation *******************************************************************************/ package org.eclipse.equinox.p2.tests.engine; import org.eclipse.equinox.internal.p2.engine.InstallableUnitOperand; import org.eclipse.equinox.internal.p2.engine.phases.*; import org.eclipse.equinox.p2.metadata.IInstallableUnit; import org.eclipse.equinox.p2.metadata.Version; import org.eclipse.equinox.p2.tests.AbstractProvisioningTest; /** * Simple test of the engine API. */ public class PhaseApplicabilityTest extends AbstractProvisioningTest { public PhaseApplicabilityTest(String name) { super(name); } public PhaseApplicabilityTest() { super(""); } public void testCollectPhase() { IInstallableUnit iuXv1 = createIU("iuX", Version.create("1.0.0")); IInstallableUnit iuXv2 = createIU("iuX", Version.create("2.0.0")); Collect collectPhase = new Collect(1) { protected boolean isApplicable(InstallableUnitOperand op) { return super.isApplicable(op); } }; assertFalse(collectPhase.isApplicable(new InstallableUnitOperand(iuXv1, null))); assertFalse(collectPhase.isApplicable(new InstallableUnitOperand(iuXv1, iuXv1))); assertTrue(collectPhase.isApplicable(new InstallableUnitOperand(null, iuXv1))); assertTrue(collectPhase.isApplicable(new InstallableUnitOperand(iuXv1, iuXv2))); } public void testSizingPhase() { IInstallableUnit iuXv1 = createIU("iuX", Version.create("1.0.0")); IInstallableUnit iuXv2 = createIU("iuX", Version.create("2.0.0")); Sizing sizingPhase = new Sizing(1) { protected boolean isApplicable(InstallableUnitOperand op) { return super.isApplicable(op); } }; assertFalse(sizingPhase.isApplicable(new InstallableUnitOperand(iuXv1, null))); assertFalse(sizingPhase.isApplicable(new InstallableUnitOperand(iuXv1, iuXv1))); assertTrue(sizingPhase.isApplicable(new InstallableUnitOperand(null, iuXv1))); assertTrue(sizingPhase.isApplicable(new InstallableUnitOperand(iuXv1, iuXv2))); } public void testUnconfigurePhase() { IInstallableUnit iuXv1 = createIU("iuX", Version.create("1.0.0")); IInstallableUnit iuXv2 = createIU("iuX", Version.create("2.0.0")); Unconfigure unconfigurePhase = new Unconfigure(1) { protected boolean isApplicable(InstallableUnitOperand op) { return super.isApplicable(op); } }; assertTrue(unconfigurePhase.isApplicable(new InstallableUnitOperand(iuXv1, null))); assertTrue(unconfigurePhase.isApplicable(new InstallableUnitOperand(iuXv1, iuXv1))); assertFalse(unconfigurePhase.isApplicable(new InstallableUnitOperand(null, iuXv1))); assertTrue(unconfigurePhase.isApplicable(new InstallableUnitOperand(iuXv1, iuXv2))); } public void testUninstallPhase() { IInstallableUnit iuXv1 = createIU("iuX", Version.create("1.0.0")); IInstallableUnit iuXv2 = createIU("iuX", Version.create("2.0.0")); Uninstall uninstallPhase = new Uninstall(1) { protected boolean isApplicable(InstallableUnitOperand op) { return super.isApplicable(op); } }; assertTrue(uninstallPhase.isApplicable(new InstallableUnitOperand(iuXv1, null))); assertFalse(uninstallPhase.isApplicable(new InstallableUnitOperand(iuXv1, iuXv1))); assertFalse(uninstallPhase.isApplicable(new InstallableUnitOperand(null, iuXv1))); assertTrue(uninstallPhase.isApplicable(new InstallableUnitOperand(iuXv1, iuXv2))); } public void testInstallPhase() { IInstallableUnit iuXv1 = createIU("iuX", Version.create("1.0.0")); IInstallableUnit iuXv2 = createIU("iuX", Version.create("2.0.0")); Install installPhase = new Install(1) { protected boolean isApplicable(InstallableUnitOperand op) { return super.isApplicable(op); } }; assertFalse(installPhase.isApplicable(new InstallableUnitOperand(iuXv1, null))); assertFalse(installPhase.isApplicable(new InstallableUnitOperand(iuXv1, iuXv1))); assertTrue(installPhase.isApplicable(new InstallableUnitOperand(null, iuXv1))); assertTrue(installPhase.isApplicable(new InstallableUnitOperand(iuXv1, iuXv2))); } public void testConfigurePhase() { IInstallableUnit iuXv1 = createIU("iuX", Version.create("1.0.0")); IInstallableUnit iuXv2 = createIU("iuX", Version.create("2.0.0")); Configure configurePhase = new Configure(1) { protected boolean isApplicable(InstallableUnitOperand op) { return super.isApplicable(op); } }; assertFalse(configurePhase.isApplicable(new InstallableUnitOperand(iuXv1, null))); assertTrue(configurePhase.isApplicable(new InstallableUnitOperand(iuXv1, iuXv1))); assertTrue(configurePhase.isApplicable(new InstallableUnitOperand(null, iuXv1))); assertTrue(configurePhase.isApplicable(new InstallableUnitOperand(iuXv1, iuXv2))); } }