package jnpf.elnController; import jnpf.base.ActionResult; import jnpf.elnEntity.ElnMubanFileVo; import jnpf.util.context.SpringContext; import org.junit.BeforeClass; import org.junit.Test; import org.springframework.context.support.StaticApplicationContext; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import java.lang.reflect.Method; import java.util.concurrent.atomic.AtomicReference; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNull; public class ElnDianziJiluMubanControllerTest { @BeforeClass public static void setUpSpringContext() { SpringContext.setApplicationContext(new StaticApplicationContext()); } @Test public void exposesPinyinPathAndParameter() throws Exception { RequestMapping requestMapping = ElnDianziJiluMubanController.class.getAnnotation(RequestMapping.class); Method method = ElnDianziJiluMubanController.class.getMethod("file", String.class); GetMapping getMapping = method.getAnnotation(GetMapping.class); RequestParam requestParam = method.getParameters()[0].getAnnotation(RequestParam.class); assertEquals("/dianzi_jilu_muban", requestMapping.value()[0]); assertEquals("/file", getMapping.value()[0]); assertEquals("jianyan_xiangmu", requestParam.value()); } @Test public void rejectsMissingInspectionItem() { ElnDianziJiluMubanController controller = new ElnDianziJiluMubanController( item -> { throw new AssertionError("参数无效时不应调用 Service"); }); assertEquals(Integer.valueOf(400), controller.file(null).getCode()); assertEquals(Integer.valueOf(400), controller.file(" ").getCode()); } @Test public void returnsFileAndTrimsInspectionItem() { AtomicReference item = new AtomicReference<>(); ElnMubanFileVo file = new ElnMubanFileVo(); file.setFileId("file-1.docx"); ElnDianziJiluMubanController controller = new ElnDianziJiluMubanController(value -> { item.set(value); return file; }); ActionResult result = controller.file(" item-1 "); assertEquals(Integer.valueOf(200), result.getCode()); assertEquals("item-1", item.get()); assertEquals("file-1.docx", result.getData().getFileId()); } @Test public void returnsSuccessWithNullDataWhenTemplateMissing() { ElnDianziJiluMubanController controller = new ElnDianziJiluMubanController(item -> null); ActionResult result = controller.file("item-1"); assertEquals(Integer.valueOf(200), result.getCode()); assertNull(result.getData()); } }