From 153c0977552fdd735199ef84979466bc6ff14734 Mon Sep 17 00:00:00 2001 From: Justin Tay <49700559+justin-tay@users.noreply.github.com> Date: Thu, 20 Mar 2025 21:20:58 +0800 Subject: [PATCH] Fix OverrideValidatorTest --- .../schema/OverrideValidatorTest.java | 28 +++++++++++++------ 1 file changed, 20 insertions(+), 8 deletions(-) diff --git a/src/test/java/com/networknt/schema/OverrideValidatorTest.java b/src/test/java/com/networknt/schema/OverrideValidatorTest.java index 0957dce5..2b1e1059 100644 --- a/src/test/java/com/networknt/schema/OverrideValidatorTest.java +++ b/src/test/java/com/networknt/schema/OverrideValidatorTest.java @@ -24,9 +24,11 @@ import org.junit.jupiter.api.Test; import java.io.IOException; +import java.util.Arrays; import java.util.Set; import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; class OverrideValidatorTest { @@ -37,9 +39,15 @@ void overrideDefaultValidator() throws JsonProcessingException, IOException { final String schema = "{\n" + " \"$schema\":\n" + " \"https://github.com/networknt/json-schema-validator/tests/schemas/example01\",\n" + - " \"properties\": {\"mailaddress\": {\"type\": \"string\", \"format\": \"email\"}}\n" + + " \"properties\": {\n" + + " \"mailaddress\": {\"type\": \"string\", \"format\": \"email\"},\n" + + " \"timestamp\": {\"type\": \"string\", \"format\": \"date-time\"}\n" + + " }\n" + "}"; - final JsonNode targetNode = objectMapper.readTree("{\"mailaddress\": \"a-zA-Z0-9.!#$%&'*+@a---a.a--a\"}"); + final JsonNode targetNode = objectMapper.readTree("{\n" + + " \"mailaddress\": \"a-zA-Z0-9.!#$%&'*+@a---a.a--a\",\n" + + " \"timestamp\": \"bad\"\n" + + "}"); // Use Default EmailValidator final JsonMetaSchema validatorMetaSchema = JsonMetaSchema .builder(URI, JsonMetaSchema.getV201909()) @@ -51,7 +59,10 @@ void overrideDefaultValidator() throws JsonProcessingException, IOException { Set messages = validatorSchema.validate(targetNode, OutputFormat.DEFAULT, (executionContext, validationContext) -> { executionContext.getExecutionConfig().setFormatAssertionsEnabled(true); }); - assertEquals(1, messages.size()); + + assertEquals(2, messages.size(), Arrays.toString(messages.toArray())); + assertTrue(messages.stream().anyMatch(it -> it.getInstanceLocation().getName(-1).equals("mailaddress"))); + assertTrue(messages.stream().anyMatch(it -> it.getInstanceLocation().getName(-1).equals("timestamp"))); // Override EmailValidator final JsonMetaSchema overrideValidatorMetaSchema = JsonMetaSchema @@ -62,9 +73,10 @@ void overrideDefaultValidator() throws JsonProcessingException, IOException { final JsonSchemaFactory overrideValidatorFactory = JsonSchemaFactory.builder(JsonSchemaFactory.getInstance(SpecVersion.VersionFlag.V201909)).metaSchema(overrideValidatorMetaSchema).build(); final JsonSchema overrideValidatorSchema = overrideValidatorFactory.getSchema(schema); - messages = overrideValidatorSchema.validate(targetNode); - assertEquals(0, messages.size()); - - + messages = overrideValidatorSchema.validate(targetNode, executionContext -> { + executionContext.getExecutionConfig().setFormatAssertionsEnabled(true); + }); + assertTrue(messages.stream().anyMatch(it -> it.getInstanceLocation().getName(-1).equals("timestamp"))); + assertEquals(1, messages.size()); } -} +} \ No newline at end of file