From 06243abe3c44ee6bb9c98ecb99164b0e8dc731af Mon Sep 17 00:00:00 2001 From: Marcin Grzejszczak Date: Wed, 7 Dec 2016 17:26:07 +0100 Subject: [PATCH] Added a test with multiple contracts in a file --- samples/standalone/dsl/http-client/pom.xml | 1 + .../example/loan/LoanApplicationService.java | 21 ++++++++++++++ .../java/com/example/loan/model/Response.java | 20 +++++++++++++ .../loan/LoanApplicationServiceTests.java | 20 +++++++++++-- .../example/fraud/FraudStatsController.java | 29 +++++++++++++++---- 5 files changed, 84 insertions(+), 7 deletions(-) create mode 100644 samples/standalone/dsl/http-client/src/main/java/com/example/loan/model/Response.java 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; + } +} +