Refactor DefaultApiVersionInserter
This commit is contained in:
@@ -27,7 +27,6 @@ import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import org.springframework.web.client.ApiVersionInserter;
|
||||
import org.springframework.web.client.DefaultApiVersionInserter;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
import static org.assertj.core.api.Assertions.assertThatIllegalStateException;
|
||||
@@ -59,45 +58,45 @@ public class WebClientVersionTests {
|
||||
|
||||
@Test
|
||||
void header() {
|
||||
performRequest(DefaultApiVersionInserter.fromHeader("X-API-Version"));
|
||||
performRequest(ApiVersionInserter.fromHeader("X-API-Version"));
|
||||
expectRequest(request -> assertThat(request.getHeader("X-API-Version")).isEqualTo("1.2"));
|
||||
}
|
||||
|
||||
@Test
|
||||
void queryParam() {
|
||||
performRequest(DefaultApiVersionInserter.fromQueryParam("api-version"));
|
||||
performRequest(ApiVersionInserter.fromQueryParam("api-version"));
|
||||
expectRequest(request -> assertThat(request.getPath()).isEqualTo("/path?api-version=1.2"));
|
||||
}
|
||||
|
||||
@Test
|
||||
void pathSegmentIndexLessThanSize() {
|
||||
performRequest(DefaultApiVersionInserter.fromPathSegment(0).withVersionFormatter(v -> "v" + v));
|
||||
performRequest(ApiVersionInserter.fromPathSegment(0).withVersionFormatter(v -> "v" + v));
|
||||
expectRequest(request -> assertThat(request.getPath()).isEqualTo("/v1.2/path"));
|
||||
}
|
||||
|
||||
@Test
|
||||
void pathSegmentIndexEqualToSize() {
|
||||
performRequest(DefaultApiVersionInserter.fromPathSegment(1).withVersionFormatter(v -> "v" + v));
|
||||
performRequest(ApiVersionInserter.fromPathSegment(1).withVersionFormatter(v -> "v" + v));
|
||||
expectRequest(request -> assertThat(request.getPath()).isEqualTo("/path/v1.2"));
|
||||
}
|
||||
|
||||
@Test
|
||||
void pathSegmentIndexGreaterThanSize() {
|
||||
assertThatIllegalStateException()
|
||||
.isThrownBy(() -> performRequest(DefaultApiVersionInserter.fromPathSegment(2)))
|
||||
.isThrownBy(() -> performRequest(ApiVersionInserter.fromPathSegment(2)))
|
||||
.withMessage("Cannot insert version into '/path' at path segment index 2");
|
||||
}
|
||||
|
||||
@Test
|
||||
void defaultVersion() {
|
||||
ApiVersionInserter inserter = DefaultApiVersionInserter.fromHeader("X-API-Version").build();
|
||||
ApiVersionInserter inserter = ApiVersionInserter.fromHeader("X-API-Version").build();
|
||||
WebClient webClient = webClientBuilder.defaultApiVersion(1.2).apiVersionInserter(inserter).build();
|
||||
webClient.get().uri("/path").retrieve().bodyToMono(String.class).block();
|
||||
|
||||
expectRequest(request -> assertThat(request.getHeader("X-API-Version")).isEqualTo("1.2"));
|
||||
}
|
||||
|
||||
private void performRequest(DefaultApiVersionInserter.Builder builder) {
|
||||
private void performRequest(ApiVersionInserter.Builder builder) {
|
||||
ApiVersionInserter versionInserter = builder.build();
|
||||
WebClient webClient = webClientBuilder.apiVersionInserter(versionInserter).build();
|
||||
webClient.get().uri("/path").apiVersion(1.2).retrieve().bodyToMono(String.class).block();
|
||||
|
||||
Reference in New Issue
Block a user