Skip to content

Commit 08ca9e4

Browse files
committed
fixes #54 convert all numbers to decimal node for comparison in enum
1 parent e83fc2e commit 08ca9e4

File tree

4 files changed

+8
-5
lines changed

4 files changed

+8
-5
lines changed

src/main/java/com/networknt/schema/EnumValidator.java

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
package com.networknt.schema;
1818

1919
import com.fasterxml.jackson.databind.JsonNode;
20+
import com.fasterxml.jackson.databind.node.DecimalNode;
2021
import com.fasterxml.jackson.databind.node.NullNode;
2122

2223
import org.slf4j.Logger;
@@ -44,7 +45,12 @@ public EnumValidator(String schemaPath, JsonNode schemaNode, JsonSchema parentSc
4445
String separator = "";
4546

4647
for (JsonNode n : schemaNode) {
47-
nodes.add(n);
48+
if(n.isNumber()) {
49+
// convert to DecimalNode for number comparison
50+
nodes.add(DecimalNode.valueOf(n.decimalValue()));
51+
} else {
52+
nodes.add(n);
53+
}
4854

4955
sb.append(separator);
5056
sb.append(n.asText());
@@ -77,7 +83,7 @@ public Set<ValidationMessage> validate(JsonNode node, JsonNode rootNode, String
7783
debug(logger, node, rootNode, at);
7884

7985
Set<ValidationMessage> errors = new LinkedHashSet<ValidationMessage>();
80-
86+
if(node.isNumber()) node = DecimalNode.valueOf(node.decimalValue());
8187
if (!nodes.contains(node) && !(config.isTypeLoose() && isTypeLooseContainsInEnum(node))) {
8288
errors.add(buildValidationMessage(at, error));
8389
}

src/test/java/com/networknt/schema/V201909JsonSchemaTest.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -289,7 +289,6 @@ public void testDependenciesValidator() throws Exception {
289289
}
290290

291291
@Test
292-
@Ignore
293292
public void testEnumValidator() throws Exception {
294293
runTestFile("draft2019-09/enum.json");
295294
}

src/test/java/com/networknt/schema/V6JsonSchemaTest.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -183,7 +183,6 @@ public void testDependenciesValidator() throws Exception {
183183
}
184184

185185
@Test
186-
@Ignore
187186
public void testEnumValidator() throws Exception {
188187
runTestFile("draft6/enum.json");
189188
}

src/test/java/com/networknt/schema/V7JsonSchemaTest.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -285,7 +285,6 @@ public void testDependenciesValidator() throws Exception {
285285
}
286286

287287
@Test
288-
@Ignore
289288
public void testEnumValidator() throws Exception {
290289
runTestFile("draft7/enum.json");
291290
}

0 commit comments

Comments
 (0)