From fa2e225d6306ab78d00b45be666f208374991476 Mon Sep 17 00:00:00 2001 From: Loredana Crusoveanu Date: Mon, 8 Jan 2018 21:13:31 +0200 Subject: [PATCH] add requested changes --- .../com/baeldung/restdocs/CRUDController.java | 15 ++++++---- ...ApiDocumentationJUnit4IntegrationTest.java | 24 +++++++-------- ...ApiDocumentationJUnit5IntegrationTest.java | 30 +++++++------------ 3 files changed, 30 insertions(+), 39 deletions(-) diff --git a/spring-5/src/main/java/com/baeldung/restdocs/CRUDController.java b/spring-5/src/main/java/com/baeldung/restdocs/CRUDController.java index 9c8e436fa9..f6183bc79e 100644 --- a/spring-5/src/main/java/com/baeldung/restdocs/CRUDController.java +++ b/spring-5/src/main/java/com/baeldung/restdocs/CRUDController.java @@ -5,8 +5,11 @@ import static org.springframework.hateoas.mvc.ControllerLinkBuilder.linkTo; import java.util.ArrayList; import java.util.List; +import javax.validation.Valid; + import org.springframework.http.HttpHeaders; import org.springframework.http.HttpStatus; +import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PatchMapping; @@ -23,33 +26,33 @@ import org.springframework.web.bind.annotation.RestController; public class CRUDController { @GetMapping - public List read(@RequestBody CrudInput crudInput) { - List returnList = new ArrayList(); + public List read(@RequestBody @Valid CrudInput crudInput) { + List returnList = new ArrayList<>(); returnList.add(crudInput); return returnList; } @ResponseStatus(HttpStatus.CREATED) @PostMapping - public HttpHeaders save(@RequestBody CrudInput crudInput) { + public HttpHeaders save(@RequestBody @Valid CrudInput crudInput) { HttpHeaders httpHeaders = new HttpHeaders(); httpHeaders.setLocation(linkTo(CRUDController.class).slash(crudInput.getId()).toUri()); return httpHeaders; } - @DeleteMapping(value = "/{id}") + @DeleteMapping("/{id}") @ResponseStatus(HttpStatus.OK) HttpHeaders delete(@PathVariable("id") long id) { return new HttpHeaders(); } - @PutMapping(value = "/{id}") + @PutMapping("/{id}") @ResponseStatus(HttpStatus.ACCEPTED) void put(@PathVariable("id") long id, @RequestBody CrudInput crudInput) { } - @PatchMapping(value = "/{id}") + @PatchMapping("/{id}") public List patch(@PathVariable("id") long id, @RequestBody CrudInput crudInput) { List returnList = new ArrayList(); crudInput.setId(id); diff --git a/spring-5/src/test/java/com/baeldung/restdocs/ApiDocumentationJUnit4IntegrationTest.java b/spring-5/src/test/java/com/baeldung/restdocs/ApiDocumentationJUnit4IntegrationTest.java index de1d3f8b6a..20f0a47d83 100644 --- a/spring-5/src/test/java/com/baeldung/restdocs/ApiDocumentationJUnit4IntegrationTest.java +++ b/spring-5/src/test/java/com/baeldung/restdocs/ApiDocumentationJUnit4IntegrationTest.java @@ -75,20 +75,18 @@ public class ApiDocumentationJUnit4IntegrationTest { @Test public void crudGetExample() throws Exception { - Map tag = new HashMap<>(); - tag.put("name", "GET"); + Map crud = new HashMap<>(); + crud.put("id", 1L); + crud.put("title", "Sample Model"); + crud.put("body", "http://www.baeldung.com/"); String tagLocation = this.mockMvc.perform(get("/crud").contentType(MediaTypes.HAL_JSON) - .content(this.objectMapper.writeValueAsString(tag))) + .content(this.objectMapper.writeValueAsString(crud))) .andExpect(status().isOk()) .andReturn() .getResponse() .getHeader("Location"); - Map crud = new HashMap<>(); - crud.put("id", 1L); - crud.put("title", "Sample Model"); - crud.put("body", "http://www.baeldung.com/"); crud.put("tags", singletonList(tagLocation)); ConstraintDescriptions desc = new ConstraintDescriptions(CrudInput.class); @@ -102,20 +100,18 @@ public class ApiDocumentationJUnit4IntegrationTest { @Test public void crudCreateExample() throws Exception { - Map tag = new HashMap<>(); - tag.put("name", "CREATE"); + Map crud = new HashMap<>(); + crud.put("id", 2L); + crud.put("title", "Sample Model"); + crud.put("body", "http://www.baeldung.com/"); String tagLocation = this.mockMvc.perform(post("/crud").contentType(MediaTypes.HAL_JSON) - .content(this.objectMapper.writeValueAsString(tag))) + .content(this.objectMapper.writeValueAsString(crud))) .andExpect(status().isCreated()) .andReturn() .getResponse() .getHeader("Location"); - Map crud = new HashMap<>(); - crud.put("id", 2L); - crud.put("title", "Sample Model"); - crud.put("body", "http://www.baeldung.com/"); crud.put("tags", singletonList(tagLocation)); this.mockMvc.perform(post("/crud").contentType(MediaTypes.HAL_JSON) diff --git a/spring-5/src/test/java/com/baeldung/restdocs/ApiDocumentationJUnit5IntegrationTest.java b/spring-5/src/test/java/com/baeldung/restdocs/ApiDocumentationJUnit5IntegrationTest.java index d915a4fdde..748d5fb1b3 100644 --- a/spring-5/src/test/java/com/baeldung/restdocs/ApiDocumentationJUnit5IntegrationTest.java +++ b/spring-5/src/test/java/com/baeldung/restdocs/ApiDocumentationJUnit5IntegrationTest.java @@ -7,11 +7,7 @@ import static org.springframework.restdocs.hypermedia.HypermediaDocumentation.li import static org.springframework.restdocs.hypermedia.HypermediaDocumentation.links; import static org.springframework.restdocs.mockmvc.MockMvcRestDocumentation.document; import static org.springframework.restdocs.mockmvc.MockMvcRestDocumentation.documentationConfiguration; -import static org.springframework.restdocs.mockmvc.RestDocumentationRequestBuilders.delete; -import static org.springframework.restdocs.mockmvc.RestDocumentationRequestBuilders.get; -import static org.springframework.restdocs.mockmvc.RestDocumentationRequestBuilders.patch; -import static org.springframework.restdocs.mockmvc.RestDocumentationRequestBuilders.post; -import static org.springframework.restdocs.mockmvc.RestDocumentationRequestBuilders.put; +import static org.springframework.restdocs.mockmvc.RestDocumentationRequestBuilders.*; import static org.springframework.restdocs.operation.preprocess.Preprocessors.preprocessRequest; import static org.springframework.restdocs.operation.preprocess.Preprocessors.preprocessResponse; import static org.springframework.restdocs.operation.preprocess.Preprocessors.prettyPrint; @@ -72,20 +68,18 @@ public class ApiDocumentationJUnit5IntegrationTest { @Test public void crudGetExample() throws Exception { - Map tag = new HashMap<>(); - tag.put("name", "GET"); + Map crud = new HashMap<>(); + crud.put("id", 1L); + crud.put("title", "Sample Model"); + crud.put("body", "http://www.baeldung.com/"); String tagLocation = this.mockMvc.perform(get("/crud").contentType(MediaTypes.HAL_JSON) - .content(this.objectMapper.writeValueAsString(tag))) + .content(this.objectMapper.writeValueAsString(crud))) .andExpect(status().isOk()) .andReturn() .getResponse() .getHeader("Location"); - Map crud = new HashMap<>(); - crud.put("id", 1L); - crud.put("title", "Sample Model"); - crud.put("body", "http://www.baeldung.com/"); crud.put("tags", singletonList(tagLocation)); ConstraintDescriptions desc = new ConstraintDescriptions(CrudInput.class); @@ -99,20 +93,18 @@ public class ApiDocumentationJUnit5IntegrationTest { @Test public void crudCreateExample() throws Exception { - Map tag = new HashMap<>(); - tag.put("name", "CREATE"); + Map crud = new HashMap<>(); + crud.put("id", 2L); + crud.put("title", "Sample Model"); + crud.put("body", "http://www.baeldung.com/"); String tagLocation = this.mockMvc.perform(post("/crud").contentType(MediaTypes.HAL_JSON) - .content(this.objectMapper.writeValueAsString(tag))) + .content(this.objectMapper.writeValueAsString(crud))) .andExpect(status().isCreated()) .andReturn() .getResponse() .getHeader("Location"); - Map crud = new HashMap<>(); - crud.put("id", 2L); - crud.put("title", "Sample Model"); - crud.put("body", "http://www.baeldung.com/"); crud.put("tags", singletonList(tagLocation)); this.mockMvc.perform(post("/crud").contentType(MediaTypes.HAL_JSON)