package org.jboss.tools.batch.ui.itest;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.ui.PlatformUI;
import org.jboss.tools.batch.internal.core.validation.BatchValidator;
import org.jboss.tools.batch.ui.quickfixes.CreateBatchArtifactQuickFix;
import org.jboss.tools.common.base.test.MarkerResolutionTestUtil;
import org.jboss.tools.common.validation.ValidationErrorManager;
import junit.framework.TestCase;
public class BatchQuickFixTest extends TestCase {
public static final String PROBLEM_TYPE = "org.jboss.tools.batch.core.batchproblem"; //$NON-NLS-1$
private static final String PROJECT_NAME = "BatchTestProject"; //$NON-NLS-1$
public IProject project = null;
@Override
protected void setUp() {
project = ResourcesPlugin.getWorkspace().getRoot().getProject(
PROJECT_NAME);
PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().closeAllEditors(false);
}
@Override
protected void tearDown() throws CoreException{
org.jboss.tools.test.util.JobUtils.runDeferredEvents();
PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().closeAllEditors(false);
String[] filesToDelete = new String[]{
"src/batch/AnyJobListener.java",
"src/batch/AnyStepListener.java",
"src/batch/AnyBatchlet.java",
"src/batchlib/AnyPartitionMapper.java",
"src/batchlib/AnyPartitionCollector.java",
"src/batchlib/AnyPartitionAnalyzer.java",
"src/batchlib/AnyPartitionReducer.java",
"src/batch/AnyItemReader.java",
"src/batch/AnyItemProcessor.java",
"src/batch/AnyItemWriter.java",
"src/batch/AnyCheckpointAlgorithm.java",
"src/batch/AnyDecider.java"
};
for(String fileName : filesToDelete){
IFile file = project.getFile(fileName);
file.delete(true, new NullProgressMonitor());
}
}
public BatchQuickFixTest() {
super("Batch Quick Fix Test"); //$NON-NLS-1$
}
private void checkBatchQuickFix(int quickFixId) throws CoreException{
MarkerResolutionTestUtil.checkResolution(project,
new String[]{
"src/META-INF/batch-jobs/job-quickfix.xml"
},
PROBLEM_TYPE,
ValidationErrorManager.MESSAGE_ID_ATTRIBUTE_NAME,
quickFixId,
CreateBatchArtifactQuickFix.class);
}
public void testCreateBatchletQuickFix() throws CoreException{
checkBatchQuickFix(BatchValidator.BATCHLET_IS_NOT_FOUND_ID);
}
public void testCreateJobListenerQuickFix() throws CoreException{
checkBatchQuickFix(BatchValidator.JOB_LISTENER_IS_NOT_FOUND_ID);
}
public void testCreateStepListenerQuickFix() throws CoreException{
checkBatchQuickFix(BatchValidator.STEP_LISTENER_IS_NOT_FOUND_ID);
}
public void testCreateDeciderQuickFix() throws CoreException{
checkBatchQuickFix(BatchValidator.DECIDER_IS_NOT_FOUND_ID);
}
public void testCreateCheckpointAlgorithmQuickFix() throws CoreException{
checkBatchQuickFix(BatchValidator.CHECKPOINT_ALGORITHM_IS_NOT_FOUND_ID);
}
public void testCreateItemReaderQuickFix() throws CoreException{
checkBatchQuickFix(BatchValidator.ITEM_READER_IS_NOT_FOUND_ID);
}
public void testCreateItemWriterQuickFix() throws CoreException{
checkBatchQuickFix(BatchValidator.ITEM_WRITER_IS_NOT_FOUND_ID);
}
public void testCreateItemProcessorQuickFix() throws CoreException{
checkBatchQuickFix(BatchValidator.ITEM_PROCESSOR_IS_NOT_FOUND_ID);
}
public void testCreatePartitionMapperQuickFix() throws CoreException{
checkBatchQuickFix(BatchValidator.MAPPER_IS_NOT_FOUND_ID);
}
public void testCreatePartitionAnalyzerQuickFix() throws CoreException{
checkBatchQuickFix(BatchValidator.ANALYZER_IS_NOT_FOUND_ID);
}
public void testCreatePartitionCollectorQuickFix() throws CoreException{
checkBatchQuickFix(BatchValidator.COLLECTOR_IS_NOT_FOUND_ID);
}
public void testCreatePartitionReducerQuickFix() throws CoreException{
checkBatchQuickFix(BatchValidator.REDUCER_IS_NOT_FOUND_ID);
}
}