Polishing in RestClientAdapterTests
This commit is contained in:
@@ -167,62 +167,21 @@ class RestClientAdapterTests {
|
|||||||
.hasLowCardinalityKeyValue("uri", "none");
|
.hasLowCardinalityKeyValue("uri", "none");
|
||||||
}
|
}
|
||||||
|
|
||||||
@ParameterizedAdapterTest
|
@Test
|
||||||
void postWithHeader(MockWebServer server, Service service) throws Exception {
|
void greetingWithApiVersion() throws Exception {
|
||||||
service.postWithHeader("testHeader", "testBody");
|
RestClient restClient = RestClient.builder()
|
||||||
|
.baseUrl(anotherServer.url("/").toString())
|
||||||
|
.apiVersionInserter(ApiVersionInserter.useHeader("X-API-Version"))
|
||||||
|
.build();
|
||||||
|
|
||||||
RecordedRequest request = server.takeRequest();
|
RestClientAdapter adapter = RestClientAdapter.create(restClient);
|
||||||
assertThat(request.getMethod()).isEqualTo("POST");
|
Service service = HttpServiceProxyFactory.builderFor(adapter).build().createClient(Service.class);
|
||||||
assertThat(request.getPath()).isEqualTo("/greeting");
|
|
||||||
assertThat(request.getHeaders().get("testHeaderName")).isEqualTo("testHeader");
|
|
||||||
assertThat(request.getBody().readUtf8()).isEqualTo("testBody");
|
|
||||||
}
|
|
||||||
|
|
||||||
@ParameterizedAdapterTest
|
String response = service.getGreetingWithVersion();
|
||||||
void formData(MockWebServer server, Service service) throws Exception {
|
|
||||||
MultiValueMap<String, String> map = new LinkedMultiValueMap<>();
|
|
||||||
map.add("param1", "value 1");
|
|
||||||
map.add("param2", "value 2");
|
|
||||||
|
|
||||||
service.postForm(map);
|
RecordedRequest request = anotherServer.takeRequest();
|
||||||
|
assertThat(request.getHeader("X-API-Version")).isEqualTo("1.2");
|
||||||
RecordedRequest request = server.takeRequest();
|
assertThat(response).isEqualTo("Hello Spring 2!");
|
||||||
assertThat(request.getHeaders().get("Content-Type")).isEqualTo("application/x-www-form-urlencoded");
|
|
||||||
assertThat(request.getBody().readUtf8()).isEqualTo("param1=value+1¶m2=value+2");
|
|
||||||
}
|
|
||||||
|
|
||||||
@ParameterizedAdapterTest // gh-30342
|
|
||||||
void multipart(MockWebServer server, Service service) throws Exception {
|
|
||||||
MultipartFile file = new MockMultipartFile(
|
|
||||||
"testFileName", "originalTestFileName", MediaType.APPLICATION_JSON_VALUE, "test".getBytes());
|
|
||||||
|
|
||||||
service.postMultipart(file, "test2");
|
|
||||||
|
|
||||||
RecordedRequest request = server.takeRequest();
|
|
||||||
assertThat(request.getHeaders().get("Content-Type")).startsWith("multipart/form-data;boundary=");
|
|
||||||
assertThat(request.getBody().readUtf8()).containsSubsequence(
|
|
||||||
"Content-Disposition: form-data; name=\"file\"; filename=\"originalTestFileName\"",
|
|
||||||
"Content-Type: application/json", "Content-Length: 4", "test",
|
|
||||||
"Content-Disposition: form-data; name=\"anotherPart\"", "Content-Type: text/plain;charset=UTF-8",
|
|
||||||
"Content-Length: 5", "test2");
|
|
||||||
}
|
|
||||||
|
|
||||||
@ParameterizedAdapterTest
|
|
||||||
void putWithCookies(MockWebServer server, Service service) throws Exception {
|
|
||||||
service.putWithCookies("test1", "test2");
|
|
||||||
|
|
||||||
RecordedRequest request = server.takeRequest();
|
|
||||||
assertThat(request.getMethod()).isEqualTo("PUT");
|
|
||||||
assertThat(request.getHeader("Cookie")).isEqualTo("firstCookie=test1; secondCookie=test2");
|
|
||||||
}
|
|
||||||
|
|
||||||
@ParameterizedAdapterTest
|
|
||||||
void putWithSameNameCookies(MockWebServer server, Service service) throws Exception {
|
|
||||||
service.putWithSameNameCookies("test1", "test2");
|
|
||||||
|
|
||||||
RecordedRequest request = server.takeRequest();
|
|
||||||
assertThat(request.getMethod()).isEqualTo("PUT");
|
|
||||||
assertThat(request.getHeader("Cookie")).isEqualTo("testCookie=test1; testCookie=test2");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ParameterizedAdapterTest
|
@ParameterizedAdapterTest
|
||||||
@@ -270,20 +229,44 @@ class RestClientAdapterTests {
|
|||||||
assertThat(this.anotherServer.getRequestCount()).isEqualTo(0);
|
assertThat(this.anotherServer.getRequestCount()).isEqualTo(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@ParameterizedAdapterTest
|
||||||
void apiVersion() throws Exception {
|
void postWithHeader(MockWebServer server, Service service) throws Exception {
|
||||||
RestClient restClient = RestClient.builder()
|
service.postWithHeader("testHeader", "testBody");
|
||||||
.baseUrl(anotherServer.url("/").toString())
|
|
||||||
.apiVersionInserter(ApiVersionInserter.useHeader("X-API-Version"))
|
|
||||||
.build();
|
|
||||||
|
|
||||||
RestClientAdapter adapter = RestClientAdapter.create(restClient);
|
RecordedRequest request = server.takeRequest();
|
||||||
Service service = HttpServiceProxyFactory.builderFor(adapter).build().createClient(Service.class);
|
assertThat(request.getMethod()).isEqualTo("POST");
|
||||||
|
assertThat(request.getPath()).isEqualTo("/greeting");
|
||||||
|
assertThat(request.getHeaders().get("testHeaderName")).isEqualTo("testHeader");
|
||||||
|
assertThat(request.getBody().readUtf8()).isEqualTo("testBody");
|
||||||
|
}
|
||||||
|
|
||||||
service.getGreetingWithVersion();
|
@ParameterizedAdapterTest
|
||||||
|
void postFormData(MockWebServer server, Service service) throws Exception {
|
||||||
|
MultiValueMap<String, String> map = new LinkedMultiValueMap<>();
|
||||||
|
map.add("param1", "value 1");
|
||||||
|
map.add("param2", "value 2");
|
||||||
|
|
||||||
RecordedRequest request = anotherServer.takeRequest();
|
service.postForm(map);
|
||||||
assertThat(request.getHeader("X-API-Version")).isEqualTo("1.2");
|
|
||||||
|
RecordedRequest request = server.takeRequest();
|
||||||
|
assertThat(request.getHeaders().get("Content-Type")).isEqualTo("application/x-www-form-urlencoded");
|
||||||
|
assertThat(request.getBody().readUtf8()).isEqualTo("param1=value+1¶m2=value+2");
|
||||||
|
}
|
||||||
|
|
||||||
|
@ParameterizedAdapterTest // gh-30342
|
||||||
|
void postMultipart(MockWebServer server, Service service) throws Exception {
|
||||||
|
MultipartFile file = new MockMultipartFile(
|
||||||
|
"testFileName", "originalTestFileName", MediaType.APPLICATION_JSON_VALUE, "test".getBytes());
|
||||||
|
|
||||||
|
service.postMultipart(file, "test2");
|
||||||
|
|
||||||
|
RecordedRequest request = server.takeRequest();
|
||||||
|
assertThat(request.getHeaders().get("Content-Type")).startsWith("multipart/form-data;boundary=");
|
||||||
|
assertThat(request.getBody().readUtf8()).containsSubsequence(
|
||||||
|
"Content-Disposition: form-data; name=\"file\"; filename=\"originalTestFileName\"",
|
||||||
|
"Content-Type: application/json", "Content-Length: 4", "test",
|
||||||
|
"Content-Disposition: form-data; name=\"anotherPart\"", "Content-Type: text/plain;charset=UTF-8",
|
||||||
|
"Content-Length: 5", "test2");
|
||||||
}
|
}
|
||||||
|
|
||||||
@ParameterizedAdapterTest // gh-34793
|
@ParameterizedAdapterTest // gh-34793
|
||||||
@@ -299,6 +282,24 @@ class RestClientAdapterTests {
|
|||||||
assertThat(request.getBody().readUtf8()).isEqualTo("[{\"name\":\"John\"},{\"name\":\"Richard\"}]");
|
assertThat(request.getBody().readUtf8()).isEqualTo("[{\"name\":\"John\"},{\"name\":\"Richard\"}]");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ParameterizedAdapterTest
|
||||||
|
void putWithCookies(MockWebServer server, Service service) throws Exception {
|
||||||
|
service.putWithCookies("test1", "test2");
|
||||||
|
|
||||||
|
RecordedRequest request = server.takeRequest();
|
||||||
|
assertThat(request.getMethod()).isEqualTo("PUT");
|
||||||
|
assertThat(request.getHeader("Cookie")).isEqualTo("firstCookie=test1; secondCookie=test2");
|
||||||
|
}
|
||||||
|
|
||||||
|
@ParameterizedAdapterTest
|
||||||
|
void putWithSameNameCookies(MockWebServer server, Service service) throws Exception {
|
||||||
|
service.putWithSameNameCookies("test1", "test2");
|
||||||
|
|
||||||
|
RecordedRequest request = server.takeRequest();
|
||||||
|
assertThat(request.getMethod()).isEqualTo("PUT");
|
||||||
|
assertThat(request.getHeader("Cookie")).isEqualTo("testCookie=test1; testCookie=test2");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
private static MockWebServer anotherServer() {
|
private static MockWebServer anotherServer() {
|
||||||
MockWebServer server = new MockWebServer();
|
MockWebServer server = new MockWebServer();
|
||||||
@@ -323,6 +324,16 @@ class RestClientAdapterTests {
|
|||||||
@GetExchange(url = "/greeting", version = "1.2")
|
@GetExchange(url = "/greeting", version = "1.2")
|
||||||
String getGreetingWithVersion();
|
String getGreetingWithVersion();
|
||||||
|
|
||||||
|
@GetExchange("/greeting")
|
||||||
|
ResponseEntity<String> getWithUriBuilderFactory(UriBuilderFactory uriBuilderFactory);
|
||||||
|
|
||||||
|
@GetExchange("/greeting/{id}")
|
||||||
|
ResponseEntity<String> getWithUriBuilderFactory(
|
||||||
|
UriBuilderFactory uriBuilderFactory, @PathVariable String id, @RequestParam String param);
|
||||||
|
|
||||||
|
@GetExchange("/greeting")
|
||||||
|
ResponseEntity<String> getWithIgnoredUriBuilderFactory(URI uri, UriBuilderFactory uriBuilderFactory);
|
||||||
|
|
||||||
@PostExchange("/greeting")
|
@PostExchange("/greeting")
|
||||||
void postWithHeader(@RequestHeader("testHeaderName") String testHeader, @RequestBody String requestBody);
|
void postWithHeader(@RequestHeader("testHeaderName") String testHeader, @RequestBody String requestBody);
|
||||||
|
|
||||||
@@ -342,30 +353,10 @@ class RestClientAdapterTests {
|
|||||||
void putWithSameNameCookies(
|
void putWithSameNameCookies(
|
||||||
@CookieValue("testCookie") String firstCookie, @CookieValue("testCookie") String secondCookie);
|
@CookieValue("testCookie") String firstCookie, @CookieValue("testCookie") String secondCookie);
|
||||||
|
|
||||||
@GetExchange("/greeting")
|
|
||||||
ResponseEntity<String> getWithUriBuilderFactory(UriBuilderFactory uriBuilderFactory);
|
|
||||||
|
|
||||||
@GetExchange("/greeting/{id}")
|
|
||||||
ResponseEntity<String> getWithUriBuilderFactory(
|
|
||||||
UriBuilderFactory uriBuilderFactory, @PathVariable String id, @RequestParam String param);
|
|
||||||
|
|
||||||
@GetExchange("/greeting")
|
|
||||||
ResponseEntity<String> getWithIgnoredUriBuilderFactory(URI uri, UriBuilderFactory uriBuilderFactory);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static final class Person {
|
record Person(String name) {
|
||||||
|
|
||||||
private final String name;
|
|
||||||
|
|
||||||
Person(String name) {
|
|
||||||
this.name = name;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getName() {
|
|
||||||
return this.name;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user