Skip to content

Commit 43cef32

Browse files
author
Burak Serdar
committed
Unit test for enum validator
1 parent 9187bd3 commit 43cef32

File tree

3 files changed

+62
-8
lines changed

3 files changed

+62
-8
lines changed

crud/src/test/java/com/redhat/lightblue/crud/ConstraintValidatorTest.java

Lines changed: 23 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -36,21 +36,15 @@
3636
import com.fasterxml.jackson.databind.JsonNode;
3737
import com.fasterxml.jackson.databind.node.JsonNodeFactory;
3838
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.*;
4240
import com.redhat.lightblue.metadata.EntityConstraint;
4341
import com.redhat.lightblue.metadata.CompositeMetadata;
4442
import com.redhat.lightblue.metadata.EntityMetadata;
4543
import com.redhat.lightblue.metadata.FieldConstraint;
4644
import com.redhat.lightblue.metadata.SimpleArrayElement;
4745
import com.redhat.lightblue.metadata.constraints.*;
4846
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.*;
5448
import com.redhat.lightblue.metadata.types.DefaultTypes;
5549
import com.redhat.lightblue.util.DefaultRegistry;
5650
import com.redhat.lightblue.util.Error;
@@ -271,6 +265,27 @@ public void testSimpleArrayConstraint() throws IOException {
271265
Assert.assertTrue(validator.hasErrors());
272266
}
273267

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+
274289
/**
275290
* No {@link FieldConstraintChecker} exists for the {@link FieldConstraint}.
276291
* This causes the registry to return a null value. A {@link Error} is
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
{
2+
"array1": [ "v1", "v2", "failure" ]
3+
}
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
{
2+
"entityInfo": {
3+
"name": "test",
4+
"datastore": {
5+
"backend":"mongo",
6+
"collection": "test"
7+
},
8+
"enums":[
9+
{
10+
"name":"testEnum",
11+
"values":["v1","v2"]
12+
}
13+
]
14+
},
15+
"schema": {
16+
"name": "validationTest",
17+
"version": {
18+
"value": "1.0",
19+
"changelog": "blahblah"
20+
},
21+
"status": {
22+
"value": "active"
23+
},
24+
"fields": {
25+
"array1": {
26+
"type":"array",
27+
"items" : {
28+
"type":"string",
29+
"constraints": {
30+
"enum":"testEnum"
31+
}
32+
}
33+
}
34+
}
35+
}
36+
}

0 commit comments

Comments
 (0)