blob: 1ecc44ab00e4b3f5d66116d70134b6d1ab228402 [file] [log] [blame]
package org.eclipse.jst.validation.test.internal.registry;
import java.util.logging.Level;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.jem.util.logger.proxy.Logger;
import org.eclipse.jst.validation.test.BVTValidationPlugin;
import org.eclipse.jst.validation.test.IOperationRunnable;
import org.eclipse.jst.validation.test.setup.IBuffer;
/**
* Instead of testing a validator, an operation test case tests the
* validation framework.
*/
public class OperationTestcase implements ITestcaseMetaData {
private String _pluginId = null; // The plugin id that has contributed this test case.
private String _projectName = null; // the name of the project that this test case tests
private String _inputFileName = null;
private String _opName = null; // the name of the test case
private IOperationRunnable _runnable = null;
public OperationTestcase(String pluginId, String projectName, String opName, String inputFileName, IOperationRunnable runnable) {
_pluginId = pluginId;
_projectName = projectName;
_inputFileName = inputFileName;
_opName = opName;
_runnable = runnable;
}
public String getName() {
return _opName;
}
public boolean isVisible() {
return true; // framework test cases are always visible on the test collector menu
}
public String getDeclaringPluginId() {
return _pluginId;
}
public String getProjectName() {
return _projectName;
}
public IProject getProject() {
return TestcaseUtility.findProject(this);
}
public String getInputFileName() {
return _inputFileName;
}
public IOperationRunnable getRunnable() {
return _runnable;
}
/* (non-Javadoc)
* @see org.eclipse.jst.validation.test.internal.registry.ITestcaseMetaData#run(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.jst.validation.test.setup.IBuffer, org.eclipse.core.resources.IProject)
*/
public void run(IBuffer buffer, IProject project) {
try {
getRunnable().setBuffer(buffer);
getRunnable().setProject(project);
getRunnable().setName(getName());
ResourcesPlugin.getWorkspace().run(getRunnable(), buffer.getProgressMonitor());
}
catch(CoreException exc) {
Logger logger = BVTValidationPlugin.getPlugin().getMsgLogger();
if(logger.isLoggingLevel(Level.SEVERE)) {
logger.write(Level.SEVERE, exc); //$NON-NLS-1$
}
}
}
public String toString() {
return getName();
}
}