|
36 | 36 | import com.fasterxml.jackson.databind.JsonNode;
|
37 | 37 | import com.fasterxml.jackson.databind.node.JsonNodeFactory;
|
38 | 38 | import com.redhat.lightblue.TestDataStoreParser;
|
39 |
| -import com.redhat.lightblue.crud.validator.DefaultFieldConstraintValidators; |
40 |
| -import com.redhat.lightblue.crud.validator.EmptyEntityConstraintValidators; |
41 |
| -import com.redhat.lightblue.crud.validator.StringLengthChecker; |
| 39 | +import com.redhat.lightblue.crud.validator.*; |
42 | 40 | import com.redhat.lightblue.metadata.EntityConstraint;
|
43 | 41 | import com.redhat.lightblue.metadata.CompositeMetadata;
|
44 | 42 | import com.redhat.lightblue.metadata.EntityMetadata;
|
45 | 43 | import com.redhat.lightblue.metadata.FieldConstraint;
|
46 | 44 | import com.redhat.lightblue.metadata.SimpleArrayElement;
|
47 | 45 | import com.redhat.lightblue.metadata.constraints.*;
|
48 | 46 | import com.redhat.lightblue.metadata.Type;
|
49 |
| -import com.redhat.lightblue.metadata.parser.Extensions; |
50 |
| -import com.redhat.lightblue.metadata.parser.FieldConstraintParser; |
51 |
| -import com.redhat.lightblue.metadata.parser.StringLengthConstraintParser; |
52 |
| -import com.redhat.lightblue.metadata.parser.JSONMetadataParser; |
53 |
| -import com.redhat.lightblue.metadata.parser.MetadataParser; |
| 47 | +import com.redhat.lightblue.metadata.parser.*; |
54 | 48 | import com.redhat.lightblue.metadata.types.DefaultTypes;
|
55 | 49 | import com.redhat.lightblue.util.DefaultRegistry;
|
56 | 50 | import com.redhat.lightblue.util.Error;
|
@@ -271,6 +265,27 @@ public void testSimpleArrayConstraint() throws IOException {
|
271 | 265 | Assert.assertTrue(validator.hasErrors());
|
272 | 266 | }
|
273 | 267 |
|
| 268 | + @Test |
| 269 | + public void testSimpleArrayEnum() throws IOException { |
| 270 | + JsonNode node = loadJsonNode("crud/validator/testSimpleArrayEnum.json"); |
| 271 | + Map<String, FieldConstraintParser<JsonNode>> fcp = new HashMap<>(); |
| 272 | + fcp.put(EnumConstraint.ENUM, new EnumConstraintParser<JsonNode>()); |
| 273 | + EntityMetadata md = createEntityMetadata(node, null, fcp); |
| 274 | + |
| 275 | + Assert.assertEquals(1, ((SimpleArrayElement) md.resolve(new Path("array1.*"))).getConstraints().size()); |
| 276 | + |
| 277 | + Map<String, FieldConstraintChecker> fcc = new HashMap<>(); |
| 278 | + fcc.put(EnumConstraint.ENUM, new EnumChecker()); |
| 279 | + ConstraintValidator validator = createConstraintValidator(md, fcc, null); |
| 280 | + |
| 281 | + JsonDoc doc = new JsonDoc(loadJsonNode("crud/validator/simple-array-enum-constraint-doc.json")); |
| 282 | + validator.validateDoc(doc); |
| 283 | + List<Error> errors=validator.getDocErrors().get(doc); |
| 284 | + Assert.assertEquals(1,errors.size()); |
| 285 | + Assert.assertEquals("crud:InvalidEnum",errors.get(0).getErrorCode()); |
| 286 | + System.out.println(errors); |
| 287 | + } |
| 288 | + |
274 | 289 | /**
|
275 | 290 | * No {@link FieldConstraintChecker} exists for the {@link FieldConstraint}.
|
276 | 291 | * This causes the registry to return a null value. A {@link Error} is
|
|
0 commit comments