package jnpf.flowable.service.dev;
|
|
import jnpf.flowable.model.templatenode.nodejson.NodeModel;
|
import org.junit.Test;
|
import java.util.*;
|
import static org.junit.Assert.*;
|
|
public class DevApprovalValidationTest {
|
@Test public void zeroAndFalseAreValidWhileEmptySelectionsAreNot() {
|
for (Object value : Arrays.asList("", " ", "[]", "null", List.of(), Map.of(), new String[0])) {
|
assertTrue(DevApprovalValidation.empty(value));
|
}
|
assertFalse(DevApprovalValidation.empty(0));
|
assertFalse(DevApprovalValidation.empty(false));
|
assertFalse(DevApprovalValidation.empty(List.of("department")));
|
}
|
@Test public void reportsExactChildRowAndLeavesOptionalFieldsAlone() {
|
NodeModel node = new NodeModel();
|
node.setFormOperates(Arrays.asList(Map.of("id", "records-file", "name", "记录文件", "required", true),
|
Map.of("id", "scope", "required", false)));
|
List<String> missing = DevApprovalValidation.missing(node, Map.of("records", Arrays.asList(Map.of("file", "a.pdf"), Map.of())));
|
assertEquals(1, missing.size());
|
assertTrue(missing.get(0).contains("第2行"));
|
}
|
@Test public void emptyOptionalChildTableHasNoRequiredFieldInstances() {
|
NodeModel node = new NodeModel();
|
node.setFormOperates(List.of(Map.of("id", "records-file", "required", true)));
|
assertEquals(0, DevApprovalValidation.missing(node, Map.of("records", List.of())).size());
|
}
|
}
|