diff --git a/samples/standalone/dsl/http-client/pom.xml b/samples/standalone/dsl/http-client/pom.xml
index f1dd1d29dc..c185da2fd9 100644
--- a/samples/standalone/dsl/http-client/pom.xml
+++ b/samples/standalone/dsl/http-client/pom.xml
@@ -41,6 +41,7 @@
org.springframework.cloud
spring-cloud-starter-contract-stub-runner
+ 1.1.0.BUILD-SNAPSHOT
test
diff --git a/samples/standalone/dsl/http-client/src/main/java/com/example/loan/LoanApplicationService.java b/samples/standalone/dsl/http-client/src/main/java/com/example/loan/LoanApplicationService.java
index 5c397e6144..c91df67aea 100644
--- a/samples/standalone/dsl/http-client/src/main/java/com/example/loan/LoanApplicationService.java
+++ b/samples/standalone/dsl/http-client/src/main/java/com/example/loan/LoanApplicationService.java
@@ -15,6 +15,7 @@ import com.example.loan.model.FraudServiceResponse;
import com.example.loan.model.LoanApplication;
import com.example.loan.model.LoanApplicationResult;
import com.example.loan.model.LoanApplicationStatus;
+import com.example.loan.model.Response;
@Service
public class LoanApplicationService {
@@ -67,6 +68,26 @@ public class LoanApplicationService {
return new LoanApplicationResult(applicationStatus, response.getRejectionReason());
}
+ public int countAllFrauds() {
+ HttpHeaders httpHeaders = new HttpHeaders();
+ httpHeaders.add(HttpHeaders.CONTENT_TYPE, FRAUD_SERVICE_JSON_VERSION_1);
+ ResponseEntity response =
+ restTemplate.exchange("http://localhost:" + port + "/frauds", HttpMethod.GET,
+ new HttpEntity<>(httpHeaders),
+ Response.class);
+ return response.getBody().getCount();
+ }
+
+ public int countDrunks() {
+ HttpHeaders httpHeaders = new HttpHeaders();
+ httpHeaders.add(HttpHeaders.CONTENT_TYPE, FRAUD_SERVICE_JSON_VERSION_1);
+ ResponseEntity response =
+ restTemplate.exchange("http://localhost:" + port + "/drunks", HttpMethod.GET,
+ new HttpEntity<>(httpHeaders),
+ Response.class);
+ return response.getBody().getCount();
+ }
+
public void setPort(int port) {
this.port = port;
}
diff --git a/samples/standalone/dsl/http-client/src/main/java/com/example/loan/model/Response.java b/samples/standalone/dsl/http-client/src/main/java/com/example/loan/model/Response.java
new file mode 100644
index 0000000000..8335ee0cc6
--- /dev/null
+++ b/samples/standalone/dsl/http-client/src/main/java/com/example/loan/model/Response.java
@@ -0,0 +1,20 @@
+package com.example.loan.model;
+
+public class Response {
+ private int count;
+
+ public Response(int count) {
+ this.count = count;
+ }
+
+ public Response() {
+ }
+
+ public int getCount() {
+ return this.count;
+ }
+
+ public void setCount(int count) {
+ this.count = count;
+ }
+}
\ No newline at end of file
diff --git a/samples/standalone/dsl/http-client/src/test/java/com/example/loan/LoanApplicationServiceTests.java b/samples/standalone/dsl/http-client/src/test/java/com/example/loan/LoanApplicationServiceTests.java
index f5755c22bd..6a7bc3d207 100644
--- a/samples/standalone/dsl/http-client/src/test/java/com/example/loan/LoanApplicationServiceTests.java
+++ b/samples/standalone/dsl/http-client/src/test/java/com/example/loan/LoanApplicationServiceTests.java
@@ -1,7 +1,5 @@
package com.example.loan;
-import static org.assertj.core.api.Assertions.assertThat;
-
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
@@ -16,6 +14,8 @@ import com.example.loan.model.LoanApplication;
import com.example.loan.model.LoanApplicationResult;
import com.example.loan.model.LoanApplicationStatus;
+import static org.assertj.core.api.Assertions.assertThat;
+
// tag::autoconfigure_stubrunner[]
@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment=WebEnvironment.NONE)
@@ -55,4 +55,20 @@ public class LoanApplicationServiceTests {
}
// end::client_tdd[]
+ @Test
+ public void shouldSuccessfullyGetAllFrauds() {
+ // when:
+ int count = service.countAllFrauds();
+ // then:
+ assertThat(count).isEqualTo(200);
+ }
+
+ @Test
+ public void shouldSuccessfullyGetAllDrunks() {
+ // when:
+ int count = service.countDrunks();
+ // then:
+ assertThat(count).isEqualTo(100);
+ }
+
}
diff --git a/samples/standalone/dsl/http-server/src/main/java/com/example/fraud/FraudStatsController.java b/samples/standalone/dsl/http-server/src/main/java/com/example/fraud/FraudStatsController.java
index 015c8f7513..5b27668600 100644
--- a/samples/standalone/dsl/http-server/src/main/java/com/example/fraud/FraudStatsController.java
+++ b/samples/standalone/dsl/http-server/src/main/java/com/example/fraud/FraudStatsController.java
@@ -17,17 +17,16 @@ public class FraudStatsController {
@GetMapping(
value = "/frauds",
produces = FRAUD_SERVICE_JSON_VERSION_1)
- public int countAllFrauds() {
- return this.statsProvider.count(FraudType.ALL);
+ public Response countAllFrauds() {
+ return new Response(this.statsProvider.count(FraudType.ALL));
}
@GetMapping(
value = "/drunks",
produces = FRAUD_SERVICE_JSON_VERSION_1)
- public int countAllDrunks() {
- return this.statsProvider.count(FraudType.DRUNKS);
+ public Response countAllDrunks() {
+ return new Response(this.statsProvider.count(FraudType.DRUNKS));
}
-
}
enum FraudType {
@@ -37,3 +36,23 @@ enum FraudType {
interface StatsProvider {
int count(FraudType fraudType);
}
+
+class Response {
+ private int count;
+
+ public Response(int count) {
+ this.count = count;
+ }
+
+ public Response() {
+ }
+
+ public int getCount() {
+ return this.count;
+ }
+
+ public void setCount(int count) {
+ this.count = count;
+ }
+}
+