From 9c5e608f501ca127b34ca7535f57aec13eec8e36 Mon Sep 17 00:00:00 2001 From: Andy Wilkinson Date: Wed, 16 Apr 2025 14:44:45 +0100 Subject: [PATCH] Polish "Fix parameter replacement when message matches its code" See gh-45212 --- .../MessageSourceMessageInterpolatorTests.java | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/validation/MessageSourceMessageInterpolatorTests.java b/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/validation/MessageSourceMessageInterpolatorTests.java index 2ce0345604..63e427511c 100644 --- a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/validation/MessageSourceMessageInterpolatorTests.java +++ b/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/validation/MessageSourceMessageInterpolatorTests.java @@ -62,8 +62,21 @@ class MessageSourceMessageInterpolatorTests { void interpolateWhenParametersAreUnknownUsingCodeAsDefaultShouldLeaveThemUnchanged() { this.messageSource.setUseCodeAsDefaultMessage(true); this.messageSource.addMessage("top", Locale.getDefault(), "{child}+{child}"); + assertThat(this.interpolator.interpolate("{foo}{top}{bar}", this.context)) + .isEqualTo("{foo}{child}+{child}{bar}"); + } + + @Test + void interpolateShouldReplaceParameterThatReferencesAMessageThatMatchesItsCode() { this.messageSource.addMessage("foo", Locale.getDefault(), "foo"); - assertThat(this.interpolator.interpolate("{foo}{top}{bar}", this.context)).isEqualTo("foo{child}+{child}{bar}"); + assertThat(this.interpolator.interpolate("{foo}", this.context)).isEqualTo("foo"); + } + + @Test + void interpolateUsingCodeAsDefaultShouldReplaceParameterThatReferencesAMessageThatMatchesItsCode() { + this.messageSource.setUseCodeAsDefaultMessage(true); + this.messageSource.addMessage("foo", Locale.getDefault(), "foo"); + assertThat(this.interpolator.interpolate("{foo}", this.context)).isEqualTo("foo"); } @Test