-
Notifications
You must be signed in to change notification settings - Fork 38.9k
Description
package org.example.endpoint.controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.nio.charset.StandardCharsets;
@RestController
@RequestMapping(path = "/demo")
public class DemoController {
@GetMapping(value = "/byteArray")
public byte[] byteArray() {
return "hello world".getBytes(StandardCharsets.UTF_8);
}
@GetMapping(value = "/string")
public String string() {
return "hello world";
}
}
package org.example.endpoint.controller;
import lombok.extern.slf4j.Slf4j;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.junit.jupiter.MockitoExtension;
import org.springframework.http.converter.json.JacksonJsonHttpMessageConverter;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.MvcResult;
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
import org.springframework.test.web.servlet.setup.MockMvcBuilders;
import tools.jackson.databind.json.JsonMapper;
import java.nio.charset.StandardCharsets;
import static org.junit.jupiter.api.Assertions.assertArrayEquals;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
@slf4j
@ExtendWith(MockitoExtension.class)
class DemoTest {
private static final String BASE_URL = "/demo";
private final JsonMapper objectMapper = new JsonMapper();
@Test
void byteArray() throws Exception {
MockMvc mockMvc = MockMvcBuilders.standaloneSetup(new DemoController()).build();
String expected = "hello world";
MvcResult mvcResult = mockMvc.perform(MockMvcRequestBuilders.get(BASE_URL + "/byteArray"))
.andExpect(status().isOk()).andReturn();
byte[] actual = mvcResult.getResponse().getContentAsByteArray();
assertArrayEquals(expected.getBytes(StandardCharsets.UTF_8), actual);
}
@Test
void string() throws Exception {
MockMvc mockMvc = MockMvcBuilders.standaloneSetup(new DemoController()).build();
String expected = "hello world";
MvcResult mvcResult = mockMvc.perform(MockMvcRequestBuilders.get(BASE_URL + "/string"))
.andExpect(status().isOk()).andReturn();
String actual = mvcResult.getResponse().getContentAsString();
assertEquals(expected, actual);
}
@Test
void byteArray2() throws Exception {
MockMvc mockMvc = MockMvcBuilders.standaloneSetup(new DemoController())
.setMessageConverters(new JacksonJsonHttpMessageConverter(objectMapper))
.build();
String expected = "hello world";
MvcResult mvcResult = mockMvc.perform(MockMvcRequestBuilders.get(BASE_URL + "/byteArray"))
.andExpect(status().isOk()).andReturn();
byte[] actual = mvcResult.getResponse().getContentAsByteArray();
assertArrayEquals(expected.getBytes(StandardCharsets.UTF_8), actual);
}
@Test
void string2() throws Exception {
MockMvc mockMvc = MockMvcBuilders.standaloneSetup(new DemoController())
.setMessageConverters(new JacksonJsonHttpMessageConverter(objectMapper))
.build();
String expected = "hello world";
MvcResult mvcResult = mockMvc.perform(MockMvcRequestBuilders.get(BASE_URL + "/string"))
.andExpect(status().isOk()).andReturn();
String actual = mvcResult.getResponse().getContentAsString();
assertEquals(expected, actual);
}
}