package jnpf.dmsController; import jnpf.dmsEntity.form.DmsDanganJieyueFuyinJieshouForm; import jnpf.dmsEntity.vo.DmsDanganJieyueFuyinJieshouCheckVO; import jnpf.dmsService.DmsDanganJieyueFuyinJieshouService; 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.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; public class DmsDanganJieyueFuyinJieshouControllerTest { private MockMvc mockMvc; private DmsDanganJieyueFuyinJieshouService jieshouService; @Before public void setUp() { jieshouService = mock(DmsDanganJieyueFuyinJieshouService.class); mockMvc = MockMvcBuilders.standaloneSetup(new DmsDanganJieyueFuyinJieshouController(jieshouService)).build(); } @Test public void jieshouAcceptsTheRequestedDataArrayFormat() throws Exception { mockMvc.perform(post("/biz/dangan/jieyue/fuyin/jieshou") .contentType(MediaType.APPLICATION_JSON) .content("{\"data\":[{\"f_id\":\"detail-1\",\"id\":\"detail-1\"," + "\"jieshou_ren\":\"receiver-1\",\"jieshou_bumen\":\"org-1\"}]}")) .andExpect(status().isOk()) .andExpect(jsonPath("$.code").value(200)) .andExpect(jsonPath("$.msg").value("档案借阅复印接收成功")); ArgumentCaptor captor = ArgumentCaptor.forClass(List.class); verify(jieshouService).jieshou(captor.capture()); DmsDanganJieyueFuyinJieshouForm form = (DmsDanganJieyueFuyinJieshouForm) captor.getValue().get(0); assertEquals("detail-1", form.getFId()); assertEquals("detail-1", form.getId()); assertEquals("receiver-1", form.getJieshouRen()); assertEquals("org-1", form.getJieshouBumen()); } @Test public void checkPassesTheBoxNumberAndReturnsTheAvailableDetail() throws Exception { DmsDanganJieyueFuyinJieshouCheckVO detail = new DmsDanganJieyueFuyinJieshouCheckVO(); detail.setId("detail-1"); detail.setDanganheId("box-1"); detail.setDanganheBianhao("DAH-001"); detail.setDanganheMingcheng("档案盒一"); detail.setShenqingRen("applicant-1"); detail.setShenqingBumen("department-1"); when(jieshouService.check("DAH-001")).thenReturn(detail); mockMvc.perform(post("/biz/dangan/jieyue/fuyin/jieshou/check") .contentType(MediaType.APPLICATION_JSON) .content("{\"danganhe_bianhao\":\"DAH-001\"}")) .andExpect(status().isOk()) .andExpect(jsonPath("$.code").value(200)) .andExpect(jsonPath("$.msg").value("档案借阅复印子项可接收")) .andExpect(jsonPath("$.data.f_id").value("detail-1")) .andExpect(jsonPath("$.data.danganhe_id").value("box-1")) .andExpect(jsonPath("$.data.danganhe_bianhao").value("DAH-001")) .andExpect(jsonPath("$.data.danganhe_mingcheng").value("档案盒一")) .andExpect(jsonPath("$.data.shenqing_ren").value("applicant-1")) .andExpect(jsonPath("$.data.shenqing_bumen").value("department-1")); verify(jieshouService).check("DAH-001"); } }