Bug 497491: [UnitTest] Make Unittest/getTest work in Test Setup code
fixed calls to getTest() in all setup/teardown stages
Change-Id: Ib83805003d3889d6e26f9b889a84599f86c4f649
diff --git a/plugins/org.eclipse.ease.modules.unittest/src/org/eclipse/ease/modules/unittest/components/Test.java b/plugins/org.eclipse.ease.modules.unittest/src/org/eclipse/ease/modules/unittest/components/Test.java
index 5e6da18..a65fba1 100644
--- a/plugins/org.eclipse.ease.modules.unittest/src/org/eclipse/ease/modules/unittest/components/Test.java
+++ b/plugins/org.eclipse.ease.modules.unittest/src/org/eclipse/ease/modules/unittest/components/Test.java
@@ -31,9 +31,9 @@
private String fDescription;
private List<IScriptDebugFrame> fTestLocation = null;
- private final List<TestResult> fResults = new ArrayList<TestResult>();
+ private final List<TestResult> fResults = new ArrayList<>();
- private final Map<String, String> fMetaData = new HashMap<String, String>();
+ private final Map<String, String> fMetaData = new HashMap<>();
private boolean fTransient = false;
public Test(final TestComposite parent, final String title, final String description) {
@@ -81,7 +81,7 @@
public void setTestLocation(final List<IScriptDebugFrame> stackTrace) {
// we need to create a carbon copy of the stack as it gets modified when the script continues
- fTestLocation = new ArrayList<IScriptDebugFrame>();
+ fTestLocation = new ArrayList<>();
for (final IScriptDebugFrame frame : stackTrace)
fTestLocation.add(new ScriptDebugFrame(frame));
}
@@ -131,7 +131,7 @@
* @return messages with given <i>status</i>
*/
public Collection<TestResult> getMessages(final TestStatus status) {
- final ArrayList<TestResult> result = new ArrayList<TestResult>();
+ final ArrayList<TestResult> result = new ArrayList<>();
for (final TestResult message : getMessages())
if (message.getStatus().equals(status))
@@ -150,7 +150,7 @@
final Object file = element.getScript().getFile();
if ((file instanceof IFile) && (((IFile) file).exists())) {
try {
- final HashMap<String, Object> attributes = new HashMap<String, Object>();
+ final HashMap<String, Object> attributes = new HashMap<>();
attributes.put(IMarker.LINE_NUMBER, element.getLineNumber());
attributes.put(IMarker.SEVERITY, IMarker.SEVERITY_ERROR);
attributes.put(IMarker.MESSAGE, result.getDescription());
@@ -177,4 +177,9 @@
public Map<String, String> getMetaData() {
return Collections.unmodifiableMap(fMetaData);
}
+
+ @Override
+ public String toString() {
+ return getTitle();
+ }
}
diff --git a/plugins/org.eclipse.ease.modules.unittest/src/org/eclipse/ease/modules/unittest/components/TestSuite.java b/plugins/org.eclipse.ease.modules.unittest/src/org/eclipse/ease/modules/unittest/components/TestSuite.java
index 33e8125..69c049c 100644
--- a/plugins/org.eclipse.ease.modules.unittest/src/org/eclipse/ease/modules/unittest/components/TestSuite.java
+++ b/plugins/org.eclipse.ease.modules.unittest/src/org/eclipse/ease/modules/unittest/components/TestSuite.java
@@ -10,6 +10,7 @@
*******************************************************************************/
package org.eclipse.ease.modules.unittest.components;
+import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
@@ -436,4 +437,16 @@
public Object getFile() {
return getModel().getFile();
}
+
+ @Override
+ public String toString() {
+ final Object file = getFile();
+ if (file instanceof IFile)
+ return ((IFile) file).getName();
+
+ if (file instanceof File)
+ return ((File) file).getName();
+
+ return super.toString();
+ }
}
diff --git a/plugins/org.eclipse.ease.modules.unittest/src/org/eclipse/ease/modules/unittest/modules/UnitTestModule.java b/plugins/org.eclipse.ease.modules.unittest/src/org/eclipse/ease/modules/unittest/modules/UnitTestModule.java
index becfef0..02e4cf8 100644
--- a/plugins/org.eclipse.ease.modules.unittest/src/org/eclipse/ease/modules/unittest/modules/UnitTestModule.java
+++ b/plugins/org.eclipse.ease.modules.unittest/src/org/eclipse/ease/modules/unittest/modules/UnitTestModule.java
@@ -211,8 +211,6 @@
fAssertionsToBeIgnored = 0;
fAssertionEnablement = true;
- executeUserCode(TestSuiteModel.CODE_LOCATION_TEST_SETUP);
-
final TestComposite testObject = getTestObject();
if (testObject != null) {
final Test test = new Test(testObject, title, description);
@@ -224,6 +222,8 @@
testObject.addTest(test);
}
+
+ executeUserCode(TestSuiteModel.CODE_LOCATION_TEST_SETUP);
}
/**
@@ -231,11 +231,11 @@
*/
@WrapToScript
public final void endTest() {
+ executeUserCode(TestSuiteModel.CODE_LOCATION_TEST_TEARDOWN);
+
final TestComposite testObject = getTestObject();
if (testObject != null)
testObject.endTest();
-
- executeUserCode(TestSuiteModel.CODE_LOCATION_TEST_TEARDOWN);
}
/**
@@ -327,10 +327,11 @@
*/
@WrapToScript
public Test getTest(@ScriptParameter(defaultValue = ScriptParameter.NULL) final String name) {
+ final TestComposite owner = (getTestFile() != null) ? getTestFile() : getTestSuite();
if (name == null)
- return getTestFile().getCurrentTest();
+ return owner.getCurrentTest();
- for (final TestEntity test : getTestFile().getChildren()) {
+ for (final TestEntity test : owner.getChildren()) {
if ((test instanceof Test) && (name.equals(((Test) test).getTitle())))
return (Test) test;
}