diff --git a/junit-jupiter-params/src/main/java/org/junit/jupiter/params/ParameterizedTestExtension.java b/junit-jupiter-params/src/main/java/org/junit/jupiter/params/ParameterizedTestExtension.java index c329300d4c61..c726890946d4 100644 --- a/junit-jupiter-params/src/main/java/org/junit/jupiter/params/ParameterizedTestExtension.java +++ b/junit-jupiter-params/src/main/java/org/junit/jupiter/params/ParameterizedTestExtension.java @@ -123,11 +123,13 @@ private ExtensionContext.Store getStore(ExtensionContext context) { private TestTemplateInvocationContext createInvocationContext(ParameterizedTestNameFormatter formatter, ParameterizedTestMethodContext methodContext, Object[] arguments, int invocationIndex) { + return new ParameterizedTestInvocationContext(formatter, methodContext, arguments, invocationIndex); } private ParameterizedTestNameFormatter createNameFormatter(ExtensionContext extensionContext, Method templateMethod, ParameterizedTestMethodContext methodContext, String displayName, int argumentMaxLength) { + ParameterizedTest parameterizedTest = findAnnotation(templateMethod, ParameterizedTest.class).get(); String pattern = parameterizedTest.name().equals(DEFAULT_DISPLAY_NAME) ? extensionContext.getConfigurationParameter(DISPLAY_NAME_PATTERN_KEY).orElse( diff --git a/junit-jupiter-params/src/main/java/org/junit/jupiter/params/ParameterizedTestInvocationContext.java b/junit-jupiter-params/src/main/java/org/junit/jupiter/params/ParameterizedTestInvocationContext.java index 2a1e1d9b1ab6..dbfe0792a9d1 100644 --- a/junit-jupiter-params/src/main/java/org/junit/jupiter/params/ParameterizedTestInvocationContext.java +++ b/junit-jupiter-params/src/main/java/org/junit/jupiter/params/ParameterizedTestInvocationContext.java @@ -29,6 +29,7 @@ class ParameterizedTestInvocationContext implements TestTemplateInvocationContex ParameterizedTestInvocationContext(ParameterizedTestNameFormatter formatter, ParameterizedTestMethodContext methodContext, Object[] arguments, int invocationIndex) { + this.formatter = formatter; this.methodContext = methodContext; this.arguments = arguments; diff --git a/junit-jupiter-params/src/main/java/org/junit/jupiter/params/ParameterizedTestNameFormatter.java b/junit-jupiter-params/src/main/java/org/junit/jupiter/params/ParameterizedTestNameFormatter.java index 4be968c5fdaa..610251a088a2 100644 --- a/junit-jupiter-params/src/main/java/org/junit/jupiter/params/ParameterizedTestNameFormatter.java +++ b/junit-jupiter-params/src/main/java/org/junit/jupiter/params/ParameterizedTestNameFormatter.java @@ -40,6 +40,7 @@ class ParameterizedTestNameFormatter { ParameterizedTestNameFormatter(String pattern, String displayName, ParameterizedTestMethodContext methodContext, int argumentMaxLength) { + this.pattern = pattern; this.displayName = displayName; this.methodContext = methodContext; @@ -73,7 +74,7 @@ private Object[] extractNamedArguments(Object[] arguments) { } private String prepareMessageFormatPattern(int invocationIndex, Object[] arguments) { - String result = pattern// + String result = this.pattern// .replace(DISPLAY_NAME_PLACEHOLDER, TEMPORARY_DISPLAY_NAME_PLACEHOLDER)// .replace(INDEX_PLACEHOLDER, String.valueOf(invocationIndex)); @@ -90,7 +91,7 @@ private String prepareMessageFormatPattern(int invocationIndex, Object[] argumen private String argumentsWithNamesPattern(Object[] arguments) { return IntStream.range(0, arguments.length) // - .mapToObj(index -> methodContext.getParameterName(index).map(name -> name + "=").orElse("") + "{" + .mapToObj(index -> this.methodContext.getParameterName(index).map(name -> name + "=").orElse("") + "{" + index + "}") // .collect(joining(", ")); } @@ -113,8 +114,8 @@ private Object[] makeReadable(MessageFormat format, Object[] arguments) { } private String truncateIfExceedsMaxLength(String argument) { - if (argument != null && argument.length() > argumentMaxLength) { - return argument.substring(0, argumentMaxLength - 1) + ELLIPSIS; + if (argument != null && argument.length() > this.argumentMaxLength) { + return argument.substring(0, this.argumentMaxLength - 1) + ELLIPSIS; } return argument; } diff --git a/junit-jupiter-params/src/main/java/org/junit/jupiter/params/ParameterizedTestParameterResolver.java b/junit-jupiter-params/src/main/java/org/junit/jupiter/params/ParameterizedTestParameterResolver.java index 8198af3ef309..634405d4a5ce 100644 --- a/junit-jupiter-params/src/main/java/org/junit/jupiter/params/ParameterizedTestParameterResolver.java +++ b/junit-jupiter-params/src/main/java/org/junit/jupiter/params/ParameterizedTestParameterResolver.java @@ -38,6 +38,7 @@ class ParameterizedTestParameterResolver implements ParameterResolver, AfterTest ParameterizedTestParameterResolver(ParameterizedTestMethodContext methodContext, Object[] arguments, int invocationIndex) { + this.methodContext = methodContext; this.arguments = arguments; this.invocationIndex = invocationIndex;