/**
* This file is licensed under the University of Illinois/NCSA Open Source License. See LICENSE.TXT for details.
*/
package edu.illinois.codingtracker.listeners;
import org.eclipse.jdt.core.IJavaProject;
import org.eclipse.jdt.junit.JUnitCore;
import org.eclipse.jdt.junit.TestRunListener;
import org.eclipse.jdt.junit.model.ITestCaseElement;
import org.eclipse.jdt.junit.model.ITestRunSession;
/**
*
* @author Stas Negara
*
*/
public class JUnitListener extends BasicListener {
public static void register() {
JUnitCore.addTestRunListener(new MyTestRunListener());
}
static class MyTestRunListener extends TestRunListener {
@Override
public void sessionFinished(ITestRunSession session) {
operationRecorder.recordFinishedTestSession(session.getTestRunName());
}
@Override
public void sessionLaunched(ITestRunSession session) {
IJavaProject launchedProject= session.getLaunchedProject();
String launchedProjectName= "";
if (launchedProject != null) {
launchedProjectName= launchedProject.getElementName();
}
operationRecorder.recordLaunchedTestSession(session.getTestRunName(), launchedProjectName);
}
@Override
public void sessionStarted(ITestRunSession session) {
operationRecorder.recordStartedTestSession(session.getTestRunName());
}
@Override
public void testCaseFinished(ITestCaseElement testCaseElement) {
String result= testCaseElement.getTestResult(false).toString();
operationRecorder.recordFinishedTestCase(testCaseElement.getTestRunSession().getTestRunName(), result);
}
@Override
public void testCaseStarted(ITestCaseElement testCaseElement) {
String testClassName= testCaseElement.getTestClassName();
String testMethodName= testCaseElement.getTestMethodName();
operationRecorder.recordStartedTestCase(testCaseElement.getTestRunSession().getTestRunName(), testClassName, testMethodName);
}
}
}