diff --git a/src/main/java/org/springframework/samples/petclinic/web/VetController.java b/src/main/java/org/springframework/samples/petclinic/web/VetController.java index 3121e60e8bc6f20a675237ca830b18911b6056e7..45e650ff1fcfebe19a37135e2effba6b7fa1db9c 100644 --- a/src/main/java/org/springframework/samples/petclinic/web/VetController.java +++ b/src/main/java/org/springframework/samples/petclinic/web/VetController.java @@ -41,7 +41,7 @@ public class VetController { this.clinicService = clinicService; } - @RequestMapping(value = {"/vets.xml", "/vets.html"}) + @RequestMapping(value = { "/vets.html"}) public String showVetList(Map<String, Object> model) { // Here we are returning an object of type 'Vets' rather than a collection of Vet objects // so it is simpler for Object-Xml mapping @@ -51,7 +51,7 @@ public class VetController { return "vets/vetList"; } - @RequestMapping("/vets.json") + @RequestMapping(value = { "/vets.json", "/vets.xml"}) public @ResponseBody Vets showResourcesVetList() { diff --git a/src/test/java/org/springframework/samples/petclinic/web/VetControllerTests.java b/src/test/java/org/springframework/samples/petclinic/web/VetControllerTests.java index 5446c0718e4651342980466709ba93ad2d264abd..8b76fd254b46210bfe7c74062ee6eaf39e337ebe 100644 --- a/src/test/java/org/springframework/samples/petclinic/web/VetControllerTests.java +++ b/src/test/java/org/springframework/samples/petclinic/web/VetControllerTests.java @@ -1,8 +1,5 @@ package org.springframework.samples.petclinic.web; -import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; -import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*; - import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; @@ -16,6 +13,10 @@ import org.springframework.test.web.servlet.MockMvc; import org.springframework.test.web.servlet.ResultActions; import org.springframework.test.web.servlet.setup.MockMvcBuilders; +import static org.hamcrest.xml.HasXPath.hasXPath; +import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*; + /** * Test class for the {@link VetController} */ @@ -35,14 +36,12 @@ public class VetControllerTests { this.mockMvc = MockMvcBuilders.standaloneSetup(vetController).build(); } - @Test - public void testShowVetListXml() throws Exception { - testShowVetList("/vets.xml"); - } - @Test public void testShowVetListHtml() throws Exception { - testShowVetList("/vets.html"); + mockMvc.perform(get("/vets.html")) + .andExpect(status().isOk()) + .andExpect(model().attributeExists("vets")) + .andExpect(view().name("vets/vetList")); } @Test @@ -53,12 +52,13 @@ public class VetControllerTests { .andExpect(jsonPath("$.vetList[0].id").value(1)); } - private void testShowVetList(String url) throws Exception { - mockMvc.perform(get(url)) + @Test + public void testShowVetListXml() throws Exception { + mockMvc.perform(get("/vets.xml").accept(MediaType.APPLICATION_XML)) .andExpect(status().isOk()) - .andExpect(model().attributeExists("vets")) - .andExpect(view().name("vets/vetList")); + .andExpect(content().contentType(MediaType.APPLICATION_XML_VALUE)) + .andExpect(content().node(hasXPath("/vets/vetList[id=1]/id"))); } - } +