queryParam options for MockMVC requeusts

See gh-23296
This commit is contained in:
Johannes Teklote
2019-11-12 14:31:42 +01:00
committed by Rossen Stoyanchev
parent a26d37b407
commit 879b2df052
2 changed files with 92 additions and 1 deletions

View File

@@ -21,6 +21,7 @@ import java.net.URI;
import java.net.URISyntaxException;
import java.nio.charset.StandardCharsets;
import java.security.Principal;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.HashMap;
@@ -234,6 +235,47 @@ public class MockHttpServletRequestBuilderTests {
assertThat(request.getParameter("foo[1]")).isEqualTo("baz");
}
@Test
public void requestParameterToQuery() {
this.builder = new MockHttpServletRequestBuilder(HttpMethod.GET, "/");
this.builder.queryParam("foo", "bar");
this.builder.queryParam("foo", "baz");
MockHttpServletRequest request = this.builder.buildRequest(this.servletContext);
assertThat(request.getParameterMap().get("foo")).isEqualTo(new String[] {"bar", "baz"});
assertThat(request.getQueryString()).isEqualTo("foo=bar&foo=baz");
}
@Test
public void requestParameterMapToQuery() {
this.builder = new MockHttpServletRequestBuilder(HttpMethod.GET, "/");
MultiValueMap<String, String> queryParams = new LinkedMultiValueMap<>();
List<String> values = new ArrayList<>();
values.add("bar");
values.add("baz");
queryParams.put("foo", values);
this.builder.queryParams(queryParams);
MockHttpServletRequest request = this.builder.buildRequest(this.servletContext);
assertThat(request.getParameterMap().get("foo")).isEqualTo(new String[] {"bar", "baz"});
assertThat(request.getQueryString()).isEqualTo("foo=bar&foo=baz");
}
@Test
public void requestParameterToQueryList() {
this.builder = new MockHttpServletRequestBuilder(HttpMethod.GET, "/");
this.builder.queryParam("foo[0]", "bar");
this.builder.queryParam("foo[1]", "baz");
MockHttpServletRequest request = this.builder.buildRequest(this.servletContext);
assertThat(request.getQueryString()).isEqualTo("foo%5B0%5D=bar&foo%5B1%5D=baz");
assertThat(request.getParameter("foo[0]")).isEqualTo("bar");
assertThat(request.getParameter("foo[1]")).isEqualTo("baz");
}
@Test
public void requestParameterFromQueryWithEncoding() {
this.builder = new MockHttpServletRequestBuilder(HttpMethod.GET, "/?foo={value}", "bar=baz");