Bug 480973: [UnitTest] NPE in test execution when test file is not found

  we did not correctly report errors when test files are not available.
  NPE was just hiding this issue.

Change-Id: Ibc2954afb1263a05f0f2decd1ed58d66f09725f8
diff --git a/plugins/org.eclipse.ease.modules.unittest.ui/src/org/eclipse/ease/modules/unittest/ui/views/SuiteRuntimeInformation.java b/plugins/org.eclipse.ease.modules.unittest.ui/src/org/eclipse/ease/modules/unittest/ui/views/SuiteRuntimeInformation.java
index 77ef927..1d6b50d 100644
--- a/plugins/org.eclipse.ease.modules.unittest.ui/src/org/eclipse/ease/modules/unittest/ui/views/SuiteRuntimeInformation.java
+++ b/plugins/org.eclipse.ease.modules.unittest.ui/src/org/eclipse/ease/modules/unittest/ui/views/SuiteRuntimeInformation.java
@@ -161,7 +161,10 @@
 		if (file instanceof File)
 			return ((File) file).getAbsolutePath();
 
-		return file.toString();
+		if (file != null)
+			return file.toString();
+
+		return "<undefind>";
 	}
 
 	private synchronized void addTiming(final String fileIdentifier, final long timing) {
diff --git a/plugins/org.eclipse.ease.modules.unittest/src/org/eclipse/ease/modules/unittest/components/TestFile.java b/plugins/org.eclipse.ease.modules.unittest/src/org/eclipse/ease/modules/unittest/components/TestFile.java
index 835c341..e498b23 100644
--- a/plugins/org.eclipse.ease.modules.unittest/src/org/eclipse/ease/modules/unittest/components/TestFile.java
+++ b/plugins/org.eclipse.ease.modules.unittest/src/org/eclipse/ease/modules/unittest/components/TestFile.java
@@ -40,6 +40,14 @@
 		@Override
 		protected IStatus run(final IProgressMonitor monitor) {
 
+			Object testFile = ResourceTools.resolveFile(fFileLocation, getTestSuite().getModel().getFile(), true);
+			if (testFile == null) {
+				// no test file available
+				setStatus(TestStatus.FAILURE);
+				getTestSuite().addTestResult(TestStatus.FAILURE, "Test file \"" + fFileLocation + "\" not found");
+				return Status.CANCEL_STATUS;
+			}
+
 			// clear old tests
 			reset();
 			setStatus(TestStatus.RUNNING);
@@ -86,8 +94,7 @@
 				}
 
 				// execute test code
-				final ScriptResult testFileResult = getScriptEngine().executeSync(
-						ResourceTools.resolveFile(fFileLocation, getTestSuite().getModel().getFile(), true));
+				final ScriptResult testFileResult = getScriptEngine().executeSync(testFile);
 				if (testFileResult.hasException()) {
 					// this is probably an exception due to calling exit()
 					if (!(testFileResult.getException() instanceof ExitException)) {