Skip to content

Commit 72b42bb

Browse files
committed
Polishing in RestClientAdapterTests
1 parent 9501bff commit 72b42bb

File tree

1 file changed

+76
-85
lines changed

1 file changed

+76
-85
lines changed

spring-web/src/test/java/org/springframework/web/client/support/RestClientAdapterTests.java

Lines changed: 76 additions & 85 deletions
Original file line numberDiff line numberDiff line change
@@ -167,62 +167,21 @@ void greetingWithDynamicUri(MockWebServer server, Service service, TestObservati
167167
.hasLowCardinalityKeyValue("uri", "none");
168168
}
169169

170-
@ParameterizedAdapterTest
171-
void postWithHeader(MockWebServer server, Service service) throws Exception {
172-
service.postWithHeader("testHeader", "testBody");
173-
174-
RecordedRequest request = server.takeRequest();
175-
assertThat(request.getMethod()).isEqualTo("POST");
176-
assertThat(request.getPath()).isEqualTo("/greeting");
177-
assertThat(request.getHeaders().get("testHeaderName")).isEqualTo("testHeader");
178-
assertThat(request.getBody().readUtf8()).isEqualTo("testBody");
179-
}
180-
181-
@ParameterizedAdapterTest
182-
void formData(MockWebServer server, Service service) throws Exception {
183-
MultiValueMap<String, String> map = new LinkedMultiValueMap<>();
184-
map.add("param1", "value 1");
185-
map.add("param2", "value 2");
186-
187-
service.postForm(map);
188-
189-
RecordedRequest request = server.takeRequest();
190-
assertThat(request.getHeaders().get("Content-Type")).isEqualTo("application/x-www-form-urlencoded");
191-
assertThat(request.getBody().readUtf8()).isEqualTo("param1=value+1&param2=value+2");
192-
}
193-
194-
@ParameterizedAdapterTest // gh-30342
195-
void multipart(MockWebServer server, Service service) throws Exception {
196-
MultipartFile file = new MockMultipartFile(
197-
"testFileName", "originalTestFileName", MediaType.APPLICATION_JSON_VALUE, "test".getBytes());
198-
199-
service.postMultipart(file, "test2");
200-
201-
RecordedRequest request = server.takeRequest();
202-
assertThat(request.getHeaders().get("Content-Type")).startsWith("multipart/form-data;boundary=");
203-
assertThat(request.getBody().readUtf8()).containsSubsequence(
204-
"Content-Disposition: form-data; name=\"file\"; filename=\"originalTestFileName\"",
205-
"Content-Type: application/json", "Content-Length: 4", "test",
206-
"Content-Disposition: form-data; name=\"anotherPart\"", "Content-Type: text/plain;charset=UTF-8",
207-
"Content-Length: 5", "test2");
208-
}
209-
210-
@ParameterizedAdapterTest
211-
void putWithCookies(MockWebServer server, Service service) throws Exception {
212-
service.putWithCookies("test1", "test2");
170+
@Test
171+
void greetingWithApiVersion() throws Exception {
172+
RestClient restClient = RestClient.builder()
173+
.baseUrl(anotherServer.url("/").toString())
174+
.apiVersionInserter(ApiVersionInserter.useHeader("X-API-Version"))
175+
.build();
213176

214-
RecordedRequest request = server.takeRequest();
215-
assertThat(request.getMethod()).isEqualTo("PUT");
216-
assertThat(request.getHeader("Cookie")).isEqualTo("firstCookie=test1; secondCookie=test2");
217-
}
177+
RestClientAdapter adapter = RestClientAdapter.create(restClient);
178+
Service service = HttpServiceProxyFactory.builderFor(adapter).build().createClient(Service.class);
218179

219-
@ParameterizedAdapterTest
220-
void putWithSameNameCookies(MockWebServer server, Service service) throws Exception {
221-
service.putWithSameNameCookies("test1", "test2");
180+
String response = service.getGreetingWithVersion();
222181

223-
RecordedRequest request = server.takeRequest();
224-
assertThat(request.getMethod()).isEqualTo("PUT");
225-
assertThat(request.getHeader("Cookie")).isEqualTo("testCookie=test1; testCookie=test2");
182+
RecordedRequest request = anotherServer.takeRequest();
183+
assertThat(request.getHeader("X-API-Version")).isEqualTo("1.2");
184+
assertThat(response).isEqualTo("Hello Spring 2!");
226185
}
227186

228187
@ParameterizedAdapterTest
@@ -270,20 +229,44 @@ void getWithIgnoredUriBuilderFactory(MockWebServer server, Service service) thro
270229
assertThat(this.anotherServer.getRequestCount()).isEqualTo(0);
271230
}
272231

