package controller;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
import java.util.HashMap;
import java.util.Map;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.context.annotation.Import;
import org.springframework.http.MediaType;
import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.ResultActions;
import org.springframework.test.web.servlet.request.MockHttpServletRequestBuilder;
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
import org.springframework.test.web.servlet.result.MockMvcResultHandlers;
import org.springframework.test.web.servlet.setup.MockMvcBuilders;
import org.springframework.web.context.WebApplicationContext;
import com.alibaba.fastjson2.JSONObject;
import com.example.demo.DemoApplication;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.github.dockerjava.api.model.Config;
import pojo.Employee;
@RunWith(SpringRunner.class)
@SpringBootTest(classes = DemoApplication.class, webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
@Import(Config.class)
public class EmployeeControllerTest {
@Autowired
protected WebApplicationContext wac;
private MockMvc mockMvc;
@Test
public void u_1_add() throws Exception {
Map
Employee emp = creatEmp();
writeToMap(emp, map);
MockHttpServletRequestBuilder request = MockMvcRequestBuilders.post("/emp/add");
ObjectMapper mapper = new ObjectMapper();
String ss = mapper.writeValueAsString(map);
System.out.println(ss);
request.content(mapper.writeValueAsString(map)).contentType(MediaType.APPLICATION_JSON_VALUE);
// .header("Authorization", token)
//
ResultActions matcher = this.mockMvc.perform(request).andExpect(status().isOk());
// .andExpect(content().contentType(MediaType.APPLICATION_JSON_UTF8).);
matcher.andDo(MockMvcResultHandlers.print());
String responseStr = matcher.andReturn().getResponse().getContentAsString();
JSONObject object = (JSONObject) JSONObject.parseObject(responseStr);
int status = object.getIntValue("status");
String msg = object.getString("msg");
assertEquals(status, 0);
assertEquals(msg, "success");
}
@BeforeEach
// @BeforeAll
public void setup() {
this.mockMvc = MockMvcBuilders.webAppContextSetup(wac).build();
}
public void writeToMap(Employee emp, Map map) {
map.put("empName", emp.getEmpName());
map.put("empSN", emp.getEmpSN());
map.put("phoneNO", emp.getPhoneNO());
}
public Employee creatEmp() {
return new Employee("Black, Smith", "20190121", "0118333");
}
}