Update vetsXml test using xpath

This commit is contained in:
Antoine Rey 2016-06-28 08:11:40 +02:00
parent 647985cdaf
commit 4c722465d8
2 changed files with 16 additions and 16 deletions

View file

@ -41,7 +41,7 @@ public class VetController {
this.clinicService = clinicService; this.clinicService = clinicService;
} }
@RequestMapping(value = {"/vets.xml", "/vets.html"}) @RequestMapping(value = { "/vets.html"})
public String showVetList(Map<String, Object> model) { public String showVetList(Map<String, Object> model) {
// Here we are returning an object of type 'Vets' rather than a collection of Vet objects // Here we are returning an object of type 'Vets' rather than a collection of Vet objects
// so it is simpler for Object-Xml mapping // so it is simpler for Object-Xml mapping
@ -51,7 +51,7 @@ public class VetController {
return "vets/vetList"; return "vets/vetList";
} }
@RequestMapping("/vets.json") @RequestMapping(value = { "/vets.json", "/vets.xml"})
public public
@ResponseBody @ResponseBody
Vets showResourcesVetList() { Vets showResourcesVetList() {

View file

@ -1,8 +1,5 @@
package org.springframework.samples.petclinic.web; 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.Before;
import org.junit.Test; import org.junit.Test;
import org.junit.runner.RunWith; 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.ResultActions;
import org.springframework.test.web.servlet.setup.MockMvcBuilders; 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} * Test class for the {@link VetController}
*/ */
@ -35,14 +36,12 @@ public class VetControllerTests {
this.mockMvc = MockMvcBuilders.standaloneSetup(vetController).build(); this.mockMvc = MockMvcBuilders.standaloneSetup(vetController).build();
} }
@Test
public void testShowVetListXml() throws Exception {
testShowVetList("/vets.xml");
}
@Test @Test
public void testShowVetListHtml() throws Exception { 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 @Test
@ -53,12 +52,13 @@ public class VetControllerTests {
.andExpect(jsonPath("$.vetList[0].id").value(1)); .andExpect(jsonPath("$.vetList[0].id").value(1));
} }
private void testShowVetList(String url) throws Exception { @Test
mockMvc.perform(get(url)) public void testShowVetListXml() throws Exception {
mockMvc.perform(get("/vets.xml").accept(MediaType.APPLICATION_XML))
.andExpect(status().isOk()) .andExpect(status().isOk())
.andExpect(model().attributeExists("vets")) .andExpect(content().contentType(MediaType.APPLICATION_XML_VALUE))
.andExpect(view().name("vets/vetList")); .andExpect(content().node(hasXPath("/vets/vetList[id=1]/id")));
} }
} }