273-
@Test
274-
void apiVersion() throws Exception {
275-
RestClient restClient = RestClient.builder()
276-
.baseUrl(anotherServer.url("/").toString())
277-
.apiVersionInserter(ApiVersionInserter.useHeader("X-API-Version"))
278-
.build();
232+
@ParameterizedAdapterTest
233+
void postWithHeader(MockWebServer server, Service service) throws Exception {
234+
service.postWithHeader("testHeader", "testBody");
279235

280-
RestClientAdapter adapter = RestClientAdapter.create(restClient);
281-
Service service = HttpServiceProxyFactory.builderFor(adapter).build().createClient(Service.class);
236+
RecordedRequest request = server.takeRequest();
237+
assertThat(request.getMethod()).isEqualTo("POST");
238+
assertThat(request.getPath()).isEqualTo("/greeting");
239+
assertThat(request.getHeaders().get("testHeaderName")).isEqualTo("testHeader");
240+
assertThat(request.getBody().readUtf8()).isEqualTo("testBody");
241+
}
282242

283-
service.getGreetingWithVersion();
243+
@ParameterizedAdapterTest
244+
void postFormData(MockWebServer server, Service service) throws Exception {
245+
MultiValueMap<String, String> map = new LinkedMultiValueMap<>();
246+
map.add("param1", "value 1");
247+
map.add("param2", "value 2");
284248

285-
RecordedRequest request = anotherServer.takeRequest();
286-
assertThat(request.getHeader("X-API-Version")).isEqualTo("1.2");
249+
service.postForm(map);
250+
251+
RecordedRequest request = server.takeRequest();
252+
assertThat(request.getHeaders().get("Content-Type")).isEqualTo("application/x-www-form-urlencoded");
253+
assertThat(request.getBody().readUtf8()).isEqualTo("param1=value+1&param2=value+2");
254+
}
255+
256+
@ParameterizedAdapterTest // gh-30342
257+
void postMultipart(MockWebServer server, Service service) throws Exception {
258+
MultipartFile file = new MockMultipartFile(
259+
"testFileName", "originalTestFileName", MediaType.APPLICATION_JSON_VALUE, "test".getBytes());
260+
261+
service.postMultipart(file, "test2");
262+
263+
RecordedRequest request = server.takeRequest();
264+
assertThat(request.getHeaders().get("Content-Type")).startsWith("multipart/form-data;boundary=");
265+
assertThat(request.getBody().readUtf8()).containsSubsequence(
266+
"Content-Disposition: form-data; name=\"file\"; filename=\"originalTestFileName\"",
267+
"Content-Type: application/json", "Content-Length: 4", "test",
268+
"Content-Disposition: form-data; name=\"anotherPart\"", "Content-Type: text/plain;charset=UTF-8",
269+
"Content-Length: 5", "test2");
287270
}
288271

289272
@ParameterizedAdapterTest // gh-34793
@@ -299,6 +282,24 @@ void postSet(MockWebServer server, Service service) throws InterruptedException
299282
assertThat(request.getBody().readUtf8()).isEqualTo("[{\"name\":\"John\"},{\"name\":\"Richard\"}]");
300283
}
301284

285+
@ParameterizedAdapterTest
286+
void putWithCookies(MockWebServer server, Service service) throws Exception {
287+
service.putWithCookies("test1", "test2");
288+
289+
RecordedRequest request = server.takeRequest();
290+
assertThat(request.getMethod()).isEqualTo("PUT");
291+
assertThat(request.getHeader("Cookie")).isEqualTo("firstCookie=test1; secondCookie=test2");
292+
}
293+
294+
@ParameterizedAdapterTest
295+
void putWithSameNameCookies(MockWebServer server, Service service) throws Exception {
296+
service.putWithSameNameCookies("test1", "test2");
297+
298+
RecordedRequest request = server.takeRequest();
299+
assertThat(request.getMethod()).isEqualTo("PUT");
300+
assertThat(request.getHeader("Cookie")).isEqualTo("testCookie=test1; testCookie=test2");
301+
}
302+
302303

303304
private static MockWebServer anotherServer() {
304305
MockWebServer server = new MockWebServer();
@@ -323,6 +324,16 @@ private interface Service {
323324
@GetExchange(url = "/greeting", version = "1.2")
324325
String getGreetingWithVersion();
325326

327+
@GetExchange("/greeting")
328+
ResponseEntity<String> getWithUriBuilderFactory(UriBuilderFactory uriBuilderFactory);
329+
330+
@GetExchange("/greeting/{id}")
331+
ResponseEntity<String> getWithUriBuilderFactory(
332+
UriBuilderFactory uriBuilderFactory, @PathVariable String id, @RequestParam String param);
333+
334+
@GetExchange("/greeting")
335+
ResponseEntity<String> getWithIgnoredUriBuilderFactory(URI uri, UriBuilderFactory uriBuilderFactory);
336+
326337
@PostExchange("/greeting")
327338
void postWithHeader(@RequestHeader("testHeaderName") String testHeader, @RequestBody String requestBody);
328339

@@ -342,30 +353,10 @@ private interface Service {
342353
void putWithSameNameCookies(
343354
@CookieValue("testCookie") String firstCookie, @CookieValue("testCookie") String secondCookie);
344355

345-
@GetExchange("/greeting")
346-
ResponseEntity<String> getWithUriBuilderFactory(UriBuilderFactory uriBuilderFactory);
347-
348-
@GetExchange("/greeting/{id}")
349-
ResponseEntity<String> getWithUriBuilderFactory(
350-
UriBuilderFactory uriBuilderFactory, @PathVariable String id, @RequestParam String param);
351-
352-
@GetExchange("/greeting")
353-
ResponseEntity<String> getWithIgnoredUriBuilderFactory(URI uri, UriBuilderFactory uriBuilderFactory);
354356
}
355357

356358

357-
static final class Person {
358-
359-
private final String name;
360-
361-
Person(String name) {
362-
this.name = name;
363-
}
364-
365-
public String getName() {
366-
return this.name;
367-
}
368-
359+
record Person(String name) {
369360
}
370361

371362
}

0 commit comments

Comments
 (0)