Skip to content

Commit ab160b0

Browse files
committed
Update null/"null" conversion tests to reflect status quo in 5.10.x
This commit updates the tests introduced in the last commit in order to align with the expected behavior in 5.10.x. See #3177 See #3472
1 parent 849ce5e commit ab160b0

File tree

2 files changed

+16
-12
lines changed

2 files changed

+16
-12
lines changed

junit-jupiter-params/src/test/java/org/junit/jupiter/params/ParameterizedTestIntegrationTests.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -116,14 +116,14 @@ class ParameterizedTestIntegrationTests {
116116
apple, True
117117
banana, true
118118
lemon, false
119-
kumquat, null
119+
kumquat, FALSE
120120
""")
121121
void sweetFruit(String fruit, Boolean sweet) {
122122
switch (fruit) {
123123
case "apple" -> assertThat(sweet).isTrue();
124124
case "banana" -> assertThat(sweet).isTrue();
125125
case "lemon" -> assertThat(sweet).isFalse();
126-
case "kumquat" -> assertThat(sweet).isFalse(); // "null" --> false
126+
case "kumquat" -> assertThat(sweet).isFalse();
127127
default -> fail("Unexpected fruit : " + fruit);
128128
}
129129
}

junit-jupiter-params/src/test/java/org/junit/jupiter/params/converter/DefaultArgumentConverterTests.java

+14-10
Original file line numberDiff line numberDiff line change
@@ -130,14 +130,6 @@ void convertsStringsToPrimitiveWrapperTypes() {
130130
assertConverts("42.2_3", Double.class, 42.23);
131131
}
132132

133-
@Test
134-
void convertsTheWordNullToBooleanFalse() {
135-
assertConverts("null", boolean.class, false);
136-
assertConverts("NULL", boolean.class, false);
137-
assertConverts("null", Boolean.class, false);
138-
assertConverts("NULL", Boolean.class, false);
139-
}
140-
141133
@ParameterizedTest(name = "[{index}] {0}")
142134
@ValueSource(classes = { char.class, boolean.class, short.class, byte.class, int.class, long.class, float.class,
143135
double.class })
@@ -148,8 +140,8 @@ void throwsExceptionForNullToPrimitiveTypeConversion(Class<?> type) {
148140
}
149141

150142
@ParameterizedTest(name = "[{index}] {0}")
151-
// NOTE: everything except Boolean.class and Character.class.
152-
@ValueSource(classes = { Short.class, Byte.class, Integer.class, Long.class, Float.class, Double.class })
143+
@ValueSource(classes = { Boolean.class, Character.class, Short.class, Byte.class, Integer.class, Long.class,
144+
Float.class, Double.class })
153145
void throwsExceptionWhenConvertingTheWordNullToPrimitiveWrapperType(Class<?> type) {
154146
assertThatExceptionOfType(ArgumentConversionException.class) //
155147
.isThrownBy(() -> convert("null", type)) //
@@ -172,6 +164,18 @@ void throwsExceptionOnInvalidStringForPrimitiveTypes() {
172164
.withMessage("Failed to convert String \"tru\" to type boolean") //
173165
.havingCause() //
174166
.withMessage("String must be 'true' or 'false' (ignoring case): tru");
167+
168+
assertThatExceptionOfType(ArgumentConversionException.class) //
169+
.isThrownBy(() -> convert("null", boolean.class)) //
170+
.withMessage("Failed to convert String \"null\" to type boolean") //
171+
.havingCause() //
172+
.withMessage("String must be 'true' or 'false' (ignoring case): null");
173+
174+
assertThatExceptionOfType(ArgumentConversionException.class) //
175+
.isThrownBy(() -> convert("NULL", boolean.class)) //
176+
.withMessage("Failed to convert String \"NULL\" to type boolean") //
177+
.havingCause() //
178+
.withMessage("String must be 'true' or 'false' (ignoring case): NULL");
175179
}
176180

177181
@Test

0 commit comments

Comments
 (0)