diff options
Diffstat (limited to 'target_explorer/plugins/org.eclipse.tcf.te.tests/src/org/eclipse/tcf/te/tests/stepper/StepperTests.java')
-rw-r--r-- | target_explorer/plugins/org.eclipse.tcf.te.tests/src/org/eclipse/tcf/te/tests/stepper/StepperTests.java | 592 |
1 files changed, 296 insertions, 296 deletions
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tests/src/org/eclipse/tcf/te/tests/stepper/StepperTests.java b/target_explorer/plugins/org.eclipse.tcf.te.tests/src/org/eclipse/tcf/te/tests/stepper/StepperTests.java index 13ac6b91d..81572a4b2 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tests/src/org/eclipse/tcf/te/tests/stepper/StepperTests.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tests/src/org/eclipse/tcf/te/tests/stepper/StepperTests.java @@ -1,296 +1,296 @@ -/*******************************************************************************
- * Copyright (c) 2011, 2012 Wind River Systems, Inc. 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:
- * Wind River Systems - initial API and implementation
- *******************************************************************************/
-package org.eclipse.tcf.te.tests.stepper;
-
-import java.util.Map;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.tcf.te.runtime.concurrent.util.ExecutorsUtil;
-import org.eclipse.tcf.te.runtime.interfaces.properties.IPropertiesContainer;
-import org.eclipse.tcf.te.runtime.properties.PropertiesContainer;
-import org.eclipse.tcf.te.runtime.stepper.StepperManager;
-import org.eclipse.tcf.te.runtime.stepper.context.AbstractStepContext;
-import org.eclipse.tcf.te.runtime.stepper.interfaces.IStep;
-import org.eclipse.tcf.te.runtime.stepper.interfaces.IStepGroup;
-import org.eclipse.tcf.te.runtime.stepper.interfaces.IStepGroupable;
-import org.eclipse.tcf.te.runtime.stepper.interfaces.IStepper;
-import org.eclipse.tcf.te.runtime.stepper.stepper.Stepper;
-import org.eclipse.tcf.te.tests.CoreTestCase;
-import org.eclipse.tcf.te.tests.stepper.steps.ParameterizedTestStep;
-import org.eclipse.tcf.te.tests.stepper.steps.TestStep;
-
-/**
- * Stepper engine test cases.
- */
-public class StepperTests extends CoreTestCase {
-
- protected static class TestStepContext extends AbstractStepContext {
-
- /**
- * Constructor.
- */
- public TestStepContext(Object contextObject) {
- super(contextObject);
- }
-
- @Override
- public String getId() {
- return "org.eclipse.tcf.te.tests.stepper.TestStepContext"; //$NON-NLS-1$
- }
-
- @Override
- public String getName() {
- return "TestStepContext"; //$NON-NLS-1$
- }
- }
-
- /**
- * Provides a test suite to the caller which combines all single
- * test bundled within this category.
- *
- * @return Test suite containing all test for this test category.
- */
- public static Test getTestSuite() {
- TestSuite testSuite = new TestSuite("Test stepper engine"); //$NON-NLS-1$
-
- // add ourself to the test suite
- testSuite.addTestSuite(StepperTests.class);
-
- return testSuite;
- }
-
- /**
- * Test the stepper extension point mechanism.
- */
- public void testStepperContributions() {
- assertNotNull("Unexpected return value 'null'.", StepperManager.getInstance()); //$NON-NLS-1$
- }
-
- /**
- * Test the steps extension point mechanism.
- */
- public void testStepContributions() {
- assertNotNull("Unexpected return value 'null'.", StepperManager.getInstance()); //$NON-NLS-1$
- assertNotNull("Unexpected return value 'null'.", StepperManager.getInstance().getStepExtManager()); //$NON-NLS-1$
-
- IStep[] steps = StepperManager.getInstance().getStepExtManager().getSteps(false);
- int testStepCount = 0;
-
- for (IStep step : steps) {
- if (step.getId().startsWith("org.eclipse.tcf.te.tests.stepper.step")) { //$NON-NLS-1$
- testStepCount++;
- } else {
- continue;
- }
-
- if (step.getId().endsWith(".step1")) { //$NON-NLS-1$
- assertEquals("Unexpected step label found.", "Test Step 1", step.getLabel()); //$NON-NLS-1$ //$NON-NLS-2$
- assertEquals("Unexpected step description found.", "", step.getDescription()); //$NON-NLS-1$ //$NON-NLS-2$
- assertTrue("Unexpected step class type found.", step instanceof TestStep); //$NON-NLS-1$
- assertEquals("Unexpected number of dependencies found.", 0, step.getDependencies().length); //$NON-NLS-1$
- }
-
- if (step.getId().endsWith(".step2")) { //$NON-NLS-1$
- assertEquals("Unexpected step label found.", "Test Step 2", step.getLabel()); //$NON-NLS-1$ //$NON-NLS-2$
- assertEquals("Unexpected step description found.", "", step.getDescription()); //$NON-NLS-1$ //$NON-NLS-2$
- assertTrue("Unexpected step class type found.", step instanceof ParameterizedTestStep); //$NON-NLS-1$
-
- Map<?,?> params = ((ParameterizedTestStep)step).params;
- assertNotNull("Unexpected value 'null'.", params); //$NON-NLS-1$
- assertEquals("Unexpected number of parameter found.", 1, params.keySet().size()); //$NON-NLS-1$
- assertTrue("Missing expected key 'param1'.", params.containsKey("param1")); //$NON-NLS-1$ //$NON-NLS-2$
- assertTrue("Missing expected value 'value1'.", params.containsValue("value1")); //$NON-NLS-1$ //$NON-NLS-2$
-
- assertEquals("Unexpected number of dependencies found.", 0, step.getDependencies().length); //$NON-NLS-1$
- }
-
- if (step.getId().endsWith(".step3")) { //$NON-NLS-1$
- assertEquals("Unexpected step label found.", "Test Step 3", step.getLabel()); //$NON-NLS-1$ //$NON-NLS-2$
- assertEquals("Unexpected step description found.", "Just another test step", step.getDescription()); //$NON-NLS-1$ //$NON-NLS-2$
- assertTrue("Unexpected step class type found.", step instanceof TestStep); //$NON-NLS-1$
- assertEquals("Unexpected number of dependencies found.", 0, step.getDependencies().length); //$NON-NLS-1$
- }
-
- if (step.getId().endsWith(".step4")) { //$NON-NLS-1$
- assertEquals("Unexpected step label found.", "Test Step 4", step.getLabel()); //$NON-NLS-1$ //$NON-NLS-2$
- assertEquals("Unexpected step description found.", "", step.getDescription()); //$NON-NLS-1$ //$NON-NLS-2$
- assertTrue("Unexpected step class type found.", step instanceof TestStep); //$NON-NLS-1$
- assertEquals("Unexpected number of dependencies found.", 1, step.getDependencies().length); //$NON-NLS-1$
- }
-
- if (step.getId().endsWith(".step5")) { //$NON-NLS-1$
- assertEquals("Unexpected step label found.", "Test Step 5", step.getLabel()); //$NON-NLS-1$ //$NON-NLS-2$
- assertEquals("Unexpected step description found.", "", step.getDescription()); //$NON-NLS-1$ //$NON-NLS-2$
- assertTrue("Unexpected step class type found.", step instanceof TestStep); //$NON-NLS-1$
- assertEquals("Unexpected number of dependencies found.", 0, step.getDependencies().length); //$NON-NLS-1$
- }
- }
-
- assertEquals("Unexpected number of test steps found.", 5, testStepCount); //$NON-NLS-1$
- }
-
- /**
- * Test the step group extension point mechanism.
- */
- public void testStepGroupContributions() {
- assertNotNull("Unexpected return value 'null'.", StepperManager.getInstance()); //$NON-NLS-1$
- assertNotNull("Unexpected return value 'null'.", StepperManager.getInstance().getStepGroupExtManager()); //$NON-NLS-1$
-
- IStepGroup[] stepGroups = StepperManager.getInstance().getStepGroupExtManager().getStepGroups(false);
- int testStepGroupCount = 0;
-
- for (IStepGroup stepGroup : stepGroups) {
- if (stepGroup.getId().startsWith("org.eclipse.tcf.te.tests.stepper.stepGroup")) { //$NON-NLS-1$
- testStepGroupCount++;
- } else {
- continue;
- }
-
- Throwable error = null;
- String message = null;
- IStepGroupable[] steps = null;
-
- if (stepGroup.getId().endsWith(".stepGroup1")) { //$NON-NLS-1$
- assertEquals("Unexpected step group label found.", "Test Step Group 1", stepGroup.getLabel()); //$NON-NLS-1$ //$NON-NLS-2$
- assertEquals("Unexpected step description found.", "", stepGroup.getDescription()); //$NON-NLS-1$ //$NON-NLS-2$
- assertFalse("Step group is locked but should not.", stepGroup.isLocked()); //$NON-NLS-1$
- assertNull("Unexpected non-null value.", stepGroup.getStepGroupIterator()); //$NON-NLS-1$
-
- try {
- steps = stepGroup.getSteps(new TestStepContext(this));
- } catch (CoreException e) {
- error = e;
- message = e.getLocalizedMessage();
- }
- assertNull("Failed to determine steps from step group. Possible cause: " + message, error); //$NON-NLS-1$
- assertNotNull("Unexpected return value 'null'.", steps); //$NON-NLS-1$
- assertEquals("Unexpected number of steps returned.", 0, steps.length); //$NON-NLS-1$
- }
-
- if (stepGroup.getId().endsWith(".stepGroup2")) { //$NON-NLS-1$
- assertEquals("Unexpected step group label found.", "Test Step Group 2", stepGroup.getLabel()); //$NON-NLS-1$ //$NON-NLS-2$
- assertEquals("Unexpected step description found.", "Just a step group description", stepGroup.getDescription()); //$NON-NLS-1$ //$NON-NLS-2$
- assertTrue("Step group is not locked but should.", stepGroup.isLocked()); //$NON-NLS-1$
- assertNull("Unexpected non-null value.", stepGroup.getStepGroupIterator()); //$NON-NLS-1$
-
- error = null; message = null; steps = null;
- try {
- steps = stepGroup.getSteps(new TestStepContext(this));
- } catch (CoreException e) {
- error = e;
- message = e.getLocalizedMessage();
- }
- assertNull("Failed to determine steps from step group. Possible cause: " + message, error); //$NON-NLS-1$
- assertNotNull("Unexpected return value 'null'.", steps); //$NON-NLS-1$
- assertEquals("Unexpected number of steps returned.", 0, steps.length); //$NON-NLS-1$
- }
-
- if (stepGroup.getId().endsWith(".stepGroup3")) { //$NON-NLS-1$
- assertEquals("Unexpected step group label found.", "Test Step Group 3", stepGroup.getLabel()); //$NON-NLS-1$ //$NON-NLS-2$
- assertEquals("Unexpected step description found.", "", stepGroup.getDescription()); //$NON-NLS-1$ //$NON-NLS-2$
- assertFalse("Step group is locked but should not.", stepGroup.isLocked()); //$NON-NLS-1$
- assertNull("Unexpected non-null value.", stepGroup.getStepGroupIterator()); //$NON-NLS-1$
-
- error = null; message = null; steps = null;
- try {
- steps = stepGroup.getSteps(new TestStepContext(this));
- } catch (CoreException e) {
- error = e;
- message = e.getLocalizedMessage();
- }
- assertNull("Failed to determine steps from step group. Possible cause: " + message, error); //$NON-NLS-1$
- assertNotNull("Unexpected return value 'null'.", steps); //$NON-NLS-1$
- assertEquals("Unexpected number of steps returned.", 4, steps.length); //$NON-NLS-1$
-
- assertEquals("Unexpected step order.", "org.eclipse.tcf.te.tests.stepper.step1", steps[0].getExtension().getId()); //$NON-NLS-1$ //$NON-NLS-2$
- assertEquals("Unexpected step order.", "org.eclipse.tcf.te.tests.stepper.step2", steps[1].getExtension().getId()); //$NON-NLS-1$ //$NON-NLS-2$
- assertEquals("Unexpected step order.", "org.eclipse.tcf.te.tests.stepper.step3", steps[2].getExtension().getId()); //$NON-NLS-1$ //$NON-NLS-2$
- assertEquals("Unexpected step order.", "org.eclipse.tcf.te.tests.stepper.step4", steps[3].getExtension().getId()); //$NON-NLS-1$ //$NON-NLS-2$
- }
-
-
- if (stepGroup.getId().endsWith(".stepGroup4")) { //$NON-NLS-1$
- assertEquals("Unexpected step group label found.", "Test Step Group 4", stepGroup.getLabel()); //$NON-NLS-1$ //$NON-NLS-2$
- assertEquals("Unexpected step description found.", "", stepGroup.getDescription()); //$NON-NLS-1$ //$NON-NLS-2$
- assertFalse("Step group is locked but should not.", stepGroup.isLocked()); //$NON-NLS-1$
- assertNull("Unexpected non-null value.", stepGroup.getStepGroupIterator()); //$NON-NLS-1$
-
- error = null; message = null; steps = null;
- try {
- steps = stepGroup.getSteps(new TestStepContext(this));
- } catch (CoreException e) {
- error = e;
- message = e.getLocalizedMessage();
- }
- assertNull("Failed to determine steps from step group. Possible cause: " + message, error); //$NON-NLS-1$
- assertNotNull("Unexpected return value 'null'.", steps); //$NON-NLS-1$
- assertEquals("Unexpected number of steps returned.", 5, steps.length); //$NON-NLS-1$
-
- assertEquals("Unexpected step order.", "org.eclipse.tcf.te.tests.stepper.step1", steps[0].getExtension().getId()); //$NON-NLS-1$ //$NON-NLS-2$
- assertEquals("Unexpected step order.", "org.eclipse.tcf.te.tests.stepper.step2", steps[1].getExtension().getId()); //$NON-NLS-1$ //$NON-NLS-2$
- assertEquals("Unexpected step order.", "org.eclipse.tcf.te.tests.stepper.step3", steps[2].getExtension().getId()); //$NON-NLS-1$ //$NON-NLS-2$
- assertEquals("Unexpected step order.", "org.eclipse.tcf.te.tests.stepper.step4", steps[3].getExtension().getId()); //$NON-NLS-1$ //$NON-NLS-2$
-
- error = null; message = null; steps = null;
- try {
- steps = stepGroup.getSteps(new TestStepContext(this));
- } catch (CoreException e) {
- error = e;
- message = e.getLocalizedMessage();
- }
- assertNull("Failed to determine steps from step group. Possible cause: " + message, error); //$NON-NLS-1$
- assertNotNull("Unexpected return value 'null'.", steps); //$NON-NLS-1$
- assertEquals("Unexpected number of steps returned.", 5, steps.length); //$NON-NLS-1$
-
- assertEquals("Unexpected step order.", "org.eclipse.tcf.te.tests.stepper.step1", steps[0].getExtension().getId()); //$NON-NLS-1$ //$NON-NLS-2$
- assertEquals("Unexpected step order.", "org.eclipse.tcf.te.tests.stepper.step2", steps[1].getExtension().getId()); //$NON-NLS-1$ //$NON-NLS-2$
- assertEquals("Unexpected step order.", "org.eclipse.tcf.te.tests.stepper.step3", steps[2].getExtension().getId()); //$NON-NLS-1$ //$NON-NLS-2$
- assertEquals("Unexpected step order.", "org.eclipse.tcf.te.tests.stepper.step4", steps[3].getExtension().getId()); //$NON-NLS-1$ //$NON-NLS-2$
- assertEquals("Unexpected step order.", "org.eclipse.tcf.te.tests.stepper.step5", steps[4].getExtension().getId()); //$NON-NLS-1$ //$NON-NLS-2$
- }
- }
-
- assertEquals("Unexpected number of test step groups found.", 4, testStepGroupCount); //$NON-NLS-1$
- }
-
- public void testExecuteStepGroup() {
- final IStepper stepper = new Stepper("testExecuteStepGroup"); //$NON-NLS-1$
-
- IPropertiesContainer properties = new PropertiesContainer();
-
- // Initialize the stepper
- stepper.initialize(new TestStepContext(this), "org.eclipse.tcf.te.tests.stepper.stepGroup4", properties, null); //$NON-NLS-1$
-
- ExecutorsUtil.execute(new Runnable() {
- @Override
- public void run() {
- // Execute
- try {
- stepper.execute();
- }
- catch (Exception e) {
- assertNull("Unexpected exception when executing step group", e); //$NON-NLS-1$
- }
- }
- });
-
- // Wait for the stepper to be finished
- assertFalse("Timeout executing step group", ExecutorsUtil.waitAndExecute(10000, new IStepper.ExecutionFinishedConditionTester(stepper))); //$NON-NLS-1$
-
- assertNotNull("Missing executed step 1", properties.getProperty("org.eclipse.tcf.te.tests.stepper.step1")); //$NON-NLS-1$ //$NON-NLS-2$
- assertNotNull("Missing executed step 2", properties.getProperty("org.eclipse.tcf.te.tests.stepper.step2")); //$NON-NLS-1$ //$NON-NLS-2$
- assertNotNull("Missing executed step 3", properties.getProperty("org.eclipse.tcf.te.tests.stepper.step3")); //$NON-NLS-1$ //$NON-NLS-2$
- assertNotNull("Missing executed step 4", properties.getProperty("org.eclipse.tcf.te.tests.stepper.step4")); //$NON-NLS-1$ //$NON-NLS-2$
- assertNotNull("Missing executed step 5", properties.getProperty("org.eclipse.tcf.te.tests.stepper.step5")); //$NON-NLS-1$ //$NON-NLS-2$
- }
-}
+/******************************************************************************* + * Copyright (c) 2011, 2013 Wind River Systems, Inc. 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: + * Wind River Systems - initial API and implementation + *******************************************************************************/ +package org.eclipse.tcf.te.tests.stepper; + +import java.util.Map; + +import junit.framework.Test; +import junit.framework.TestSuite; + +import org.eclipse.core.runtime.CoreException; +import org.eclipse.tcf.te.runtime.concurrent.util.ExecutorsUtil; +import org.eclipse.tcf.te.runtime.interfaces.properties.IPropertiesContainer; +import org.eclipse.tcf.te.runtime.properties.PropertiesContainer; +import org.eclipse.tcf.te.runtime.stepper.StepperManager; +import org.eclipse.tcf.te.runtime.stepper.context.AbstractStepContext; +import org.eclipse.tcf.te.runtime.stepper.interfaces.IStep; +import org.eclipse.tcf.te.runtime.stepper.interfaces.IStepGroup; +import org.eclipse.tcf.te.runtime.stepper.interfaces.IStepGroupable; +import org.eclipse.tcf.te.runtime.stepper.interfaces.IStepper; +import org.eclipse.tcf.te.runtime.stepper.stepper.Stepper; +import org.eclipse.tcf.te.tests.CoreTestCase; +import org.eclipse.tcf.te.tests.stepper.steps.ParameterizedTestStep; +import org.eclipse.tcf.te.tests.stepper.steps.TestStep; + +/** + * Stepper engine test cases. + */ +public class StepperTests extends CoreTestCase { + + protected static class TestStepContext extends AbstractStepContext { + + /** + * Constructor. + */ + public TestStepContext(Object contextObject) { + super(contextObject); + } + + @Override + public String getId() { + return "org.eclipse.tcf.te.tests.stepper.TestStepContext"; //$NON-NLS-1$ + } + + @Override + public String getName() { + return "TestStepContext"; //$NON-NLS-1$ + } + } + + /** + * Provides a test suite to the caller which combines all single + * test bundled within this category. + * + * @return Test suite containing all test for this test category. + */ + public static Test getTestSuite() { + TestSuite testSuite = new TestSuite("Test stepper engine"); //$NON-NLS-1$ + + // add ourself to the test suite + testSuite.addTestSuite(StepperTests.class); + + return testSuite; + } + + /** + * Test the stepper extension point mechanism. + */ + public void testStepperContributions() { + assertNotNull("Unexpected return value 'null'.", StepperManager.getInstance()); //$NON-NLS-1$ + } + + /** + * Test the steps extension point mechanism. + */ + public void testStepContributions() { + assertNotNull("Unexpected return value 'null'.", StepperManager.getInstance()); //$NON-NLS-1$ + assertNotNull("Unexpected return value 'null'.", StepperManager.getInstance().getStepExtManager()); //$NON-NLS-1$ + + IStep[] steps = StepperManager.getInstance().getStepExtManager().getSteps(false); + int testStepCount = 0; + + for (IStep step : steps) { + if (step.getId().startsWith("org.eclipse.tcf.te.tests.stepper.step")) { //$NON-NLS-1$ + testStepCount++; + } else { + continue; + } + + if (step.getId().endsWith(".step1")) { //$NON-NLS-1$ + assertEquals("Unexpected step label found.", "Test Step 1", step.getLabel()); //$NON-NLS-1$ //$NON-NLS-2$ + assertEquals("Unexpected step description found.", "", step.getDescription()); //$NON-NLS-1$ //$NON-NLS-2$ + assertTrue("Unexpected step class type found.", step instanceof TestStep); //$NON-NLS-1$ + assertEquals("Unexpected number of dependencies found.", 0, step.getDependencies().length); //$NON-NLS-1$ + } + + if (step.getId().endsWith(".step2")) { //$NON-NLS-1$ + assertEquals("Unexpected step label found.", "Test Step 2", step.getLabel()); //$NON-NLS-1$ //$NON-NLS-2$ + assertEquals("Unexpected step description found.", "", step.getDescription()); //$NON-NLS-1$ //$NON-NLS-2$ + assertTrue("Unexpected step class type found.", step instanceof ParameterizedTestStep); //$NON-NLS-1$ + + Map<?,?> params = ((ParameterizedTestStep)step).params; + assertNotNull("Unexpected value 'null'.", params); //$NON-NLS-1$ + assertEquals("Unexpected number of parameter found.", 1, params.keySet().size()); //$NON-NLS-1$ + assertTrue("Missing expected key 'param1'.", params.containsKey("param1")); //$NON-NLS-1$ //$NON-NLS-2$ + assertTrue("Missing expected value 'value1'.", params.containsValue("value1")); //$NON-NLS-1$ //$NON-NLS-2$ + + assertEquals("Unexpected number of dependencies found.", 0, step.getDependencies().length); //$NON-NLS-1$ + } + + if (step.getId().endsWith(".step3")) { //$NON-NLS-1$ + assertEquals("Unexpected step label found.", "Test Step 3", step.getLabel()); //$NON-NLS-1$ //$NON-NLS-2$ + assertEquals("Unexpected step description found.", "Just another test step", step.getDescription()); //$NON-NLS-1$ //$NON-NLS-2$ + assertTrue("Unexpected step class type found.", step instanceof TestStep); //$NON-NLS-1$ + assertEquals("Unexpected number of dependencies found.", 0, step.getDependencies().length); //$NON-NLS-1$ + } + + if (step.getId().endsWith(".step4")) { //$NON-NLS-1$ + assertEquals("Unexpected step label found.", "Test Step 4", step.getLabel()); //$NON-NLS-1$ //$NON-NLS-2$ + assertEquals("Unexpected step description found.", "", step.getDescription()); //$NON-NLS-1$ //$NON-NLS-2$ + assertTrue("Unexpected step class type found.", step instanceof TestStep); //$NON-NLS-1$ + assertEquals("Unexpected number of dependencies found.", 1, step.getDependencies().length); //$NON-NLS-1$ + } + + if (step.getId().endsWith(".step5")) { //$NON-NLS-1$ + assertEquals("Unexpected step label found.", "Test Step 5", step.getLabel()); //$NON-NLS-1$ //$NON-NLS-2$ + assertEquals("Unexpected step description found.", "", step.getDescription()); //$NON-NLS-1$ //$NON-NLS-2$ + assertTrue("Unexpected step class type found.", step instanceof TestStep); //$NON-NLS-1$ + assertEquals("Unexpected number of dependencies found.", 0, step.getDependencies().length); //$NON-NLS-1$ + } + } + + assertEquals("Unexpected number of test steps found.", 5, testStepCount); //$NON-NLS-1$ + } + + /** + * Test the step group extension point mechanism. + */ + public void testStepGroupContributions() { + assertNotNull("Unexpected return value 'null'.", StepperManager.getInstance()); //$NON-NLS-1$ + assertNotNull("Unexpected return value 'null'.", StepperManager.getInstance().getStepGroupExtManager()); //$NON-NLS-1$ + + IStepGroup[] stepGroups = StepperManager.getInstance().getStepGroupExtManager().getStepGroups(false); + int testStepGroupCount = 0; + + for (IStepGroup stepGroup : stepGroups) { + if (stepGroup.getId().startsWith("org.eclipse.tcf.te.tests.stepper.stepGroup")) { //$NON-NLS-1$ + testStepGroupCount++; + } else { + continue; + } + + Throwable error = null; + String message = null; + IStepGroupable[] steps = null; + + if (stepGroup.getId().endsWith(".stepGroup1")) { //$NON-NLS-1$ + assertEquals("Unexpected step group label found.", "Test Step Group 1", stepGroup.getLabel()); //$NON-NLS-1$ //$NON-NLS-2$ + assertEquals("Unexpected step description found.", "", stepGroup.getDescription()); //$NON-NLS-1$ //$NON-NLS-2$ + assertFalse("Step group is locked but should not.", stepGroup.isLocked()); //$NON-NLS-1$ + assertNull("Unexpected non-null value.", stepGroup.getStepGroupIterator()); //$NON-NLS-1$ + + try { + steps = stepGroup.getSteps(new TestStepContext(this)); + } catch (CoreException e) { + error = e; + message = e.getLocalizedMessage(); + } + assertNull("Failed to determine steps from step group. Possible cause: " + message, error); //$NON-NLS-1$ + assertNotNull("Unexpected return value 'null'.", steps); //$NON-NLS-1$ + assertEquals("Unexpected number of steps returned.", 0, steps.length); //$NON-NLS-1$ + } + + if (stepGroup.getId().endsWith(".stepGroup2")) { //$NON-NLS-1$ + assertEquals("Unexpected step group label found.", "Test Step Group 2", stepGroup.getLabel()); //$NON-NLS-1$ //$NON-NLS-2$ + assertEquals("Unexpected step description found.", "Just a step group description", stepGroup.getDescription()); //$NON-NLS-1$ //$NON-NLS-2$ + assertTrue("Step group is not locked but should.", stepGroup.isLocked()); //$NON-NLS-1$ + assertNull("Unexpected non-null value.", stepGroup.getStepGroupIterator()); //$NON-NLS-1$ + + error = null; message = null; steps = null; + try { + steps = stepGroup.getSteps(new TestStepContext(this)); + } catch (CoreException e) { + error = e; + message = e.getLocalizedMessage(); + } + assertNull("Failed to determine steps from step group. Possible cause: " + message, error); //$NON-NLS-1$ + assertNotNull("Unexpected return value 'null'.", steps); //$NON-NLS-1$ + assertEquals("Unexpected number of steps returned.", 0, steps.length); //$NON-NLS-1$ + } + + if (stepGroup.getId().endsWith(".stepGroup3")) { //$NON-NLS-1$ + assertEquals("Unexpected step group label found.", "Test Step Group 3", stepGroup.getLabel()); //$NON-NLS-1$ //$NON-NLS-2$ + assertEquals("Unexpected step description found.", "", stepGroup.getDescription()); //$NON-NLS-1$ //$NON-NLS-2$ + assertFalse("Step group is locked but should not.", stepGroup.isLocked()); //$NON-NLS-1$ + assertNull("Unexpected non-null value.", stepGroup.getStepGroupIterator()); //$NON-NLS-1$ + + error = null; message = null; steps = null; + try { + steps = stepGroup.getSteps(new TestStepContext(this)); + } catch (CoreException e) { + error = e; + message = e.getLocalizedMessage(); + } + assertNull("Failed to determine steps from step group. Possible cause: " + message, error); //$NON-NLS-1$ + assertNotNull("Unexpected return value 'null'.", steps); //$NON-NLS-1$ + assertEquals("Unexpected number of steps returned.", 4, steps.length); //$NON-NLS-1$ + + assertEquals("Unexpected step order.", "org.eclipse.tcf.te.tests.stepper.step1", steps[0].getExtension().getId()); //$NON-NLS-1$ //$NON-NLS-2$ + assertEquals("Unexpected step order.", "org.eclipse.tcf.te.tests.stepper.step2", steps[1].getExtension().getId()); //$NON-NLS-1$ //$NON-NLS-2$ + assertEquals("Unexpected step order.", "org.eclipse.tcf.te.tests.stepper.step3", steps[2].getExtension().getId()); //$NON-NLS-1$ //$NON-NLS-2$ + assertEquals("Unexpected step order.", "org.eclipse.tcf.te.tests.stepper.step4", steps[3].getExtension().getId()); //$NON-NLS-1$ //$NON-NLS-2$ + } + + + if (stepGroup.getId().endsWith(".stepGroup4")) { //$NON-NLS-1$ + assertEquals("Unexpected step group label found.", "Test Step Group 4", stepGroup.getLabel()); //$NON-NLS-1$ //$NON-NLS-2$ + assertEquals("Unexpected step description found.", "", stepGroup.getDescription()); //$NON-NLS-1$ //$NON-NLS-2$ + assertFalse("Step group is locked but should not.", stepGroup.isLocked()); //$NON-NLS-1$ + assertNull("Unexpected non-null value.", stepGroup.getStepGroupIterator()); //$NON-NLS-1$ + + error = null; message = null; steps = null; + try { + steps = stepGroup.getSteps(new TestStepContext(this)); + } catch (CoreException e) { + error = e; + message = e.getLocalizedMessage(); + } + assertNull("Failed to determine steps from step group. Possible cause: " + message, error); //$NON-NLS-1$ + assertNotNull("Unexpected return value 'null'.", steps); //$NON-NLS-1$ + assertEquals("Unexpected number of steps returned.", 5, steps.length); //$NON-NLS-1$ + + assertEquals("Unexpected step order.", "org.eclipse.tcf.te.tests.stepper.step1", steps[0].getExtension().getId()); //$NON-NLS-1$ //$NON-NLS-2$ + assertEquals("Unexpected step order.", "org.eclipse.tcf.te.tests.stepper.step2", steps[1].getExtension().getId()); //$NON-NLS-1$ //$NON-NLS-2$ + assertEquals("Unexpected step order.", "org.eclipse.tcf.te.tests.stepper.step3", steps[2].getExtension().getId()); //$NON-NLS-1$ //$NON-NLS-2$ + assertEquals("Unexpected step order.", "org.eclipse.tcf.te.tests.stepper.step4", steps[3].getExtension().getId()); //$NON-NLS-1$ //$NON-NLS-2$ + + error = null; message = null; steps = null; + try { + steps = stepGroup.getSteps(new TestStepContext(this)); + } catch (CoreException e) { + error = e; + message = e.getLocalizedMessage(); + } + assertNull("Failed to determine steps from step group. Possible cause: " + message, error); //$NON-NLS-1$ + assertNotNull("Unexpected return value 'null'.", steps); //$NON-NLS-1$ + assertEquals("Unexpected number of steps returned.", 5, steps.length); //$NON-NLS-1$ + + assertEquals("Unexpected step order.", "org.eclipse.tcf.te.tests.stepper.step1", steps[0].getExtension().getId()); //$NON-NLS-1$ //$NON-NLS-2$ + assertEquals("Unexpected step order.", "org.eclipse.tcf.te.tests.stepper.step2", steps[1].getExtension().getId()); //$NON-NLS-1$ //$NON-NLS-2$ + assertEquals("Unexpected step order.", "org.eclipse.tcf.te.tests.stepper.step3", steps[2].getExtension().getId()); //$NON-NLS-1$ //$NON-NLS-2$ + assertEquals("Unexpected step order.", "org.eclipse.tcf.te.tests.stepper.step4", steps[3].getExtension().getId()); //$NON-NLS-1$ //$NON-NLS-2$ + assertEquals("Unexpected step order.", "org.eclipse.tcf.te.tests.stepper.step5", steps[4].getExtension().getId()); //$NON-NLS-1$ //$NON-NLS-2$ + } + } + + assertEquals("Unexpected number of test step groups found.", 4, testStepGroupCount); //$NON-NLS-1$ + } + + public void testExecuteStepGroup() { + final IStepper stepper = new Stepper("testExecuteStepGroup"); //$NON-NLS-1$ + + IPropertiesContainer properties = new PropertiesContainer(); + + // Initialize the stepper + stepper.initialize(new TestStepContext(this), "org.eclipse.tcf.te.tests.stepper.stepGroup4", properties, null); //$NON-NLS-1$ + + ExecutorsUtil.execute(new Runnable() { + @Override + public void run() { + // Execute + try { + stepper.execute(); + } + catch (Exception e) { + assertNull("Unexpected exception when executing step group", e); //$NON-NLS-1$ + } + } + }); + + // Wait for the stepper to be finished + assertFalse("Timeout executing step group", ExecutorsUtil.waitAndExecute(10000, new IStepper.ExecutionFinishedConditionTester(stepper))); //$NON-NLS-1$ + + assertNotNull("Missing executed step 1", properties.getProperty("org.eclipse.tcf.te.tests.stepper.step1")); //$NON-NLS-1$ //$NON-NLS-2$ + assertNotNull("Missing executed step 2", properties.getProperty("org.eclipse.tcf.te.tests.stepper.step2")); //$NON-NLS-1$ //$NON-NLS-2$ + assertNotNull("Missing executed step 3", properties.getProperty("org.eclipse.tcf.te.tests.stepper.step3")); //$NON-NLS-1$ //$NON-NLS-2$ + assertNotNull("Missing executed step 4", properties.getProperty("org.eclipse.tcf.te.tests.stepper.step4")); //$NON-NLS-1$ //$NON-NLS-2$ + assertNotNull("Missing executed step 5", properties.getProperty("org.eclipse.tcf.te.tests.stepper.step5")); //$NON-NLS-1$ //$NON-NLS-2$ + } +} |