private MultiValueMap<String, String> getCookies() { if (this.cookies == null) { this.cookies = new LinkedMultiValueMap<>(4); } return this.cookies; }
/** * Set a Map with parameter names as keys and list of MultipartFile objects as values. * To be invoked by subclasses on initialization. */ protected final void setMultipartFiles(MultiValueMap<String, MultipartFile> multipartFiles) { this.multipartFiles = new LinkedMultiValueMap<>(Collections.unmodifiableMap(multipartFiles)); }
protected final MultiValueMap<String, String> getParamsMultiValueMap(MockHttpServletRequest request) { Map<String, String[]> params = request.getParameterMap(); MultiValueMap<String, String> multiValueMap = new LinkedMultiValueMap<>(); params.forEach((name, values) -> { if (params.get(name) != null) { for (String value : values) { multiValueMap.add(name, value); } } }); return multiValueMap; }
/** * A protected constructor to create new headers. * @param nativeHeaders native headers to create the message with (may be {@code null}) */ protected NativeMessageHeaderAccessor(@Nullable Map<String, List<String>> nativeHeaders) { if (!CollectionUtils.isEmpty(nativeHeaders)) { setHeader(NATIVE_HEADERS, new LinkedMultiValueMap<>(nativeHeaders)); } }
@SuppressWarnings("unchecked") private MultiValueMap<String, String> getVariablesFor(String pathVarName) { Map<String, MultiValueMap<String, String>> matrixVariables = (Map<String, MultiValueMap<String, String>>) this.request.getAttribute( HandlerMapping.MATRIX_VARIABLES_ATTRIBUTE); MultiValueMap<String, String> params = new LinkedMultiValueMap<>(); matrixVariables.put(pathVarName, params); return params; }
@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); }
@Test public void form() throws UnsupportedEncodingException { MultiValueMap<String, String> form = new LinkedMultiValueMap<>(); form.add("name 1", "value 1"); form.add("name 2", "value 2+1"); form.add("name 2", "value 2+2"); template.postForLocation(baseUrl + "/form", form); }
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()); }
@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; } }
@Test public void queryParams() { MultiValueMap<String, String> value = new LinkedMultiValueMap<>(); value.add("foo", "bar"); when(mockRequest.queryParams()).thenReturn(value); assertSame(value, wrapper.queryParams()); }
@Test public void addNativeHeader() { MultiValueMap<String, String> nativeHeaders = new LinkedMultiValueMap<>(); nativeHeaders.add("foo", "bar"); NativeMessageHeaderAccessor headers = new NativeMessageHeaderAccessor(nativeHeaders); headers.addNativeHeader("foo", "baz"); assertEquals(Arrays.asList("bar", "baz"), headers.getNativeHeader("foo")); }
@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 public void addNativeHeaderNullValue() { MultiValueMap<String, String> nativeHeaders = new LinkedMultiValueMap<>(); nativeHeaders.add("foo", "bar"); NativeMessageHeaderAccessor headers = new NativeMessageHeaderAccessor(nativeHeaders); headers.addNativeHeader("foo", null); assertEquals(Arrays.asList("bar"), headers.getNativeHeader("foo")); }
@Test public void testBindingWithNestedObjectCreation() throws Exception { MultiValueMap<String, String> formData = new LinkedMultiValueMap<>(); formData.add("spouse", "someValue"); formData.add("spouse.name", "test"); this.binder.bind(exchange(formData)).block(Duration.ofMillis(5000)); assertNotNull(this.testBean.getSpouse()); assertEquals("test", testBean.getSpouse().getName()); }
@Test public void testBindingWithNestedObjectCreationAndWrongOrder() throws Exception { MultiValueMap<String, String> formData = new LinkedMultiValueMap<>(); formData.add("spouse.name", "test"); formData.add("spouse", "someValue"); this.binder.bind(exchange(formData)).block(Duration.ofMillis(5000)); assertNotNull(this.testBean.getSpouse()); assertEquals("test", this.testBean.getSpouse().getName()); }
@Test public void partsBinding() { PartsBean bean = new PartsBean(); partsServlet.setBean(bean); MultiValueMap<String, Object> parts = new LinkedMultiValueMap<>(); Resource firstPart = new ClassPathResource("/org/springframework/http/converter/logo.jpg"); parts.add("firstPart", firstPart); parts.add("secondPart", "secondValue"); template.postForLocation(baseUrl + "/parts", parts); assertNotNull(bean.getFirstPart()); assertNotNull(bean.getSecondPart()); }
@Test public void createWithMessageFrameNativeHeaders() { MultiValueMap<String, String> extHeaders = new LinkedMultiValueMap<>(); extHeaders.add(StompHeaderAccessor.DESTINATION_HEADER, "/d"); extHeaders.add(StompHeaderAccessor.STOMP_SUBSCRIPTION_HEADER, "s1"); extHeaders.add(StompHeaderAccessor.STOMP_CONTENT_TYPE_HEADER, "application/json"); StompHeaderAccessor headers = StompHeaderAccessor.create(StompCommand.MESSAGE, extHeaders); assertEquals(StompCommand.MESSAGE, headers.getCommand()); assertEquals(SimpMessageType.MESSAGE, headers.getMessageType()); assertEquals("s1", headers.getSubscriptionId()); }
@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 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 cookies() { MultiValueMap<String, ResponseCookie> newCookies = new LinkedMultiValueMap<>(); newCookies.add("name", ResponseCookie.from("name", "value").build()); Mono<RenderingResponse> result = RenderingResponse.create("foo").cookies(cookies -> cookies.addAll(newCookies)).build(); StepVerifier.create(result) .expectNextMatches(response -> newCookies.equals(response.cookies())) .expectComplete() .verify(); }