/*******************************************************************************
* Copyright (c) 2016 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
*
* Contributor:
* Red Hat, Inc. - initial API and implementation
******************************************************************************/
package org.jboss.tools.batch.ui.bot.test.editor.features;
import static org.junit.Assert.assertTrue;
import org.jboss.reddeer.common.wait.WaitWhile;
import org.jboss.reddeer.core.condition.JobIsRunning;
import org.jboss.tools.batch.reddeer.wizard.BatchArtifacts;
import org.junit.Test;
/**
* Test class for checking referenced artifact classes and properties in search.
*
* @author odockal
*
*/
public class CheckExistingReferenceTest extends AbstractFeatureBaseTest {
private static final String EXCEPTION_STEP_ID = "My-exception-step";
private static final String BATCHLET_STEP_ID = "My-batch-step";
private static final String PROPERTY_STEP_ID = "My-prop-step";
private static final String READER_CLASS = "MyReader";
private static final String WRITER_CLASS = "MyWriter";
private static final String READER_ID = getBatchArtifactID(READER_CLASS);
private static final String WRITER_ID = getBatchArtifactID(WRITER_CLASS);
@Test
public void testArtifactReference() {
createBatchArtifact(BatchArtifacts.BATCHLET, BATCHLET_ID);
closeEditor(BATCHLET_JAVA_CLASS);
// adding new step and batchlet via design view
addStep(BATCHLET_STEP_ID);
addBatchlet(BATCHLET_STEP_ID, getBatchArtifactID(BATCHLET_ID));
editor.save();
new WaitWhile(new JobIsRunning());
assertNoProblems();
assertTrue(searchForClassReference(JOB_XML_FILE,
new String[]{JAVA_FOLDER, getPackage(), BATCHLET_JAVA_CLASS}));
}
@Test
public void testArtifactPropertyReference() {
assertTrue(createBatchArtifactWithProperty(BatchArtifacts.BATCHLET,
BATCHLET_PROPERTY_ID, PROPERTY_NAME));
// adding new step, batchlet with property via design view
addStep(PROPERTY_STEP_ID);
addBatchlet(PROPERTY_STEP_ID, getBatchArtifactID(BATCHLET_PROPERTY_ID));
getDesignPage().addProperty(PROPERTY_STEP_ID, "Batchlet", PROPERTY_NAME, "test value");
editor.save();
new WaitWhile(new JobIsRunning());
assertNoProblems();
assertTrue("Property with name " + PROPERTY_NAME + " was not found in search results.",
searchForPropertyInFile(JOB_XML_FILE, PROPERTY_NAME,
new String[]{JAVA_FOLDER, getPackage(), BATCHLET_PROPERTY_JAVA_CLASS}));
}
@Test
public void testExceptionClassReference() {
// create necessary artifacts
assertTrue(createExceptionClass(EXCEPTION_ID));
new WaitWhile(new JobIsRunning());
addDefaultSerialVersionID(EXCEPTION_JAVA_CLASS, 3);
closeEditor(EXCEPTION_JAVA_CLASS);
createBatchArtifact(BatchArtifacts.ITEM_READER, READER_CLASS);
closeEditor(getFullFileName(READER_CLASS, "java"));
createBatchArtifact(BatchArtifacts.ITEM_WRITER, WRITER_CLASS);
closeEditor(getFullFileName(WRITER_CLASS, "java"));
new WaitWhile(new JobIsRunning());
assertNoProblems();
// add new step, chunk and exception class artifact via design view
addStep(EXCEPTION_STEP_ID);
addChunk(EXCEPTION_STEP_ID);
setReaderRef(EXCEPTION_STEP_ID, READER_ID);
setWriterRef(EXCEPTION_STEP_ID, WRITER_ID);
getDesignPage().addExceptionClass(EXCEPTION_STEP_ID, "Chunk", "Skippable Exception Classes",
"Skippable-exception-classes", getPackage() + "." + EXCEPTION_ID);
editor.save();
new WaitWhile(new JobIsRunning());
assertNoProblems();
assertTrue(searchForClassReference(JOB_XML_FILE,
new String[]{JAVA_FOLDER, getPackage(), EXCEPTION_JAVA_CLASS}));
}
}