Skip to content

Commit 25f99d9

Browse files
author
Artem Eroshenko
authored
support allure1 step template (via #196)
1 parent c67f830 commit 25f99d9

3 files changed

Lines changed: 17 additions & 6 deletions

File tree

allure-java-commons/src/main/java/io/qameta/allure/aspects/StepsAspects.java

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,14 @@
55
import io.qameta.allure.Step;
66
import io.qameta.allure.model.Status;
77
import io.qameta.allure.model.StepResult;
8+
import org.apache.commons.lang3.StringUtils;
89
import org.aspectj.lang.ProceedingJoinPoint;
910
import org.aspectj.lang.annotation.Around;
1011
import org.aspectj.lang.annotation.Aspect;
1112
import org.aspectj.lang.reflect.MethodSignature;
1213

1314
import java.util.Objects;
15+
import java.util.Optional;
1416
import java.util.UUID;
1517

1618
import static io.qameta.allure.util.AspectUtils.getParameters;
@@ -34,10 +36,13 @@ public class StepsAspects {
3436
public Object step(final ProceedingJoinPoint joinPoint) throws Throwable {
3537
final MethodSignature methodSignature = (MethodSignature) joinPoint.getSignature();
3638
final Step step = methodSignature.getMethod().getAnnotation(Step.class);
37-
final String name = step.value().isEmpty()
38-
? methodSignature.getName()
39-
: processNameTemplate(step.value(), getParametersMap(methodSignature, joinPoint.getArgs()));
39+
4040
final String uuid = UUID.randomUUID().toString();
41+
final String name = Optional.of(step.value())
42+
.filter(StringUtils::isNoneEmpty)
43+
.map(value -> processNameTemplate(value, getParametersMap(methodSignature, joinPoint.getArgs())))
44+
.orElse(methodSignature.getName());
45+
4146
final StepResult result = new StepResult()
4247
.withName(name)
4348
.withParameters(getParameters(methodSignature, joinPoint.getArgs()));

allure-java-commons/src/main/java/io/qameta/allure/util/AspectUtils.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,10 @@ public static Parameter[] getParameters(final MethodSignature signature, final O
2929
public static Map<String, Object> getParametersMap(final MethodSignature signature, final Object... args) {
3030
final String[] parameterNames = signature.getParameterNames();
3131
final Map<String, Object> params = new HashMap<>();
32+
params.put("method", signature.getName());
3233
for (int i = 0; i < Math.max(parameterNames.length, args.length); i++) {
3334
params.put(parameterNames[i], args[i]);
35+
params.put(Integer.toString(i), args[i]);
3436
}
3537
return params;
3638
}

allure-java-commons/src/test/java/io/qameta/allure/util/NamingUtilsTest.java

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,13 +28,17 @@ public class NamingUtilsTest {
2828
@Parameterized.Parameter(2)
2929
public String expected;
3030

31-
@Parameterized.Parameters
31+
@Parameterized.Parameters(name = "{0}")
3232
public static Collection<Object[]> data() {
3333
return Arrays.asList(
34-
new Object[]{"Hello word", Collections.emptyMap(), "Hello word"},
35-
new Object[]{"{missing}", Collections.emptyMap(), "{missing}"},
3634
new Object[]{"", Collections.singletonMap("a", "b"), ""},
3735
new Object[]{"", Collections.singletonMap("a", "b"), ""},
36+
new Object[]{"Hello word", Collections.emptyMap(), "Hello word"},
37+
38+
new Object[]{"Hello {0}", Collections.singletonMap("0", "world"), "Hello world"},
39+
new Object[]{"Hello {method}", Collections.singletonMap("method", "world"), "Hello world"},
40+
41+
new Object[]{"{missing}", Collections.emptyMap(), "{missing}"},
3842
new Object[]{"Hello {user}!", Collections.singletonMap("user", "Ivan"), "Hello Ivan!"},
3943
new Object[]{"Hello {user}", Collections.singletonMap("user", null), "Hello null"},
4044
new Object[]{"Hello {users}", Collections.singletonMap("users", Arrays.asList("Ivan", "Petr")), "Hello [Ivan, Petr]"},

0 commit comments

Comments
 (0)