package jnpf.dmsController; import jnpf.dmsEntity.form.DmsDanganCundangDanganhePrintCallbackForm; import jnpf.dmsService.DmsDanganCundangDanganhePrintCallbackService; 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 DmsDanganCundangDanganhePrintCallbackControllerTest { private MockMvc mockMvc; private DmsDanganCundangDanganhePrintCallbackService printCallbackService; @Before public void setUp() { printCallbackService = mock(DmsDanganCundangDanganhePrintCallbackService.class); DmsDanganCundangDanganhePrintCallbackController controller = new DmsDanganCundangDanganhePrintCallbackController(printCallbackService); mockMvc = MockMvcBuilders.standaloneSetup(controller).build(); } @Test public void printCallbackPassesRawArrayAndSnakeCaseFIdToService() throws Exception { mockMvc.perform(post("/biz/dangan/cundang/danganhe/print-callback") .contentType(MediaType.APPLICATION_JSON) .content("[{\"id\":\"row-1\",\"f_id\":\"box-1\"}]")) .andExpect(status().isOk()) .andExpect(jsonPath("$.code").value(200)) .andExpect(jsonPath("$.msg").value("档案盒打印状态更新成功")); ArgumentCaptor> captor = ArgumentCaptor.forClass(List.class); verify(printCallbackService).markPrinted(captor.capture()); assertEquals("row-1", captor.getValue().get(0).getId()); assertEquals("box-1", captor.getValue().get(0).getFId()); } }