package junit.extensions.eclipse.quick.process.internal;
import java.io.IOException;
import junit.extensions.eclipse.quick.process.internal.preferences.Preference;
import org.eclipse.jdt.junit.ITestRunListener;
import org.eclipse.jdt.junit.JUnitCore;
import org.eclipse.jdt.junit.model.ITestElement.Result;
import org.eclipse.jdt.junit.model.ITestRunSession;
@SuppressWarnings("deprecation")
public class TestListenerForProcess implements ITestRunListener {
private static final String QUICK_J_UNIT = "Quick JUnit ";
private static final String TEST_OK = QUICK_J_UNIT + "Test OK";
private static final String TEST_FAILURE = QUICK_J_UNIT + "Test FAILURE";
private static final String TEST_ERROR = QUICK_J_UNIT + "Test ERROR";
public TestListenerForProcess() {
JUnitCore.addTestRunListener(new org.eclipse.jdt.junit.TestRunListener() {
private TemplateParser tmpParser = new TemplateParser();
private ProcessParser processParser = new ProcessParser();
@Override
public void sessionFinished(ITestRunSession session) {
String template = Preference.TEMPLATE.getValue();
tmpParser.setTemplate(template);
Result testResult = session.getTestResult(true);
String summary;
if(Result.ERROR.equals(testResult)){
summary = TEST_ERROR;
}else if(Result.FAILURE.equals(testResult)){
summary = TEST_FAILURE;
}else{
summary = TEST_OK;
}
String detail = tmpParser.parseTemplate(session);
String command = Preference.PROCESS.getValue();
String[] parsed = processParser.parse(command,summary,detail);
ProcessBuilder builder = new ProcessBuilder(parsed);
try {
builder.start();
} catch (IOException e) {
}
}
});
}
public void testEnded(String testId, String testName) {
}
public void testFailed(int status, String testId, String testName,
String trace) {
}
public void testReran(String testId, String testClass, String testName,
int status, String trace) {
}
public void testRunEnded(long elapsedTime) {
}
public void testRunStarted(int testCount) {
}
public void testRunStopped(long elapsedTime) {
}
public void testRunTerminated() {
}
public void testStarted(String testId, String testName) {
}
}