GH-7: Add checkstyle and javaformat plugins
Fixes: #7 * Run `./gradlew format` * Updates from PR review suggestions
This commit is contained in:
@@ -33,7 +33,6 @@ import org.springframework.web.reactive.function.client.WebClient;
|
||||
import org.springframework.web.util.DefaultUriBuilderFactory;
|
||||
import org.springframework.web.util.UriBuilderFactory;
|
||||
|
||||
|
||||
/**
|
||||
* Configuration for a {@link Function} that makes HTTP requests to a resource and for
|
||||
* each request, returns a {@link ResponseEntity}.
|
||||
@@ -47,7 +46,8 @@ import org.springframework.web.util.UriBuilderFactory;
|
||||
public class HttpRequestFunctionConfiguration {
|
||||
|
||||
@Bean
|
||||
public HttpRequestFunction httpRequestFunction(WebClient.Builder webClientBuilder, HttpRequestFunctionProperties properties) {
|
||||
public HttpRequestFunction httpRequestFunction(WebClient.Builder webClientBuilder,
|
||||
HttpRequestFunctionProperties properties) {
|
||||
return new HttpRequestFunction(webClientBuilder.build(), properties);
|
||||
}
|
||||
|
||||
@@ -76,8 +76,7 @@ public class HttpRequestFunctionConfiguration {
|
||||
|
||||
@Override
|
||||
public Object apply(Message<?> message) {
|
||||
return this.webClient
|
||||
.method(resolveHttpMethod(message))
|
||||
return this.webClient.method(resolveHttpMethod(message))
|
||||
.uri(uriBuilderFactory.uriString(resolveUrl(message)).build())
|
||||
.bodyValue(resolveBody(message))
|
||||
.headers(httpHeaders -> httpHeaders.addAll(resolveHeaders(message)))
|
||||
@@ -98,7 +97,7 @@ public class HttpRequestFunctionConfiguration {
|
||||
|
||||
private Object resolveBody(Message<?> message) {
|
||||
return properties.getBodyExpression() != null ? properties.getBodyExpression().getValue(message)
|
||||
: message.getPayload();
|
||||
: message.getPayload();
|
||||
}
|
||||
|
||||
private HttpHeaders resolveHeaders(Message<?> message) {
|
||||
@@ -107,8 +106,7 @@ public class HttpRequestFunctionConfiguration {
|
||||
Map<?, ?> headersMap = properties.getHeadersExpression().getValue(message, Map.class);
|
||||
for (Map.Entry<?, ?> header : headersMap.entrySet()) {
|
||||
if (header.getKey() != null && header.getValue() != null) {
|
||||
headers.add(header.getKey().toString(),
|
||||
header.getValue().toString());
|
||||
headers.add(header.getKey().toString(), header.getValue().toString());
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -123,5 +121,7 @@ public class HttpRequestFunctionConfiguration {
|
||||
public HttpMethod convert(String source) {
|
||||
return HttpMethod.valueOf(source);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -43,25 +43,21 @@ import static org.assertj.core.api.Assertions.assertThat;
|
||||
import static org.assertj.core.api.Assertions.fail;
|
||||
|
||||
public class HttpRequestFunctionTestApplicationTests {
|
||||
|
||||
private MockWebServer server = new MockWebServer();
|
||||
|
||||
private ApplicationContextRunner runner;
|
||||
|
||||
@BeforeEach
|
||||
void setup() {
|
||||
this.runner = new ApplicationContextRunner()
|
||||
.withUserConfiguration(HttpRequestFunctionTestApplication.class)
|
||||
.withPropertyValues(
|
||||
"http.request.reply-expression=#root",
|
||||
"http.request.url-expression='" + url() + "'");
|
||||
this.runner = new ApplicationContextRunner().withUserConfiguration(HttpRequestFunctionTestApplication.class)
|
||||
.withPropertyValues("http.request.reply-expression=#root", "http.request.url-expression='" + url() + "'");
|
||||
}
|
||||
|
||||
@Test
|
||||
void shouldReturnString() {
|
||||
|
||||
server.enqueue(new MockResponse()
|
||||
.setResponseCode(HttpStatus.OK.value())
|
||||
.setBody("hello"));
|
||||
server.enqueue(new MockResponse().setResponseCode(HttpStatus.OK.value()).setBody("hello"));
|
||||
|
||||
runner.withPropertyValues("http.request.http-method-expression='POST'").run(context -> {
|
||||
HttpRequestFunction httpRequestFunction = context.getBean(HttpRequestFunction.class);
|
||||
@@ -78,26 +74,27 @@ public class HttpRequestFunctionTestApplicationTests {
|
||||
server.setDispatcher(new Dispatcher() {
|
||||
@Override
|
||||
public MockResponse dispatch(RecordedRequest recordedRequest) {
|
||||
return new MockResponse().setHeader(HttpHeaders.CONTENT_TYPE,
|
||||
recordedRequest.getHeader(HttpHeaders.CONTENT_TYPE))
|
||||
return new MockResponse()
|
||||
.setHeader(HttpHeaders.CONTENT_TYPE, recordedRequest.getHeader(HttpHeaders.CONTENT_TYPE))
|
||||
.setBody(recordedRequest.getBody())
|
||||
.setResponseCode(HttpStatus.CREATED.value());
|
||||
}
|
||||
});
|
||||
|
||||
runner.withPropertyValues("http.request.http-method-expression='POST'",
|
||||
"http.request.headers-expression={'Content-Type':'application/json'}").run(context -> {
|
||||
HttpRequestFunction httpRequestFunction = context.getBean(HttpRequestFunction.class);
|
||||
String json = "{\"hello\":\"world\"}";
|
||||
Message<?> message = MessageBuilder.withPayload(json)
|
||||
.build();
|
||||
ResponseEntity r = (ResponseEntity) httpRequestFunction.apply(message);
|
||||
assertThat(r.getBody()).isEqualTo(json);
|
||||
assertThat(r.getStatusCode().is2xxSuccessful()).isTrue();
|
||||
assertThat(r.getHeaders().getContentType()).isEqualTo(MediaType.APPLICATION_JSON);
|
||||
RecordedRequest request = server.takeRequest(100, TimeUnit.MILLISECONDS);
|
||||
assertThat(request.getMethod()).isEqualTo("POST");
|
||||
});
|
||||
runner
|
||||
.withPropertyValues("http.request.http-method-expression='POST'",
|
||||
"http.request.headers-expression={'Content-Type':'application/json'}")
|
||||
.run(context -> {
|
||||
HttpRequestFunction httpRequestFunction = context.getBean(HttpRequestFunction.class);
|
||||
String json = "{\"hello\":\"world\"}";
|
||||
Message<?> message = MessageBuilder.withPayload(json).build();
|
||||
ResponseEntity r = (ResponseEntity) httpRequestFunction.apply(message);
|
||||
assertThat(r.getBody()).isEqualTo(json);
|
||||
assertThat(r.getStatusCode().is2xxSuccessful()).isTrue();
|
||||
assertThat(r.getHeaders().getContentType()).isEqualTo(MediaType.APPLICATION_JSON);
|
||||
RecordedRequest request = server.takeRequest(100, TimeUnit.MILLISECONDS);
|
||||
assertThat(request.getMethod()).isEqualTo("POST");
|
||||
});
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -106,26 +103,27 @@ public class HttpRequestFunctionTestApplicationTests {
|
||||
server.setDispatcher(new Dispatcher() {
|
||||
@Override
|
||||
public MockResponse dispatch(RecordedRequest recordedRequest) {
|
||||
return new MockResponse().setHeader(HttpHeaders.CONTENT_TYPE,
|
||||
recordedRequest.getHeader(HttpHeaders.CONTENT_TYPE))
|
||||
return new MockResponse()
|
||||
.setHeader(HttpHeaders.CONTENT_TYPE, recordedRequest.getHeader(HttpHeaders.CONTENT_TYPE))
|
||||
.setBody(recordedRequest.getBody())
|
||||
.setResponseCode(HttpStatus.CREATED.value());
|
||||
}
|
||||
});
|
||||
|
||||
runner.withPropertyValues("http.request.http-method-expression='POST'",
|
||||
"http.request.expected-response-type=" + Map.class.getName()).run(context -> {
|
||||
HttpRequestFunction httpRequestFunction = context.getBean(HttpRequestFunction.class);
|
||||
Map<String, String> json = Collections.singletonMap("hello", "world");
|
||||
Message<?> message = MessageBuilder.withPayload(json)
|
||||
.build();
|
||||
ResponseEntity r = (ResponseEntity) httpRequestFunction.apply(message);
|
||||
assertThat(r.getBody()).isEqualTo(json);
|
||||
assertThat(r.getStatusCode().is2xxSuccessful()).isTrue();
|
||||
assertThat(r.getHeaders().getContentType()).isEqualTo(MediaType.APPLICATION_JSON);
|
||||
RecordedRequest request = server.takeRequest(100, TimeUnit.MILLISECONDS);
|
||||
assertThat(request.getMethod()).isEqualTo("POST");
|
||||
});
|
||||
runner
|
||||
.withPropertyValues("http.request.http-method-expression='POST'",
|
||||
"http.request.expected-response-type=" + Map.class.getName())
|
||||
.run(context -> {
|
||||
HttpRequestFunction httpRequestFunction = context.getBean(HttpRequestFunction.class);
|
||||
Map<String, String> json = Collections.singletonMap("hello", "world");
|
||||
Message<?> message = MessageBuilder.withPayload(json).build();
|
||||
ResponseEntity r = (ResponseEntity) httpRequestFunction.apply(message);
|
||||
assertThat(r.getBody()).isEqualTo(json);
|
||||
assertThat(r.getStatusCode().is2xxSuccessful()).isTrue();
|
||||
assertThat(r.getHeaders().getContentType()).isEqualTo(MediaType.APPLICATION_JSON);
|
||||
RecordedRequest request = server.takeRequest(100, TimeUnit.MILLISECONDS);
|
||||
assertThat(request.getMethod()).isEqualTo("POST");
|
||||
});
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -133,24 +131,25 @@ public class HttpRequestFunctionTestApplicationTests {
|
||||
server.setDispatcher(new Dispatcher() {
|
||||
@Override
|
||||
public MockResponse dispatch(RecordedRequest recordedRequest) {
|
||||
return new MockResponse().setHeader(HttpHeaders.CONTENT_TYPE,
|
||||
recordedRequest.getHeader(HttpHeaders.CONTENT_TYPE))
|
||||
.setBody(recordedRequest.getBody())
|
||||
.setResponseCode(HttpStatus.ACCEPTED.value());
|
||||
return new MockResponse()
|
||||
.setHeader(HttpHeaders.CONTENT_TYPE, recordedRequest.getHeader(HttpHeaders.CONTENT_TYPE))
|
||||
.setBody(recordedRequest.getBody())
|
||||
.setResponseCode(HttpStatus.ACCEPTED.value());
|
||||
}
|
||||
});
|
||||
|
||||
runner.withPropertyValues("http.request.http-method-expression='DELETE'",
|
||||
"http.request.expected-response-type=" + Void.class.getName()).run(context -> {
|
||||
HttpRequestFunction httpRequestFunction = context.getBean(HttpRequestFunction.class);
|
||||
Message<?> message = MessageBuilder.withPayload("")
|
||||
.build();
|
||||
ResponseEntity r = (ResponseEntity) httpRequestFunction.apply(message);
|
||||
assertThat(r.getBody()).isNull();
|
||||
assertThat(r.getStatusCode().is2xxSuccessful()).isTrue();
|
||||
RecordedRequest request = server.takeRequest(100, TimeUnit.MILLISECONDS);
|
||||
assertThat(request.getMethod()).isEqualTo("DELETE");
|
||||
});
|
||||
runner
|
||||
.withPropertyValues("http.request.http-method-expression='DELETE'",
|
||||
"http.request.expected-response-type=" + Void.class.getName())
|
||||
.run(context -> {
|
||||
HttpRequestFunction httpRequestFunction = context.getBean(HttpRequestFunction.class);
|
||||
Message<?> message = MessageBuilder.withPayload("").build();
|
||||
ResponseEntity r = (ResponseEntity) httpRequestFunction.apply(message);
|
||||
assertThat(r.getBody()).isNull();
|
||||
assertThat(r.getStatusCode().is2xxSuccessful()).isTrue();
|
||||
RecordedRequest request = server.takeRequest(100, TimeUnit.MILLISECONDS);
|
||||
assertThat(request.getMethod()).isEqualTo("DELETE");
|
||||
});
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -173,17 +172,15 @@ public class HttpRequestFunctionTestApplicationTests {
|
||||
server.setDispatcher(new Dispatcher() {
|
||||
@Override
|
||||
public MockResponse dispatch(RecordedRequest recordedRequest) {
|
||||
return new MockResponse().setHeader(HttpHeaders.CONTENT_TYPE,
|
||||
recordedRequest.getHeader(HttpHeaders.ACCEPT))
|
||||
.setBody(recordedRequest.getBody())
|
||||
.setResponseCode(HttpStatus.OK.value());
|
||||
return new MockResponse()
|
||||
.setHeader(HttpHeaders.CONTENT_TYPE, recordedRequest.getHeader(HttpHeaders.ACCEPT))
|
||||
.setBody(recordedRequest.getBody())
|
||||
.setResponseCode(HttpStatus.OK.value());
|
||||
}
|
||||
});
|
||||
|
||||
runner.withPropertyValues(
|
||||
"http.request.url-expression=headers['url']",
|
||||
"http.request.http-method-expression=headers['method']",
|
||||
"http.request.body-expression=headers['body']",
|
||||
runner.withPropertyValues("http.request.url-expression=headers['url']",
|
||||
"http.request.http-method-expression=headers['method']", "http.request.body-expression=headers['body']",
|
||||
"http.request.headers-expression={Accept:'application/json'}")
|
||||
.run(context -> {
|
||||
Message<?> message = MessageBuilder.withPayload("")
|
||||
@@ -196,8 +193,7 @@ public class HttpRequestFunctionTestApplicationTests {
|
||||
ResponseEntity responseEntity = (ResponseEntity) httpRequestFunction.apply(message);
|
||||
assertThat(responseEntity.getStatusCode()).isEqualTo(HttpStatus.OK);
|
||||
assertThat(responseEntity.getBody()).isEqualTo(message.getHeaders().get("body"));
|
||||
assertThat(responseEntity.getHeaders().getContentType())
|
||||
.isEqualTo(MediaType.APPLICATION_JSON);
|
||||
assertThat(responseEntity.getHeaders().getContentType()).isEqualTo(MediaType.APPLICATION_JSON);
|
||||
});
|
||||
}
|
||||
|
||||
@@ -206,25 +202,23 @@ public class HttpRequestFunctionTestApplicationTests {
|
||||
server.setDispatcher(new Dispatcher() {
|
||||
@Override
|
||||
public MockResponse dispatch(RecordedRequest recordedRequest) {
|
||||
return new MockResponse().setHeader(HttpHeaders.CONTENT_TYPE,
|
||||
recordedRequest.getHeader(HttpHeaders.CONTENT_TYPE))
|
||||
.setBody(recordedRequest.getBody())
|
||||
.setResponseCode(HttpStatus.OK.value());
|
||||
return new MockResponse()
|
||||
.setHeader(HttpHeaders.CONTENT_TYPE, recordedRequest.getHeader(HttpHeaders.CONTENT_TYPE))
|
||||
.setBody(recordedRequest.getBody())
|
||||
.setResponseCode(HttpStatus.OK.value());
|
||||
}
|
||||
});
|
||||
runner.withPropertyValues(
|
||||
"http.request..http-method-expression='POST'",
|
||||
"http.request.headers-expression={'Content-Type':'application/octet-stream'}",
|
||||
"http.request.expected-response-type=byte[]")
|
||||
runner
|
||||
.withPropertyValues("http.request..http-method-expression='POST'",
|
||||
"http.request.headers-expression={'Content-Type':'application/octet-stream'}",
|
||||
"http.request.expected-response-type=byte[]")
|
||||
.run(context -> {
|
||||
Message<?> message = MessageBuilder.withPayload("hello")
|
||||
.build();
|
||||
Message<?> message = MessageBuilder.withPayload("hello").build();
|
||||
HttpRequestFunction httpRequestFunction = context.getBean(HttpRequestFunction.class);
|
||||
ResponseEntity responseEntity = (ResponseEntity) httpRequestFunction.apply(message);
|
||||
assertThat(responseEntity.getStatusCode()).isEqualTo(HttpStatus.OK);
|
||||
assertThat(responseEntity.getBody()).isEqualTo("hello".getBytes());
|
||||
assertThat(responseEntity.getHeaders().getContentType())
|
||||
.isEqualTo(MediaType.APPLICATION_OCTET_STREAM);
|
||||
assertThat(responseEntity.getHeaders().getContentType()).isEqualTo(MediaType.APPLICATION_OCTET_STREAM);
|
||||
});
|
||||
}
|
||||
|
||||
@@ -233,17 +227,14 @@ public class HttpRequestFunctionTestApplicationTests {
|
||||
server.setDispatcher(new Dispatcher() {
|
||||
@Override
|
||||
public MockResponse dispatch(RecordedRequest recordedRequest) {
|
||||
return new MockResponse()
|
||||
.setBody(recordedRequest.getBody())
|
||||
.setHeader("method", recordedRequest.getMethod())
|
||||
.setResponseCode(HttpStatus.OK.value());
|
||||
return new MockResponse().setBody(recordedRequest.getBody())
|
||||
.setHeader("method", recordedRequest.getMethod())
|
||||
.setResponseCode(HttpStatus.OK.value());
|
||||
}
|
||||
});
|
||||
runner.withPropertyValues(
|
||||
"http.request.http-method-expression=#jsonPath(payload,'$.myMethod')")
|
||||
runner.withPropertyValues("http.request.http-method-expression=#jsonPath(payload,'$.myMethod')")
|
||||
.run(context -> {
|
||||
Message<?> message = MessageBuilder
|
||||
.withPayload("{\"name\":\"Fred\",\"age\":41, \"myMethod\":\"POST\"}")
|
||||
Message<?> message = MessageBuilder.withPayload("{\"name\":\"Fred\",\"age\":41, \"myMethod\":\"POST\"}")
|
||||
.build();
|
||||
HttpRequestFunction httpRequestFunction = context.getBean(HttpRequestFunction.class);
|
||||
ResponseEntity responseEntity = (ResponseEntity) httpRequestFunction.apply(message);
|
||||
@@ -258,5 +249,7 @@ public class HttpRequestFunctionTestApplicationTests {
|
||||
|
||||
@SpringBootApplication
|
||||
static class HttpRequestFunctionTestApplication {
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user