package org.springframework.samples.mvc.data;
import static org.hamcrest.Matchers.startsWith;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
import static org.springframework.test.web.servlet.setup.MockMvcBuilders.standaloneSetup;
import org.junit.Before;
import org.junit.Test;
import org.springframework.http.MediaType;
import org.springframework.samples.mvc.data.standard.StandardArgumentsController;
import org.springframework.test.web.servlet.MockMvc;
public class StandardArgumentsControllerTests {
private MockMvc mockMvc;
@Before
public void setup() throws Exception {
this.mockMvc = standaloneSetup(new StandardArgumentsController()).alwaysExpect(status().isOk()).build();
}
@Test
public void request() throws Exception {
this.mockMvc.perform(get("/data/standard/request"))
.andExpect(content().string(startsWith(
"request = org.springframework.mock.web.MockHttpServletRequest@")));
}
@Test
public void requestReader() throws Exception {
this.mockMvc.perform(
post("/data/standard/request/reader")
.contentType(MediaType.TEXT_PLAIN)
.content("foo".getBytes()))
.andExpect(content().string("Read char request body = foo"));
}
@Test
public void requestIs() throws Exception {
this.mockMvc.perform(
post("/data/standard/request/is")
.contentType(MediaType.TEXT_PLAIN)
.content("foo".getBytes()))
.andExpect(content().string("Read binary request body = foo"));
}
@Test
public void response() throws Exception {
this.mockMvc.perform(get("/data/standard/response"))
.andExpect(content().string(startsWith(
"response = org.springframework.mock.web.MockHttpServletResponse@")));
}
@Test
public void writer() throws Exception {
this.mockMvc.perform(get("/data/standard/response/writer"))
.andExpect(content().string("Wrote char response using Writer"));
}
@Test
public void os() throws Exception {
this.mockMvc.perform(get("/data/standard/response/os"))
.andExpect(content().string("Wrote binary response using OutputStream"));
}
@Test
public void session() throws Exception {
this.mockMvc.perform(get("/data/standard/session"))
.andExpect(content().string(startsWith(
"session=org.springframework.mock.web.MockHttpSession@")));
}
}