package jnpf.elnController;
|
|
import jnpf.base.ActionResult;
|
import jnpf.elnEntity.ElnDocumentFileVo;
|
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 ElnTemplateFileControllerTest {
|
|
@BeforeClass
|
public static void setUpSpringContext() {
|
SpringContext.setApplicationContext(new StaticApplicationContext());
|
}
|
|
@Test
|
public void exposesPinyinPathAndParameter() throws Exception {
|
RequestMapping requestMapping = ElnTemplateFileController.class.getAnnotation(RequestMapping.class);
|
Method method = ElnTemplateFileController.class.getMethod(
|
"file", String.class, String.class);
|
GetMapping getMapping = method.getAnnotation(GetMapping.class);
|
RequestParam idParam = method.getParameters()[0].getAnnotation(RequestParam.class);
|
RequestParam codeParam = method.getParameters()[1].getAnnotation(RequestParam.class);
|
|
assertEquals("/dianzi_jilu_muban", requestMapping.value()[0]);
|
assertEquals("/file", getMapping.value()[0]);
|
assertEquals("jianyan_xiangmu", idParam.value());
|
assertEquals("jianyan_xiangmu_bianma", codeParam.value());
|
}
|
|
@Test
|
public void rejectsMissingTestWorkItem() {
|
ElnTemplateFileController controller = new ElnTemplateFileController(
|
(item, code) -> { throw new AssertionError("参数无效时不应调用 Service"); });
|
|
assertEquals(Integer.valueOf(400), controller.file(null, null).getCode());
|
assertEquals(Integer.valueOf(400), controller.file(" ", " ").getCode());
|
assertEquals(Integer.valueOf(400), controller.file("item-1", "CODE-1").getCode());
|
}
|
|
@Test
|
public void returnsFileAndTrimsTestWorkItem() {
|
AtomicReference<String> item = new AtomicReference<>();
|
ElnDocumentFileVo file = new ElnDocumentFileVo();
|
file.setFileId("file-1.docx");
|
ElnTemplateFileController controller = new ElnTemplateFileController((value, code) -> {
|
item.set(value);
|
return file;
|
});
|
|
ActionResult<ElnDocumentFileVo> result = controller.file(" item-1 ", null);
|
|
assertEquals(Integer.valueOf(200), result.getCode());
|
assertEquals("item-1", item.get());
|
assertEquals("file-1.docx", result.getData().getFileId());
|
}
|
|
@Test
|
public void returnsFileAndTrimsTestDefinitionCode() {
|
AtomicReference<String> code = new AtomicReference<>();
|
ElnDocumentFileVo file = new ElnDocumentFileVo();
|
file.setFileId("file-1.docx");
|
ElnTemplateFileController controller = new ElnTemplateFileController((id, value) -> {
|
assertNull(id);
|
code.set(value);
|
return file;
|
});
|
|
ActionResult<ElnDocumentFileVo> result = controller.file(null, " HD_jyxm_0008 ");
|
|
assertEquals(Integer.valueOf(200), result.getCode());
|
assertEquals("HD_jyxm_0008", code.get());
|
}
|
|
@Test
|
public void returnsSuccessWithNullDataWhenTemplateMissing() {
|
ElnTemplateFileController controller = new ElnTemplateFileController((item, code) -> null);
|
|
ActionResult<ElnDocumentFileVo> result = controller.file("item-1", null);
|
|
assertEquals(Integer.valueOf(200), result.getCode());
|
assertNull(result.getData());
|
}
|
}
|