@Override public EntityResponse.Builder<T> cookie(ResponseCookie cookie) { Assert.notNull(cookie, "ResponseCookie must not be null"); this.cookies.add(cookie.getName(), cookie); return this; }
@Override public ServerRequest.Builder cookie(String name, String... values) { for (String value : values) { this.cookies.add(name, new HttpCookie(name, value)); } return this; }
/** * Add a file to this request. The parameter name from the multipart * form is taken from the {@link MultipartFile#getName()}. * @param file multipart file to be added */ public void addFile(MultipartFile file) { Assert.notNull(file, "MultipartFile must not be null"); this.multipartFiles.add(file.getName(), file); }
private static MultiValueMap<String, Entry> parseIndex(List<Properties> content) { MultiValueMap<String, Entry> index = new LinkedMultiValueMap<>(); for (Properties entry : content) { entry.forEach((type, values) -> { String[] stereotypes = ((String) values).split(","); for (String stereotype : stereotypes) { index.add(stereotype, new Entry((String) type)); } }); } return index; }
@Override public Builder queryParam(String key, String value) { Assert.notNull(key, "'key' must not be null"); Assert.notNull(value, "'value' must not be null"); this.queryParams.add(key, value); return this; }
@Override public DefaultClientResponseBuilder cookie(String name, String... values) { for (String value : values) { this.cookies.add(name, ResponseCookie.from(name, value).build()); } return this; }
@Test public void multipart() throws UnsupportedEncodingException { MultiValueMap<String, Object> parts = new LinkedMultiValueMap<>(); parts.add("name 1", "value 1"); parts.add("name 2", "value 2+1"); parts.add("name 2", "value 2+2"); Resource logo = new ClassPathResource("/org/springframework/http/converter/logo.jpg"); parts.add("logo", logo); template.postForLocation(baseUrl + "/multipart", parts); }
@RequestMapping("/music/people") public MultiValueMap<String, Person> get() { MultiValueMap<String, Person> map = new LinkedMultiValueMap<>(); map.add("composers", new Person("Johann Sebastian Bach")); map.add("composers", new Person("Johannes Brahms")); map.add("composers", new Person("Edvard Grieg")); map.add("composers", new Person("Robert Schumann")); map.add("performers", new Person("Vladimir Ashkenazy")); map.add("performers", new Person("Yehudi Menuhin")); return map; } }
private void testCreate(String url, String basename) { MultiValueMap<String, Object> parts = new LinkedMultiValueMap<>(); parts.add("json-data", new HttpEntity<>(new TestData(basename))); parts.add("file-data", new ClassPathResource("logo.jpg", getClass())); parts.add("empty-data", new HttpEntity<>(new byte[0])); // SPR-12860 HttpHeaders headers = new HttpHeaders(); headers.setContentType(new MediaType("application", "octet-stream", StandardCharsets.ISO_8859_1)); parts.add("iso-8859-1-data", new HttpEntity<>(new byte[] {(byte) 0xC4}, headers)); // SPR-13096 URI location = restTemplate.postForLocation(url, parts); assertEquals("http://localhost:8080/test/" + basename + "/logo.jpg", location.toString()); }
@Test public void queryParams() { MultiValueMap<String, String> value = new LinkedMultiValueMap<>(); value.add("foo", "bar"); when(mockRequest.queryParams()).thenReturn(value); assertSame(value, wrapper.queryParams()); }
@Test // SPR-13801 public void requestParameterFromMultiValueMap() throws Exception { MultiValueMap<String, String> params = new LinkedMultiValueMap<>(); params.add("foo", "bar"); params.add("foo", "baz"); this.builder = new MockHttpServletRequestBuilder(HttpMethod.POST, "/foo"); this.builder.params(params); MockHttpServletRequest request = this.builder.buildRequest(this.servletContext); assertArrayEquals(new String[] {"bar", "baz"}, request.getParameterMap().get("foo")); }
@Test public void encodeConnectWithLoginAndPasscode() throws UnsupportedEncodingException { MultiValueMap<String, String> extHeaders = new LinkedMultiValueMap<>(); extHeaders.add(StompHeaderAccessor.STOMP_LOGIN_HEADER, "joe"); extHeaders.add(StompHeaderAccessor.STOMP_PASSCODE_HEADER, "joe123"); StompHeaderAccessor headerAccessor = StompHeaderAccessor.create(StompCommand.CONNECT, extHeaders); Message<byte[]> message = MessageBuilder.createMessage(new byte[0], headerAccessor.getMessageHeaders()); byte[] bytes = new StompEncoder().encode(message); assertEquals("CONNECT\nlogin:joe\npasscode:joe123\n\n\0", new String(bytes, "UTF-8")); }
@Test public void cookies() { ResponseCookie cookie = ResponseCookie.from("foo", "bar").build(); MultiValueMap<String, ResponseCookie> cookies = new LinkedMultiValueMap<>(); cookies.add("foo", cookie); when(mockResponse.getCookies()).thenReturn(cookies); assertSame(cookies, defaultClientResponse.cookies()); }
@Test(expected = ServerErrorException.class) public void resolveArgumentMultipleMatches() throws Exception { getVariablesFor("var1").add("colors", "red"); getVariablesFor("var2").add("colors", "green"); MethodParameter param = this.testMethod.annot(matrixAttribute().noName()).arg(List.class, String.class); this.resolver.resolveArgument(param, new BindingContext(), this.exchange).block(Duration.ZERO); }
@Test(expected = ServletRequestBindingException.class) public void resolveArgumentMultipleMatches() throws Exception { getVariablesFor("var1").add("colors", "red"); getVariablesFor("var2").add("colors", "green"); MethodParameter param = this.testMethod.annot(matrixAttribute().noName()).arg(List.class, String.class); this.resolver.resolveArgument(param, this.mavContainer, this.webRequest, null); }
@Test public void emptyQueryParam() { UriComponentsBuilder builder = UriComponentsBuilder.newInstance(); UriComponents result = builder.queryParam("baz").build(); assertEquals("baz", result.getQuery()); MultiValueMap<String, String> expectedQueryParams = new LinkedMultiValueMap<>(2); expectedQueryParams.add("baz", null); assertEquals(expectedQueryParams, result.getQueryParams()); }
@Test public void resolveArgumentPathVariable() throws Exception { getVariablesFor("cars").add("year", "2006"); getVariablesFor("bikes").add("year", "2005"); MethodParameter param = this.testMethod.annot(matrixAttribute().name("year")).arg(int.class); assertEquals("2006", this.resolver.resolveArgument(param, this.mavContainer, this.webRequest, null)); }
@Test public void cookies() { HttpCookie cookie = new HttpCookie("foo", "bar"); MockServerWebExchange exchange = MockServerWebExchange.from( MockServerHttpRequest.method(HttpMethod.GET, "http://example.com").cookie(cookie)); DefaultServerRequest request = new DefaultServerRequest(exchange, messageReaders); MultiValueMap<String, HttpCookie> expected = new LinkedMultiValueMap<>(); expected.add("foo", cookie); assertEquals(expected, request.cookies()); }
@Test public void setCookies() { this.client.get().uri("/cookie-echo") .cookies(cookies -> cookies.add("k1", "v1")) .exchange() .expectHeader().valueMatches("Set-Cookie", "k1=v1"); }