package org.test4j.spec.scenario.step.txt;
import java.lang.reflect.Method;
import org.test4j.spec.annotations.Named;
import org.test4j.spec.scenario.step.txt.ParameterParser;
import org.test4j.testng.Test4J;
import org.testng.annotations.Test;
public class JSpecHelperTest_MethodPatternParser extends Test4J {
@Test
public void testGetPatternAsStringFromMethod() throws Exception {
String methodname = "hasNameAnno";
Method method = NameMethodClaz.class.getMethod(methodname, String.class);
String pattern = ParameterParser.getPatternAsStringFromMethod(method);
want.string(pattern).isEqualTo(methodname + " $value");
}
@Test
public void testGetPatternAsStringFromMethod_NoAnnotations() throws Exception {
String methodname = "noNamedAnno";
Method method = NameMethodClaz.class.getMethod(methodname, String.class, String.class);
String pattern = ParameterParser.getPatternAsStringFromMethod(method);
want.string(pattern).isEqualTo(methodname + " $1 $2");
}
@Test
public void testGetPatternAsStringFromMethod_mixNamedAnno() throws Exception {
String methodname = "mixNamedAnno";
Method method = NameMethodClaz.class.getMethod(methodname, String.class, String.class);
String pattern = ParameterParser.getPatternAsStringFromMethod(method);
want.string(pattern).isEqualTo(methodname + " $1 $value2");
}
}
class NameMethodClaz {
public void hasNameAnno(@Named("value") String value) {
}
public void noNamedAnno(String value1, String value2) {
}
public void mixNamedAnno(String value1, @Named("value2") String value2) {
}
}