All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.camunda.spin.impl.test.Script Maven / Gradle / Ivy

There is a newer version: 1.0.0-alpha5
Show newest version
/* Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.camunda.spin.impl.test;

import org.junit.rules.TestRule;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * Method annotation to signal a script test for the {@link ScriptRule} {@link TestRule}.
 * The name of the script is optional and if omitted the package name is used as directory
 * and the ClassName.MethodName.ScriptExtension as filename. Additionally a list of
 * variables can be defined and the execute flag decides whether the script is execute
 * before the test function is called.
 *
 * The script variables can be accessed trough the {@link ScriptRule#variables}
 * field.
 *
 * Example usage:
 *
 * 
 *   {@literal @}Test
 *   {@literal @}Script
 *   public void scriptNameWithoutExtension() {
 *     \\...
 *   }
 *
 *   {@literal @}Test
 *   {@literal @}Script("scriptNameWithoutExtension")
 *   public void notTheScriptName() {
 *     \\...
 *   }
 *
 *   {@literal @}Test
 *   {@literal @}Script(
 *     name = "scriptNameWithoutExtension",
 *     variables = {
 *       {@literal @}ScriptVariable(name="a", value="b"),
 *       {@literal @}ScriptVariable(name="f", file="test.xml")
 *     }
 *   )
 *   public void notTheScriptName() {
 *     \\...
 *   }
 *
 *   {@literal @}Test
 *   {@literal @}Script(
 *     name = "scriptNameWithoutExtension",
 *     execute = false
 *   )
 *   public void notTheScriptName() {
 *       Map variables = Collections.singletonMap("a", "b");
 *       script.execute(variables)
 *       assertEquals("b", script.variables.get("a"))
 *   }
 * 
* * * @author Sebastian Menski */ @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.METHOD) public @interface Script { String value() default ""; String name() default ""; ScriptVariable[] variables() default {}; boolean execute() default true; }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy