package jnpf.dmsController; import jnpf.dmsService.DmsDanganCundangJieshouService; import jnpf.dmsEntity.DmsDanganCundangShenqingDanganheEntity; 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 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 DmsDanganCundangJieshouControllerTest { private MockMvc mockMvc; private DmsDanganCundangJieshouService jieshouService; @Before public void setUp() { jieshouService = mock(DmsDanganCundangJieshouService.class); DmsDanganCundangJieshouController controller = new DmsDanganCundangJieshouController(jieshouService); mockMvc = MockMvcBuilders.standaloneSetup(controller).build(); } @Test public void jieshouPassesSnakeCaseRequestFieldsToService() throws Exception { mockMvc.perform(post("/biz/dangan/cundang/jieshou") .contentType(MediaType.APPLICATION_JSON) .content("{\"danganhe_xinxi\":[{\"id\":\"box-1\",\"f_id\":\"box-1\"}]," + "\"biz_review_user\":\"reviewer-1\",\"biz_user_id\":\"receiver-1\"," + "\"biz_sign\":\"sign-1\",\"biz_review_sign\":\"review-sign-1\"}")) .andExpect(status().isOk()) .andExpect(jsonPath("$.code").value(200)) .andExpect(jsonPath("$.msg").value("档案存档接收成功")); ArgumentCaptor captor = ArgumentCaptor.forClass( jnpf.dmsEntity.form.DmsDanganCundangJieshouForm.class); verify(jieshouService).jieshou(captor.capture()); assertEquals("receiver-1", captor.getValue().getBizUserId()); assertEquals("reviewer-1", captor.getValue().getBizReviewUser()); assertEquals("box-1", captor.getValue().getDanganheXinxi().get(0).getFId()); } @Test public void checkPassesDanganheBianhaoToService() throws Exception { DmsDanganCundangShenqingDanganheEntity danganhe = new DmsDanganCundangShenqingDanganheEntity(); danganhe.setId("box-1"); danganhe.setDanganheBianhao("DAH-001"); when(jieshouService.check("box-1")).thenReturn(danganhe); mockMvc.perform(post("/biz/dangan/cundang/jieshou/check") .contentType(MediaType.APPLICATION_JSON) .content("{\"danganhe_bianhao\":\"box-1\"}")) .andExpect(status().isOk()) .andExpect(jsonPath("$.code").value(200)) .andExpect(jsonPath("$.msg").value("档案盒可接收")) .andExpect(jsonPath("$.data.f_id").value("box-1")) .andExpect(jsonPath("$.data.danganhe_bianhao").value("DAH-001")); verify(jieshouService).check("box-1"); } }