From ab6637c67024facf521e8f82c4bcb076308925a6 Mon Sep 17 00:00:00 2001 From: Sam Brannen <104798+sbrannen@users.noreply.github.com> Date: Thu, 16 Apr 2026 15:11:39 +0200 Subject: [PATCH] Completely extract ServletRequestParameterPropertyValuesTests This aligns with changes to ServletRequestParameterPropertyValuesTests on 6.2.x. --- ...etRequestParameterPropertyValuesTests.java | 48 ++++++++++++------- .../support/WebRequestDataBinderTests.java | 22 --------- 2 files changed, 32 insertions(+), 38 deletions(-) diff --git a/spring-web/src/test/java/org/springframework/web/bind/support/ServletRequestParameterPropertyValuesTests.java b/spring-web/src/test/java/org/springframework/web/bind/support/ServletRequestParameterPropertyValuesTests.java index 4822469760b..78ba1507479 100644 --- a/spring-web/src/test/java/org/springframework/web/bind/support/ServletRequestParameterPropertyValuesTests.java +++ b/spring-web/src/test/java/org/springframework/web/bind/support/ServletRequestParameterPropertyValuesTests.java @@ -33,30 +33,47 @@ import static org.assertj.core.api.Assertions.assertThat; */ class ServletRequestParameterPropertyValuesTests { + private final MockHttpServletRequest request = new MockHttpServletRequest(); + + + @Test + void noParameters() { + var pvs = new ServletRequestParameterPropertyValues(request); + assertThat(pvs.getPropertyValues()).as("Found no parameters").isEmpty(); + } + + @Test + void multipleValuesForParameter() { + String[] original = new String[] {"Tony", "Rod"}; + request.addParameter("forname", original); + + var pvs = new ServletRequestParameterPropertyValues(request); + assertThat(pvs.getPropertyValues().length).as("Found 1 parameter").isEqualTo(1); + assertThat(pvs.getPropertyValue("forname").getValue()).as("Found array value").isInstanceOf(String[].class); + String[] values = (String[]) pvs.getPropertyValue("forname").getValue(); + assertThat(original).containsExactly(values); + } + @Test void noPrefix() { - MockHttpServletRequest request = new MockHttpServletRequest(); request.addParameter("forname", "Tony"); request.addParameter("surname", "Blair"); request.addParameter("age", "" + 50); - ServletRequestParameterPropertyValues pvs = new ServletRequestParameterPropertyValues(request); - testTony(pvs); + testTony(new ServletRequestParameterPropertyValues(request)); } @Test void prefix() { - MockHttpServletRequest request = new MockHttpServletRequest(); request.addParameter("test_forname", "Tony"); request.addParameter("test_surname", "Blair"); request.addParameter("test_age", "" + 50); - ServletRequestParameterPropertyValues pvs = new ServletRequestParameterPropertyValues(request); + var pvs = new ServletRequestParameterPropertyValues(request); assertThat(pvs.contains("forname")).as("Didn't find normal when given prefix").isFalse(); assertThat(pvs.contains("test_forname")).as("Did treat prefix as normal when not given prefix").isTrue(); - pvs = new ServletRequestParameterPropertyValues(request, "test"); - testTony(pvs); + testTony(new ServletRequestParameterPropertyValues(request, "test")); } /** @@ -69,19 +86,18 @@ class ServletRequestParameterPropertyValuesTests { assertThat(pvs.contains("age")).as("Contains age").isTrue(); assertThat(pvs.contains("tory")).as("Doesn't contain tory").isFalse(); - PropertyValue[] pvArray = pvs.getPropertyValues(); - Map m = new HashMap<>(); - m.put("forname", "Tony"); - m.put("surname", "Blair"); - m.put("age", "50"); - for (PropertyValue pv : pvArray) { - Object val = m.get(pv.getName()); + Map map = new HashMap<>(); + map.put("forname", "Tony"); + map.put("surname", "Blair"); + map.put("age", "50"); + for (PropertyValue pv : pvs.getPropertyValues()) { + Object val = map.get(pv.getName()); assertThat(val).as("Can't have unexpected value").isNotNull(); assertThat(val).as("Val is string").isInstanceOf(String.class); assertThat(val).as("val matches expected").isEqualTo(pv.getValue()); - m.remove(pv.getName()); + map.remove(pv.getName()); } - assertThat(m.size()).as("Map size is 0").isEqualTo(0); + assertThat(map).isEmpty(); } } diff --git a/spring-web/src/test/java/org/springframework/web/bind/support/WebRequestDataBinderTests.java b/spring-web/src/test/java/org/springframework/web/bind/support/WebRequestDataBinderTests.java index d126e0a6713..9332e28798b 100644 --- a/spring-web/src/test/java/org/springframework/web/bind/support/WebRequestDataBinderTests.java +++ b/spring-web/src/test/java/org/springframework/web/bind/support/WebRequestDataBinderTests.java @@ -17,7 +17,6 @@ package org.springframework.web.bind.support; import java.beans.PropertyEditorSupport; -import java.util.Arrays; import java.util.List; import java.util.Map; import java.util.Set; @@ -31,7 +30,6 @@ import org.junit.jupiter.params.provider.ValueSource; import org.springframework.beans.testfixture.beans.ITestBean; import org.springframework.beans.testfixture.beans.TestBean; -import org.springframework.web.bind.ServletRequestParameterPropertyValues; import org.springframework.web.context.request.ServletWebRequest; import org.springframework.web.multipart.support.StringMultipartFileEditor; import org.springframework.web.testfixture.servlet.MockHttpServletRequest; @@ -305,26 +303,6 @@ class WebRequestDataBinderTests { assertThat(target.getStringArray()[1]).isEqualTo("Eva"); } - @Test - void noParameters() { - MockHttpServletRequest request = new MockHttpServletRequest(); - ServletRequestParameterPropertyValues pvs = new ServletRequestParameterPropertyValues(request); - assertThat(pvs.getPropertyValues().length).as("Found no parameters").isEqualTo(0); - } - - @Test - void multipleValuesForParameter() { - MockHttpServletRequest request = new MockHttpServletRequest(); - String[] original = new String[] {"Tony", "Rod"}; - request.addParameter("forname", original); - - ServletRequestParameterPropertyValues pvs = new ServletRequestParameterPropertyValues(request); - assertThat(pvs.getPropertyValues().length).as("Found 1 parameter").isEqualTo(1); - assertThat(pvs.getPropertyValue("forname").getValue()).as("Found array value").isInstanceOf(String[].class); - String[] values = (String[]) pvs.getPropertyValue("forname").getValue(); - assertThat(Arrays.asList(original)).as("Correct values").isEqualTo(Arrays.asList(values)); - } - @ParameterizedClass // gh-36625 @ValueSource(strings = { DEFAULT_FIELD_DEFAULT_PREFIX, DEFAULT_FIELD_MARKER_PREFIX })