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<String, Object> allowed = field("f_flow_state", "select", true);
|
Map<String, Object> denied = field("f_flow_state", "input", true);
|
Map<String, Object> table = field("details", "table", false);
|
config(table).put("children", Arrays.asList(allowed, denied));
|
|
assertEquals("流程状态-f_flow_state", invalid(table));
|
|
Map<String, Object> group = field("group", "row", false);
|
config(group).put("children", Arrays.asList(allowed, denied));
|
assertEquals("流程状态-f_flow_state", invalid(group));
|
}
|
|
private static String invalid(Map<String, Object> field) {
|
return VisualFieldKeywordValidator.invalidFields(JsonUtil.getObjectToString(Arrays.asList(field)));
|
}
|
|
private static Map<String, Object> field(String name, String key, boolean displayOnly) {
|
Map<String, Object> field = new HashMap<>();
|
field.put("__vModel__", name);
|
Map<String, Object> 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<String, Object> config(Map<String, Object> field) {
|
return (Map<String, Object>) field.get("__config__");
|
}
|
}
|