From 334ca3ba539867dc931ad31897b5c21c771f42f5 Mon Sep 17 00:00:00 2001 From: kimhyungkook Date: Thu, 14 Nov 2019 16:18:56 +0900 Subject: [PATCH 1/2] Update ProductController.java --- .../com/example/template/ProductController.java | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/example/template/ProductController.java b/src/main/java/com/example/template/ProductController.java index ffac065..958cb57 100644 --- a/src/main/java/com/example/template/ProductController.java +++ b/src/main/java/com/example/template/ProductController.java @@ -11,13 +11,13 @@ public class ProductController { @Autowired ProductService productService; -// @GetMapping("/item/{productId}") -// Product productStockCheck(@PathVariable(value = "productId") Long productId) { -// return this.productService.getProductById(productId); -// } + @GetMapping("/item/{productId}") + Product productStockCheck(@PathVariable(value = "productId") Long productId) { + return this.productService.getProductById(productId); + } - @GetMapping("/product/{productId}") - Product productStockCheck1(@PathVariable(value = "productId") Long productId) { - return this.productService.getProductById(productId); - } +// @GetMapping("/product/{productId}") +// Product productStockCheck1(@PathVariable(value = "productId") Long productId) { +// return this.productService.getProductById(productId); +// } } From 06c049b9183cd3d3b6e275f5d6a71af35be5c1d4 Mon Sep 17 00:00:00 2001 From: kimhyungkook Date: Thu, 14 Nov 2019 16:26:49 +0900 Subject: [PATCH 2/2] Create productGet.groovy --- .../contracts/rest/productGet.groovy | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 src/test/resources/contracts/rest/productGet.groovy diff --git a/src/test/resources/contracts/rest/productGet.groovy b/src/test/resources/contracts/rest/productGet.groovy new file mode 100644 index 0000000..8cee3b9 --- /dev/null +++ b/src/test/resources/contracts/rest/productGet.groovy @@ -0,0 +1,31 @@ +package contracts.rest + +org.springframework.cloud.contract.spec.Contract.make { + request { + method 'GET' + url ('/product/1') + headers { + contentType(applicationJson()) + } + } + response { + status 200 + body( + id: 1, + name: "TV", + price: 10000, + stock: 10, + imageUrl: "testUrl" + ) + bodyMatchers { + jsonPath('$.id', byRegex(nonEmpty()).asLong()) + jsonPath('$.name', byRegex(nonEmpty()).asString()) + jsonPath('$.price', byRegex(nonEmpty()).asLong()) + jsonPath('$.stock', byRegex(nonEmpty()).asLong()) + jsonPath('$.imageUrl', byRegex(nonEmpty()).asString()) + } + headers { + contentType(applicationJson()) + } + } +}