/******************************************************************************* * Copyright (c) 2015 Red Hat, Inc. * Distributed under license by Red Hat, Inc. All rights reserved. * This program is made available under the terms of the * Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Red Hat, Inc. - initial API and implementation ******************************************************************************/ package org.jboss.tools.batch.core.itest; import org.eclipse.core.resources.IProject; import org.eclipse.core.resources.IResource; import org.eclipse.jface.preference.IPreferenceStore; import org.eclipse.osgi.util.NLS; import org.jboss.tools.batch.internal.core.validation.BatchValidationMessages; import org.jboss.tools.common.base.test.validation.TestUtil; import org.jboss.tools.common.preferences.SeverityPreferences; import org.jboss.tools.jst.web.kb.WebKbPlugin; import org.jboss.tools.jst.web.kb.internal.validation.ELValidationMessages; import org.jboss.tools.jst.web.kb.preferences.ELSeverityPreferences; import org.jboss.tools.test.util.ProjectImportTestSetup; import org.jboss.tools.tests.AbstractResourceMarkerTest; import junit.framework.TestCase; /** * * @author Viacheslav Kabanovich * */ public class BatchValidatorTest extends TestCase { public static String PROJECT_NAME = "BatchTestProject"; //$NON-NLS-1$ private IProject project; public BatchValidatorTest() {} @Override protected void setUp() throws Exception { project = ProjectImportTestSetup.loadProject(PROJECT_NAME); } public void testBatchlet() throws Exception { IResource resource = project.findMember("/src/META-INF/batch-jobs/job3.xml"); //$NON-NLS-1$ assertTrue(resource.exists()); TestUtil.validate(resource); AbstractResourceMarkerTest.assertMarkerIsNotCreated(resource, NLS.bind(BatchValidationMessages.BATCHLET_IS_NOT_FOUND, new String[]{"batchlet"}), 3); //$NON-NLS-1$ AbstractResourceMarkerTest.assertMarkerIsCreated(resource, NLS.bind(BatchValidationMessages.BATCHLET_IS_EXPECTED, new String[]{"myDecider"}), 10); //$NON-NLS-1$ AbstractResourceMarkerTest.assertMarkerIsCreated(resource, NLS.bind(BatchValidationMessages.BATCHLET_IS_NOT_FOUND, new String[]{"batchlet_1"}), 13); //$NON-NLS-1$ } public void testExecutionLoop() throws Exception { IResource resource = project.findMember("/src/META-INF/batch-jobs/job4.xml"); //$NON-NLS-1$ assertTrue(resource.exists()); TestUtil.validate(resource); AbstractResourceMarkerTest.assertMarkerIsCreated(resource, NLS.bind(BatchValidationMessages.LOOP_IS_DETECTED, new String[]{"myBatchletStep1", "myBatchletStep2"}), 2); AbstractResourceMarkerTest.assertMarkerIsCreated(resource, NLS.bind(BatchValidationMessages.LOOP_IS_DETECTED, new String[]{"myBatchletStep2", "myBatchletStep3"}), 5); //$NON-NLS-1$ //$NON-NLS-2$ AbstractResourceMarkerTest.assertMarkerIsCreated(resource, NLS.bind(BatchValidationMessages.LOOP_IS_DETECTED, new String[]{"myBatchletStep3", "myBatchletStep1"}), 8); //$NON-NLS-1$ //$NON-NLS-2$ AbstractResourceMarkerTest.assertMarkerIsCreated(resource, NLS.bind(BatchValidationMessages.TRANSITION_TO_SELF, new String[]{}), 11); AbstractResourceMarkerTest.assertMarkerIsNotCreated(resource, NLS.bind(BatchValidationMessages.LOOP_IS_DETECTED, new String[]{"myBatchletStep5", "myBatchletStep1"}), 14); //$NON-NLS-1$ //$NON-NLS-21$ } public void testFilter() throws Exception { IResource resource = project.findMember("/src/META-INF/batch-jobs/job5.xml"); //$NON-NLS-1$ assertTrue(resource.exists()); TestUtil.validate(resource); AbstractResourceMarkerTest.assertMarkerIsCreated(resource, NLS.bind(BatchValidationMessages.EXCEPTION_CLASS_IS_NOT_FOUND, new String[]{"aaa"}), 8, 13); //$NON-NLS-1$ AbstractResourceMarkerTest.assertMarkerIsCreated(resource, NLS.bind(BatchValidationMessages.EXCEPTION_CLASS_DOES_NOT_EXTEND_JAVA_LANG_EXCEPTION, new String[]{"java.util.ArrayList"}), 10, 15); //$NON-NLS-1$ AbstractResourceMarkerTest.assertMarkerIsNotCreated(resource, NLS.bind(BatchValidationMessages.EXCEPTION_CLASS_DOES_NOT_EXTEND_JAVA_LANG_EXCEPTION, new String[]{"java.lang.ArrayIndexOutOfBoundsException"}), 9); //$NON-NLS-1$ AbstractResourceMarkerTest.assertMarkerIsNotCreated(resource, NLS.bind(BatchValidationMessages.EXCEPTION_CLASS_DOES_NOT_EXTEND_JAVA_LANG_EXCEPTION, new String[]{"java.lang.ArrayIndexOutOfBoundsException"}), 14); //$NON-NLS-1$ } public void testRestart() throws Exception { IResource resource = project.findMember("/src/META-INF/batch-jobs/job6.xml"); //$NON-NLS-1$ assertTrue(resource.exists()); TestUtil.validate(resource); AbstractResourceMarkerTest.assertMarkerIsCreated(resource, NLS.bind(BatchValidationMessages.TARGET_NOT_FOUND_ON_JOB_LEVEL, new String[]{"myFlow2"}), 8); //$NON-NLS-1$ AbstractResourceMarkerTest.assertMarkerIsNotCreated(resource, NLS.bind(BatchValidationMessages.TARGET_NOT_FOUND_ON_JOB_LEVEL, new String[]{"myStep1"}), 9); //$NON-NLS-1$ } public void testReader() throws Exception { IResource resource = project.findMember("/src/META-INF/batch-jobs/job7.xml"); //$NON-NLS-1$ assertTrue(resource.exists()); TestUtil.validate(resource); AbstractResourceMarkerTest.assertMarkerIsNotCreated(resource, NLS.bind(BatchValidationMessages.READER_IS_NOT_FOUND, new String[]{"myReader"}), 4); //$NON-NLS-1$ AbstractResourceMarkerTest.assertMarkerIsNotCreated(resource, NLS.bind(BatchValidationMessages.READER_IS_EXPECTED, new String[]{}), 4); AbstractResourceMarkerTest.assertMarkerIsCreated(resource, NLS.bind(BatchValidationMessages.READER_IS_NOT_FOUND, new String[]{"myReaderX"}), 12); //$NON-NLS-1$ AbstractResourceMarkerTest.assertMarkerIsCreated(resource, NLS.bind(BatchValidationMessages.READER_IS_EXPECTED, new String[]{}), 20); } public void testProcessor() throws Exception { IResource resource = project.findMember("/src/META-INF/batch-jobs/job7.xml"); //$NON-NLS-1$ assertTrue(resource.exists()); TestUtil.validate(resource); AbstractResourceMarkerTest.assertMarkerIsNotCreated(resource, NLS.bind(BatchValidationMessages.PROCESSOR_IS_NOT_FOUND, new String[]{"myProcessor"}), 5); //$NON-NLS-1$ AbstractResourceMarkerTest.assertMarkerIsNotCreated(resource, NLS.bind(BatchValidationMessages.PROCESSOR_IS_EXPECTED, new String[]{}), 5); AbstractResourceMarkerTest.assertMarkerIsCreated(resource, NLS.bind(BatchValidationMessages.PROCESSOR_IS_NOT_FOUND, new String[]{"myProcessorX"}), 13); //$NON-NLS-1$ AbstractResourceMarkerTest.assertMarkerIsCreated(resource, NLS.bind(BatchValidationMessages.PROCESSOR_IS_EXPECTED, new String[]{}), 21); } public void testWriter() throws Exception { IResource resource = project.findMember("/src/META-INF/batch-jobs/job7.xml"); //$NON-NLS-1$ assertTrue(resource.exists()); TestUtil.validate(resource); AbstractResourceMarkerTest.assertMarkerIsNotCreated(resource, NLS.bind(BatchValidationMessages.WRITER_IS_NOT_FOUND, new String[]{"myWriter"}), 6); //$NON-NLS-1$ AbstractResourceMarkerTest.assertMarkerIsNotCreated(resource, NLS.bind(BatchValidationMessages.WRITER_IS_EXPECTED, new String[]{}), 6); AbstractResourceMarkerTest.assertMarkerIsCreated(resource, NLS.bind(BatchValidationMessages.WRITER_IS_NOT_FOUND, new String[]{"myWriterX"}), 14); //$NON-NLS-1$ AbstractResourceMarkerTest.assertMarkerIsCreated(resource, NLS.bind(BatchValidationMessages.WRITER_IS_EXPECTED, new String[]{}), 22); } public void testDecision() throws Exception { IResource resource = project.findMember("/src/META-INF/batch-jobs/job-val-decision.xml"); //$NON-NLS-1$ assertTrue(resource.exists()); TestUtil.validate(resource); AbstractResourceMarkerTest.assertMarkerIsCreated(resource, BatchValidationMessages.DECIDER_IS_EXPECTED, 6); } public void testCheckpointAlgorithm() throws Exception { IResource resource = project.findMember("/src/META-INF/batch-jobs/job7.xml"); //$NON-NLS-1$ assertTrue(resource.exists()); TestUtil.validate(resource); AbstractResourceMarkerTest.assertMarkerIsNotCreated(resource, NLS.bind(BatchValidationMessages.CHECKPOINT_ALGORITHM_IS_NOT_FOUND, new String[]{"myCheckpointAlgorithm"}), 7); //$NON-NLS-1$ AbstractResourceMarkerTest.assertMarkerIsNotCreated(resource, NLS.bind(BatchValidationMessages.CHECKPOINT_ALGORITHM_IS_EXPECTED, new String[]{}), 7); AbstractResourceMarkerTest.assertMarkerIsCreated(resource, NLS.bind(BatchValidationMessages.CHECKPOINT_ALGORITHM_IS_NOT_FOUND, new String[]{"myCheckpointAlgorithmX"}), 15); //$NON-NLS-1$ AbstractResourceMarkerTest.assertMarkerIsCreated(resource, NLS.bind(BatchValidationMessages.CHECKPOINT_ALGORITHM_IS_EXPECTED, new String[]{}), 23); } public void testJobListeners() throws Exception { IResource resource = project.findMember("/src/META-INF/batch-jobs/job8.xml"); //$NON-NLS-1$ assertTrue(resource.exists()); TestUtil.validate(resource); AbstractResourceMarkerTest.assertMarkerIsNotCreated(resource, NLS.bind(BatchValidationMessages.JOB_LISTENER_IS_NOT_FOUND, new String[]{"myJobListener"}), 7); //$NON-NLS-1$ AbstractResourceMarkerTest.assertMarkerIsNotCreated(resource, NLS.bind(BatchValidationMessages.JOB_LISTENER_IS_EXPECTED, new String[]{}), 7); AbstractResourceMarkerTest.assertMarkerIsNotCreated(resource, NLS.bind(BatchValidationMessages.JOB_LISTENER_IS_NOT_FOUND, new String[]{"myJobListenerX"}), 8); //$NON-NLS-1$ AbstractResourceMarkerTest.assertMarkerIsNotCreated(resource, NLS.bind(BatchValidationMessages.JOB_LISTENER_IS_EXPECTED, new String[]{}), 9); } public void testStepListeners() throws Exception { IResource resource = project.findMember("/src/META-INF/batch-jobs/job9.xml"); //$NON-NLS-1$ assertTrue(resource.exists()); TestUtil.validate(resource); AbstractResourceMarkerTest.assertMarkerIsNotCreated(resource, NLS.bind(BatchValidationMessages.STEP_LISTENER_IS_NOT_FOUND, new String[]{"myStepListener"}), 6); //$NON-NLS-1$ AbstractResourceMarkerTest.assertMarkerIsNotCreated(resource, NLS.bind(BatchValidationMessages.STEP_LISTENER_IS_EXPECTED, new String[]{}), 6); AbstractResourceMarkerTest.assertMarkerIsCreated(resource, NLS.bind(BatchValidationMessages.STEP_LISTENER_IS_NOT_FOUND, new String[]{"myStepListenerX"}), 5); //$NON-NLS-1$ AbstractResourceMarkerTest.assertMarkerIsCreated(resource, NLS.bind(BatchValidationMessages.STEP_LISTENER_IS_EXPECTED, new String[]{}), 4, 7); } public void testMapper() throws Exception { IResource resource = project.findMember("/src/META-INF/batch-jobs/job10.xml"); //$NON-NLS-1$ assertTrue(resource.exists()); TestUtil.validate(resource); AbstractResourceMarkerTest.assertMarkerIsNotCreated(resource, NLS.bind(BatchValidationMessages.MAPPER_IS_NOT_FOUND, new String[]{"myMapper"}), 5); //$NON-NLS-1$ AbstractResourceMarkerTest.assertMarkerIsNotCreated(resource, NLS.bind(BatchValidationMessages.MAPPER_IS_EXPECTED, new String[]{}), 5); AbstractResourceMarkerTest.assertMarkerIsCreated(resource, NLS.bind(BatchValidationMessages.MAPPER_IS_NOT_FOUND, new String[]{"myMapperX"}), 14); //$NON-NLS-1$ AbstractResourceMarkerTest.assertMarkerIsCreated(resource, NLS.bind(BatchValidationMessages.MAPPER_IS_EXPECTED, new String[]{}), 23); } public void testCollector() throws Exception { IResource resource = project.findMember("/src/META-INF/batch-jobs/job10.xml"); //$NON-NLS-1$ assertTrue(resource.exists()); TestUtil.validate(resource); AbstractResourceMarkerTest.assertMarkerIsNotCreated(resource, NLS.bind(BatchValidationMessages.COLLECTOR_IS_NOT_FOUND, new String[]{"myMapper"}), 6); //$NON-NLS-1$ AbstractResourceMarkerTest.assertMarkerIsNotCreated(resource, NLS.bind(BatchValidationMessages.COLLECTOR_IS_EXPECTED, new String[]{}), 6); AbstractResourceMarkerTest.assertMarkerIsCreated(resource, NLS.bind(BatchValidationMessages.COLLECTOR_IS_NOT_FOUND, new String[]{"myCollectorX"}), 15); //$NON-NLS-1$ AbstractResourceMarkerTest.assertMarkerIsCreated(resource, NLS.bind(BatchValidationMessages.COLLECTOR_IS_EXPECTED, new String[]{}), 24); } public void testAnalyzer() throws Exception { IResource resource = project.findMember("/src/META-INF/batch-jobs/job10.xml"); //$NON-NLS-1$ assertTrue(resource.exists()); TestUtil.validate(resource); AbstractResourceMarkerTest.assertMarkerIsNotCreated(resource, NLS.bind(BatchValidationMessages.ANALYZER_IS_NOT_FOUND, new String[]{"myAnalyzer"}), 7); //$NON-NLS-1$ AbstractResourceMarkerTest.assertMarkerIsNotCreated(resource, NLS.bind(BatchValidationMessages.ANALYZER_IS_EXPECTED, new String[]{}), 7); AbstractResourceMarkerTest.assertMarkerIsCreated(resource, NLS.bind(BatchValidationMessages.ANALYZER_IS_NOT_FOUND, new String[]{"myAnalyzerX"}), 16); //$NON-NLS-1$ AbstractResourceMarkerTest.assertMarkerIsCreated(resource, NLS.bind(BatchValidationMessages.ANALYZER_IS_EXPECTED, new String[]{}), 25); } public void testReducer() throws Exception { IResource resource = project.findMember("/src/META-INF/batch-jobs/job10.xml"); //$NON-NLS-1$ assertTrue(resource.exists()); TestUtil.validate(resource); AbstractResourceMarkerTest.assertMarkerIsNotCreated(resource, NLS.bind(BatchValidationMessages.REDUCER_IS_NOT_FOUND, new String[]{"myReducer"}), 8); //$NON-NLS-1$ AbstractResourceMarkerTest.assertMarkerIsNotCreated(resource, NLS.bind(BatchValidationMessages.REDUCER_IS_EXPECTED, new String[]{}), 8); AbstractResourceMarkerTest.assertMarkerIsCreated(resource, NLS.bind(BatchValidationMessages.REDUCER_IS_NOT_FOUND, new String[]{"myReducerX"}), 17); //$NON-NLS-1$ AbstractResourceMarkerTest.assertMarkerIsCreated(resource, NLS.bind(BatchValidationMessages.REDUCER_IS_EXPECTED, new String[]{}), 26); } public void testELValidator() throws Exception { IResource resource = project.findMember("/src/META-INF/batch-jobs/job13.xml"); //$NON-NLS-1$ IPreferenceStore store = WebKbPlugin.getDefault().getPreferenceStore(); assertTrue(resource.exists()); store.setValue(ELSeverityPreferences.UNKNOWN_EL_VARIABLE_NAME, SeverityPreferences.WARNING); TestUtil.validate(resource); store.setValue(ELSeverityPreferences.UNKNOWN_EL_VARIABLE_NAME, SeverityPreferences.IGNORE); AbstractResourceMarkerTest.assertMarkerIsNotCreated(resource, NLS.bind(ELValidationMessages.UNKNOWN_EL_VARIABLE_NAME, "jobProperties"), 12); //$NON-NLS-1$ AbstractResourceMarkerTest.assertMarkerIsCreated(resource, NLS.bind(ELValidationMessages.UNKNOWN_EL_VARIABLE_NAME, "jobPropertie"), 11); //$NON-NLS-1$ } public void testJobRestartable() throws Exception { IResource resource = project.findMember("/src/META-INF/batch-jobs/job-restartable-invalid.xml"); //$NON-NLS-1$ assertTrue(resource.exists()); TestUtil.validate(resource); AbstractResourceMarkerTest.assertMarkerIsCreated(resource, NLS.bind(BatchValidationMessages.JOB_RESTARTABLE_IS_NOT_BOOLEAN, new String[]{}), 3); //$NON-NLS-1$ } }