package com.gs.xky.controller;
|
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
import com.gs.xky.dto.NumbericalDto;
|
import org.junit.jupiter.api.Test;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest;
|
import org.springframework.boot.test.mock.mockito.MockBean;
|
import org.springframework.http.MediaType;
|
import org.springframework.test.web.servlet.MockMvc;
|
|
import static org.mockito.ArgumentMatchers.anyString;
|
import static org.mockito.Mockito.when;
|
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post;
|
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath;
|
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
|
|
/**
|
* DingtalkController测试类
|
*
|
* @author 28567
|
* @description 测试钉钉消息发送接口
|
* @createDate 2025-01-27
|
*/
|
@WebMvcTest(DingtalkController.class)
|
public class DingtalkControllerTest {
|
|
@Autowired
|
private MockMvc mockMvc;
|
|
@MockBean
|
private com.gs.xky.service.DingtalkInfoService dingtalkInfoService;
|
|
@Autowired
|
private ObjectMapper objectMapper;
|
|
@Test
|
public void testSendMessage_Success() throws Exception {
|
// 准备测试数据
|
NumbericalDto requestDto = new NumbericalDto();
|
requestDto.setReleaseNo("IQC202501270001");
|
|
// Mock服务层返回成功
|
when(dingtalkInfoService.sendMessage(anyString())).thenReturn(true);
|
|
// 执行测试
|
mockMvc.perform(post("/api/dingtalk/sendMessage")
|
.contentType(MediaType.APPLICATION_JSON)
|
.content(objectMapper.writeValueAsString(requestDto)))
|
.andExpect(status().isOk())
|
.andExpect(jsonPath("$.code").value(200))
|
.andExpect(jsonPath("$.successful").value(0))
|
.andExpect(jsonPath("$.data").value("接收成功"));
|
}
|
|
@Test
|
public void testSendMessage_Failure() throws Exception {
|
// 准备测试数据
|
NumbericalDto requestDto = new NumbericalDto();
|
requestDto.setReleaseNo("IQC202501270001");
|
|
// Mock服务层返回失败
|
when(dingtalkInfoService.sendMessage(anyString())).thenReturn(false);
|
|
// 执行测试
|
mockMvc.perform(post("/api/dingtalk/sendMessage")
|
.contentType(MediaType.APPLICATION_JSON)
|
.content(objectMapper.writeValueAsString(requestDto)))
|
.andExpect(status().isOk())
|
.andExpect(jsonPath("$.code").value(500))
|
.andExpect(jsonPath("$.successful").value(1))
|
.andExpect(jsonPath("$.data").value("接收失败"));
|
}
|
|
@Test
|
public void testSendMessage_EmptyReleaseNo() throws Exception {
|
// 准备测试数据 - 空的检验单号
|
NumbericalDto requestDto = new NumbericalDto();
|
requestDto.setReleaseNo("");
|
|
// 执行测试
|
mockMvc.perform(post("/api/dingtalk/sendMessage")
|
.contentType(MediaType.APPLICATION_JSON)
|
.content(objectMapper.writeValueAsString(requestDto)))
|
.andExpect(status().isOk())
|
.andExpect(jsonPath("$.code").value(500))
|
.andExpect(jsonPath("$.message").value("检验单号不能为空"))
|
.andExpect(jsonPath("$.successful").value(1))
|
.andExpect(jsonPath("$.data").value("接收失败"));
|
}
|
|
@Test
|
public void testSendMessage_NullReleaseNo() throws Exception {
|
// 准备测试数据 - null检验单号
|
NumbericalDto requestDto = new NumbericalDto();
|
requestDto.setReleaseNo(null);
|
|
// 执行测试
|
mockMvc.perform(post("/api/dingtalk/sendMessage")
|
.contentType(MediaType.APPLICATION_JSON)
|
.content(objectMapper.writeValueAsString(requestDto)))
|
.andExpect(status().isOk())
|
.andExpect(jsonPath("$.code").value(500))
|
.andExpect(jsonPath("$.message").value("检验单号不能为空"))
|
.andExpect(jsonPath("$.successful").value(1))
|
.andExpect(jsonPath("$.data").value("接收失败"));
|
}
|
}
|