mirror of
https://github.com/spring-projects/spring-framework.git
synced 2026-09-17 16:39:29 +00:00
Polishing in AbstractMockHttpServletRequestBuilder
See gh-35329
This commit is contained in:
+4
-18
@@ -342,7 +342,7 @@ public abstract class AbstractMockHttpServletRequestBuilder<B extends AbstractMo
|
||||
* @param values one or more header values
|
||||
*/
|
||||
public B header(String name, Object... values) {
|
||||
addToMultiValueMap(this.headers, name, values);
|
||||
this.headers.addAll(name, Arrays.asList(values));
|
||||
return self();
|
||||
}
|
||||
|
||||
@@ -372,11 +372,7 @@ public abstract class AbstractMockHttpServletRequestBuilder<B extends AbstractMo
|
||||
* @param values one or more values
|
||||
*/
|
||||
public B param(String name, String... values) {
|
||||
if (values.length == 0) {
|
||||
this.parameters.computeIfAbsent(name, k -> new ArrayList<>());
|
||||
return self();
|
||||
}
|
||||
addToMultiValueMap(this.parameters, name, values);
|
||||
this.parameters.addAll(name, Arrays.asList(values));
|
||||
return self();
|
||||
}
|
||||
|
||||
@@ -823,10 +819,9 @@ public abstract class AbstractMockHttpServletRequestBuilder<B extends AbstractMo
|
||||
if (query != null) {
|
||||
request.setQueryString(query);
|
||||
}
|
||||
addRequestParams(request, UriComponentsBuilder.fromUri(uri).build().getQueryParams());
|
||||
|
||||
this.parameters.forEach((name, values) ->
|
||||
request.addParameter(name, values.toArray(new String[0])));
|
||||
addRequestParams(request, UriComponentsBuilder.fromUri(uri).build().getQueryParams());
|
||||
this.parameters.forEach((name, values) -> request.addParameter(name, values.toArray(new String[0])));
|
||||
|
||||
if (!this.formFields.isEmpty()) {
|
||||
if (this.content != null && this.content.length > 0) {
|
||||
@@ -993,19 +988,10 @@ public abstract class AbstractMockHttpServletRequestBuilder<B extends AbstractMo
|
||||
return request;
|
||||
}
|
||||
|
||||
|
||||
private static void addToMap(Map<String, Object> map, String name, Object value) {
|
||||
Assert.hasLength(name, "'name' must not be empty");
|
||||
Assert.notNull(value, "'value' must not be null");
|
||||
map.put(name, value);
|
||||
}
|
||||
|
||||
private static <T> void addToMultiValueMap(MultiValueMap<String, T> map, String name, T[] values) {
|
||||
Assert.hasLength(name, "'name' must not be empty");
|
||||
Assert.notEmpty(values, "'values' must not be empty");
|
||||
for (T value : values) {
|
||||
map.add(name, value);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
+22
-22
@@ -230,7 +230,7 @@ class MockHttpServletRequestBuilderTests {
|
||||
}
|
||||
|
||||
@Test
|
||||
void requestParameterFromQuery() {
|
||||
void requestParameterFromQueryString() {
|
||||
this.builder = new MockHttpServletRequestBuilder(GET).uri("/?foo=bar&foo=baz");
|
||||
|
||||
MockHttpServletRequest request = this.builder.buildRequest(this.servletContext);
|
||||
@@ -241,7 +241,7 @@ class MockHttpServletRequestBuilderTests {
|
||||
}
|
||||
|
||||
@Test
|
||||
void requestParameterFromQueryList() {
|
||||
void requestParameterFromQueryStringWithListValues() {
|
||||
this.builder = new MockHttpServletRequestBuilder(GET).uri("/?foo[0]=bar&foo[1]=baz");
|
||||
|
||||
MockHttpServletRequest request = this.builder.buildRequest(this.servletContext);
|
||||
@@ -263,25 +263,6 @@ class MockHttpServletRequestBuilderTests {
|
||||
assertThat(request.getQueryString()).isEqualTo("foo=bar&foo=baz");
|
||||
}
|
||||
|
||||
@Test // gh-35210
|
||||
void queryParameterWithoutValues() {
|
||||
this.builder = new MockHttpServletRequestBuilder(GET).uri("/");
|
||||
this.builder.queryParam("foo");
|
||||
MockHttpServletRequest request = this.builder.buildRequest(this.servletContext);
|
||||
|
||||
assertThat(request.getQueryString()).isEqualTo("foo");
|
||||
assertThat(request.getParameterMap().get("foo")).containsExactly();
|
||||
}
|
||||
|
||||
@Test
|
||||
void queryParametersWithUriAndQueryParam() {
|
||||
this.builder = new MockHttpServletRequestBuilder(GET).uri("/path?param1=value1");
|
||||
this.builder.queryParam("param1", "value2");
|
||||
MockHttpServletRequest request = this.builder.buildRequest(this.servletContext);
|
||||
|
||||
assertThat(request.getParameterMap().get("param1")).containsExactly("value1", "value2");
|
||||
}
|
||||
|
||||
@Test
|
||||
void queryParameterMap() {
|
||||
this.builder = new MockHttpServletRequestBuilder(GET).uri("/");
|
||||
@@ -299,7 +280,7 @@ class MockHttpServletRequestBuilderTests {
|
||||
}
|
||||
|
||||
@Test
|
||||
void queryParameterList() {
|
||||
void queryParameterWithListValues() {
|
||||
this.builder = new MockHttpServletRequestBuilder(GET).uri("/");
|
||||
this.builder.queryParam("foo[0]", "bar");
|
||||
this.builder.queryParam("foo[1]", "baz");
|
||||
@@ -311,6 +292,25 @@ class MockHttpServletRequestBuilderTests {
|
||||
assertThat(request.getParameter("foo[1]")).isEqualTo("baz");
|
||||
}
|
||||
|
||||
@Test // gh-35329
|
||||
void queryParameterAndQueryString() {
|
||||
this.builder = new MockHttpServletRequestBuilder(GET).uri("/path?param1=value1");
|
||||
this.builder.queryParam("param1", "value2");
|
||||
MockHttpServletRequest request = this.builder.buildRequest(this.servletContext);
|
||||
|
||||
assertThat(request.getParameterMap().get("param1")).containsExactly("value1", "value2");
|
||||
}
|
||||
|
||||
@Test // gh-35210
|
||||
void queryParameterWithoutValues() {
|
||||
this.builder = new MockHttpServletRequestBuilder(GET).uri("/");
|
||||
this.builder.queryParam("foo");
|
||||
MockHttpServletRequest request = this.builder.buildRequest(this.servletContext);
|
||||
|
||||
assertThat(request.getQueryString()).isEqualTo("foo");
|
||||
assertThat(request.getParameterMap().get("foo")).containsExactly();
|
||||
}
|
||||
|
||||
@Test
|
||||
void formField() {
|
||||
this.builder = new MockHttpServletRequestBuilder(POST).uri("/");
|
||||
|
||||
Reference in New Issue
Block a user