contract-testing-demo

pact and java contract testing with micro-commits

git clone https://9o.is/git/contract-testing-demo.git

commit c7b5f18fc154e9ba5bc09e05e8c98e717e1bc3c3
parent cc16e125dc76cf9b986b553c5af286f3b56ffad1
Author: Jul <jul@9o.is>
Date:   Wed, 26 Jun 2019 15:44:06 -0400

Return 404 if alligator is not found

Error:
java.lang.AssertionError:
      0 - expected status of 404 but was 200

Diffstat:
Mconsumer-driven/animal-service/src/main/java/app/alligator/AlligatorController.java | 9++++++++-
Aconsumer-driven/animal-service/src/main/java/app/alligator/AlligatorNotFoundException.java | 7+++++++
2 files changed, 15 insertions(+), 1 deletion(-)

diff --git a/consumer-driven/animal-service/src/main/java/app/alligator/AlligatorController.java b/consumer-driven/animal-service/src/main/java/app/alligator/AlligatorController.java @@ -15,6 +15,13 @@ public class AlligatorController { @GetMapping("/alligators/{name}") public Alligator getByName(@PathVariable String name) { - return alligatorRepository.getByName(name); + Alligator alligator = + alligatorRepository.getByName(name); + + if (alligator == null) { + throw new AlligatorNotFoundException(); + } + + return alligator; } } diff --git a/consumer-driven/animal-service/src/main/java/app/alligator/AlligatorNotFoundException.java b/consumer-driven/animal-service/src/main/java/app/alligator/AlligatorNotFoundException.java @@ -0,0 +1,7 @@ +package app.alligator; + +import org.springframework.http.HttpStatus; +import org.springframework.web.bind.annotation.ResponseStatus; + +@ResponseStatus(HttpStatus.NOT_FOUND) +class AlligatorNotFoundException extends RuntimeException {}