package jnpf.base.util; import jnpf.util.JsonUtil; import org.junit.Test; import java.util.Arrays; import java.util.HashMap; import java.util.Map; import static org.junit.Assert.assertEquals; public class VisualFieldKeywordValidatorTest { @Test public void permitsOnlyDisplaySelectForFlowState() { assertEquals("", invalid(field("f_flow_state", "select", true))); assertEquals("流程状态-f_flow_state", invalid(field("f_flow_state", "select", false))); assertEquals("流程状态-f_flow_state", invalid(field("f_flow_state", "input", true))); assertEquals("", invalid(field("business_state", "select", false))); } @Test public void checksEachNestedFieldIndependently() { Map allowed = field("f_flow_state", "select", true); Map denied = field("f_flow_state", "input", true); Map table = field("details", "table", false); config(table).put("children", Arrays.asList(allowed, denied)); assertEquals("流程状态-f_flow_state", invalid(table)); Map group = field("group", "row", false); config(group).put("children", Arrays.asList(allowed, denied)); assertEquals("流程状态-f_flow_state", invalid(group)); } private static String invalid(Map field) { return VisualFieldKeywordValidator.invalidFields(JsonUtil.getObjectToString(Arrays.asList(field))); } private static Map field(String name, String key, boolean displayOnly) { Map field = new HashMap<>(); field.put("__vModel__", name); Map config = new HashMap<>(); config.put("label", "流程状态"); config.put("jnpfKey", key); config.put("isDisplayOnly", displayOnly); field.put("__config__", config); return field; } @SuppressWarnings("unchecked") private static Map config(Map field) { return (Map) field.get("__config__"); } }