package jnpf.dmsController; import jnpf.dmsEntity.form.DmsWenjianFushenZhixingBatchReturnForm; import jnpf.dmsEntity.form.DmsWenjianFushenZhixingWriteBackForm; import jnpf.dmsService.DmsWenjianFushenZhixingService; import org.junit.Before; import org.junit.Test; import org.mockito.ArgumentCaptor; import org.springframework.http.MediaType; import org.springframework.test.web.servlet.MockMvc; import org.springframework.test.web.servlet.setup.MockMvcBuilders; import java.util.List; import static org.junit.Assert.assertEquals; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; 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; public class DmsWenjianFushenZhixingControllerTest { private MockMvc mockMvc; private DmsWenjianFushenZhixingService zhixingService; @Before public void setUp() { zhixingService = mock(DmsWenjianFushenZhixingService.class); mockMvc = MockMvcBuilders.standaloneSetup(new DmsWenjianFushenZhixingController(zhixingService)).build(); } @Test public void batchReturnAcceptsTheRequestedArrayFormat() throws Exception { mockMvc.perform(post("/biz/wenjian/fushen/zhixing/batch-return") .contentType(MediaType.APPLICATION_JSON) .content("[{\"fenpei_zixiang_id\":\"detail-1\"}," + "{\"fenpei_zixiang_id\":\"detail-2\"}]")) .andExpect(status().isOk()) .andExpect(jsonPath("$.code").value(200)) .andExpect(jsonPath("$.msg").value("文件复审执行批量退回成功")); ArgumentCaptor captor = ArgumentCaptor.forClass(List.class); verify(zhixingService).batchReturn(captor.capture()); DmsWenjianFushenZhixingBatchReturnForm first = (DmsWenjianFushenZhixingBatchReturnForm) captor.getValue().get(0); DmsWenjianFushenZhixingBatchReturnForm second = (DmsWenjianFushenZhixingBatchReturnForm) captor.getValue().get(1); assertEquals("detail-1", first.getFenpeiZixiangId()); assertEquals("detail-2", second.getFenpeiZixiangId()); } @Test public void writeBackAcceptsTheExecutionId() throws Exception { mockMvc.perform(post("/biz/wenjian/fushen/zhixing/write-back") .contentType(MediaType.APPLICATION_JSON) .content("{\"f_id\":\"execution-1\"}")) .andExpect(status().isOk()) .andExpect(jsonPath("$.code").value(200)) .andExpect(jsonPath("$.msg").value("文件复审执行结果回写成功")); ArgumentCaptor captor = ArgumentCaptor.forClass(String.class); verify(zhixingService).writeBack(captor.capture()); assertEquals("execution-1", captor.getValue()); } }