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<String> item = new AtomicReference<>();
|
ElnMubanFileVo file = new ElnMubanFileVo();
|
file.setFileId("file-1.docx");
|
ElnDianziJiluMubanController controller = new ElnDianziJiluMubanController(value -> {
|
item.set(value);
|
return file;
|
});
|
|
ActionResult<ElnMubanFileVo> 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<ElnMubanFileVo> result = controller.file("item-1");
|
|
assertEquals(Integer.valueOf(200), result.getCode());
|
assertNull(result.getData());
|
}
|
}
|