diff --git a/allure-java-commons/src/main/java/io/qameta/allure/aspects/AttachmentsAspects.java b/allure-java-commons/src/main/java/io/qameta/allure/aspects/AttachmentsAspects.java index c104dc8ea..de5f1725d 100644 --- a/allure-java-commons/src/main/java/io/qameta/allure/aspects/AttachmentsAspects.java +++ b/allure-java-commons/src/main/java/io/qameta/allure/aspects/AttachmentsAspects.java @@ -79,7 +79,7 @@ public void attachment(final JoinPoint joinPoint, final Object result) { final String name = attachment.value().isEmpty() ? methodSignature.getName() - : processNameTemplate(attachment.value(), getParametersMap(methodSignature, joinPoint.getArgs())); + : processNameTemplate(attachment.value(), getParametersMap(joinPoint)); getLifecycle().addAttachment(name, attachment.type(), attachment.fileExtension(), bytes); } diff --git a/allure-java-commons/src/main/java/io/qameta/allure/aspects/StepsAspects.java b/allure-java-commons/src/main/java/io/qameta/allure/aspects/StepsAspects.java index a383998ae..4f1d7da12 100644 --- a/allure-java-commons/src/main/java/io/qameta/allure/aspects/StepsAspects.java +++ b/allure-java-commons/src/main/java/io/qameta/allure/aspects/StepsAspects.java @@ -68,7 +68,7 @@ public void stepStart(final JoinPoint joinPoint) { final Step step = methodSignature.getMethod().getAnnotation(Step.class); final String uuid = UUID.randomUUID().toString(); - final String name = getName(step.value(), methodSignature, joinPoint.getArgs()); + final String name = getName(step.value(), joinPoint); final List parameters = getParameters(methodSignature, joinPoint.getArgs()); final StepResult result = new StepResult() diff --git a/allure-java-commons/src/main/java/io/qameta/allure/util/AspectUtils.java b/allure-java-commons/src/main/java/io/qameta/allure/util/AspectUtils.java index 8e0907116..98c83e7b6 100644 --- a/allure-java-commons/src/main/java/io/qameta/allure/util/AspectUtils.java +++ b/allure-java-commons/src/main/java/io/qameta/allure/util/AspectUtils.java @@ -16,6 +16,7 @@ package io.qameta.allure.util; import io.qameta.allure.model.Parameter; +import org.aspectj.lang.JoinPoint; import org.aspectj.lang.reflect.MethodSignature; import java.util.HashMap; @@ -37,6 +38,10 @@ private AspectUtils() { throw new IllegalStateException("Do not instance"); } + /** + * @deprecated use {@link AspectUtils#getName(String,JoinPoint)} instead. + */ + @Deprecated public static String getName(final String nameTemplate, final MethodSignature methodSignature, final Object... args) { @@ -46,6 +51,17 @@ public static String getName(final String nameTemplate, .orElseGet(methodSignature::getName); } + public static String getName(final String nameTemplate, final JoinPoint joinPoint) { + return Optional.of(nameTemplate) + .filter(v -> !v.isEmpty()) + .map(value -> processNameTemplate(value, getParametersMap(joinPoint))) + .orElseGet(joinPoint.getSignature()::getName); + } + + /** + * @deprecated use {@link AspectUtils#getParametersMap(JoinPoint)} instead. + */ + @Deprecated public static Map getParametersMap(final MethodSignature signature, final Object... args) { final String[] parameterNames = signature.getParameterNames(); final Map params = new HashMap<>(); @@ -57,6 +73,13 @@ public static Map getParametersMap(final MethodSignature signatu return params; } + public static Map getParametersMap(final JoinPoint joinPoint) { + final MethodSignature methodSignature = (MethodSignature) joinPoint.getSignature(); + final Map params = getParametersMap(methodSignature, joinPoint.getArgs()); + Optional.ofNullable(joinPoint.getThis()).ifPresent(objThis -> params.put("this", objThis)); + return params; + } + public static List getParameters(final MethodSignature signature, final Object... args) { return IntStream .range(0, args.length)