Skip to content

Commit 7df561c

Browse files
mgohingsmet
authored andcommitted
HV-1943 french validation message white space fix
1 parent a1f75c4 commit 7df561c

File tree

2 files changed

+59
-2
lines changed

2 files changed

+59
-2
lines changed

engine/src/main/resources/org/hibernate/validator/ValidationMessages_fr.properties

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
jakarta.validation.constraints.AssertFalse.message = doit avoir la valeur faux
22
jakarta.validation.constraints.AssertTrue.message = doit avoir la valeur vrai
3-
jakarta.validation.constraints.DecimalMax.message = doit \u00eatre inf\u00e9rieur ${inclusive == true ? 'ou \u00e9gal' : ''} \u00e0 {value}
4-
jakarta.validation.constraints.DecimalMin.message = doit \u00eatre sup\u00e9rieur ${inclusive == true ? 'ou \u00e9gal' : ''} \u00e0 {value}
3+
jakarta.validation.constraints.DecimalMax.message = doit \u00eatre inf\u00e9rieur${inclusive == true ? ' ou \u00e9gal' : ''} \u00e0 {value}
4+
jakarta.validation.constraints.DecimalMin.message = doit \u00eatre sup\u00e9rieur${inclusive == true ? ' ou \u00e9gal' : ''} \u00e0 {value}
55
jakarta.validation.constraints.Digits.message = valeur num\u00e9rique hors limites (<{integer} chiffres>.<{fraction} chiffres> attendu)
66
jakarta.validation.constraints.Email.message = doit \u00eatre une adresse \u00e9lectronique syntaxiquement correcte
77
jakarta.validation.constraints.Future.message = doit \u00eatre une date dans le futur

engine/src/test/java/org/hibernate/validator/test/internal/engine/messageinterpolation/MessageInterpolationWithDefaultBundleTest.java

+57
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
import static org.hibernate.validator.testutil.ConstraintViolationAssert.assertThat;
1010
import static org.hibernate.validator.testutil.ConstraintViolationAssert.violationOf;
1111

12+
import java.time.Duration;
1213
import java.util.Locale;
1314
import java.util.Set;
1415

@@ -20,6 +21,8 @@
2021
import jakarta.validation.constraints.Email;
2122

2223
import org.hibernate.validator.constraints.Range;
24+
import org.hibernate.validator.constraints.time.DurationMax;
25+
import org.hibernate.validator.constraints.time.DurationMin;
2326
import org.hibernate.validator.messageinterpolation.ResourceBundleMessageInterpolator;
2427
import org.hibernate.validator.testutil.TestForIssue;
2528
import org.hibernate.validator.testutils.ValidatorUtil;
@@ -132,6 +135,40 @@ public void testConditionalDecimalMinMessageDependingOnInclusiveFlag() {
132135
);
133136
}
134137

138+
@Test
139+
@TestForIssue(jiraKey = "HV-1943")
140+
public void testConditionalDecimalMinMaxMessagesForFrenchLocale() {
141+
Configuration<?> config = ValidatorUtil.getConfiguration( Locale.FRENCH );
142+
config.messageInterpolator( new ResourceBundleMessageInterpolator() );
143+
Validator validator = config.buildValidatorFactory().getValidator();
144+
145+
146+
Set<ConstraintViolation<DoubleHolder>> constraintViolations = validator.validate( new DoubleHolder() );
147+
assertThat( constraintViolations ).containsOnlyViolations(
148+
violationOf( DecimalMin.class ).withMessage( "doit être supérieur ou égal à 1.0" ),
149+
violationOf( DecimalMin.class ).withMessage( "doit être supérieur à 1.0" ),
150+
violationOf( DecimalMax.class ).withMessage( "doit être inférieur ou égal à 1.0" ),
151+
violationOf( DecimalMax.class ).withMessage( "doit être inférieur à 1.0" )
152+
);
153+
}
154+
155+
@Test
156+
@TestForIssue(jiraKey = "HV-1943")
157+
public void testConditionalDurationMinMaxMessagesForFrenchLocale() {
158+
Configuration<?> config = ValidatorUtil.getConfiguration( Locale.FRENCH );
159+
config.messageInterpolator( new ResourceBundleMessageInterpolator() );
160+
Validator validator = config.buildValidatorFactory().getValidator();
161+
162+
163+
Set<ConstraintViolation<DurationHolder>> constraintViolations = validator.validate( new DurationHolder() );
164+
assertThat( constraintViolations ).containsOnlyViolations(
165+
violationOf( DurationMin.class ).withMessage( "doit être plus long ou égal à 2 jours" ),
166+
violationOf( DurationMin.class ).withMessage( "doit être plus long que 2 jours" ),
167+
violationOf( DurationMax.class ).withMessage( "doit être plus court ou égal à 2 jours" ),
168+
violationOf( DurationMax.class ).withMessage( "doit être plus court que 2 jours" )
169+
);
170+
}
171+
135172
private static class DoubleHolder {
136173
@DecimalMax(value = "1.0")
137174
private final double inclusiveMaxDouble;
@@ -152,6 +189,26 @@ private DoubleHolder() {
152189
}
153190
}
154191

192+
private static class DurationHolder {
193+
@DurationMax(days = 2L)
194+
private final Duration inclusiveMaxDuration;
195+
@DurationMax(days = 2L, inclusive = false)
196+
private final Duration exclusiveMaxDuration;
197+
198+
@DurationMin(days = 2L)
199+
private final Duration inclusiveMinDuration;
200+
@DurationMin(days = 2L, inclusive = false)
201+
private final Duration exclusiveMinDuration;
202+
203+
private DurationHolder() {
204+
this.inclusiveMaxDuration = Duration.ofDays( 3 );
205+
this.exclusiveMaxDuration = Duration.ofDays( 2 );
206+
207+
this.inclusiveMinDuration = Duration.ofDays( 1 );
208+
this.exclusiveMinDuration = Duration.ofDays( 2 );
209+
}
210+
}
211+
155212
/**
156213
* A message interpolator that enforces one given locale to be used for message
157214
* interpolation.

0 commit comments

Comments
 (0)