From 5436bb7d7f114d56a3833b58cb5ae1e252fe5159 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bence=20Er=C5=91s?= Date: Sun, 7 Apr 2024 13:35:20 +0200 Subject: [PATCH] fixing #505 and dependency updates --- core/pom.xml | 10 +++++----- .../org/everit/json/schema/StringSchema.java | 19 ++++++++++++++++++- .../everit/json/schema/StringSchemaTest.java | 3 +++ 3 files changed, 26 insertions(+), 6 deletions(-) diff --git a/core/pom.xml b/core/pom.xml index 8ef052424..c0670e30c 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -219,12 +219,12 @@ org.json json - 20231013 + 20240303 com.google.guava guava - 32.0.0-jre + 33.1.0-jre test @@ -236,7 +236,7 @@ commons-validator commons-validator - 1.7 + 1.8.0 commons-beanutils @@ -259,7 +259,7 @@ nl.jqno.equalsverifier equalsverifier - 3.15.3 + 3.16.1 test @@ -270,7 +270,7 @@ com.google.re2j re2j - 1.6 + 1.7 org.hamcrest diff --git a/core/src/main/java/org/everit/json/schema/StringSchema.java b/core/src/main/java/org/everit/json/schema/StringSchema.java index 4bfb7493c..0e6605524 100644 --- a/core/src/main/java/org/everit/json/schema/StringSchema.java +++ b/core/src/main/java/org/everit/json/schema/StringSchema.java @@ -142,13 +142,30 @@ public boolean equals(Object o) { Objects.equals(minLength, that.minLength) && Objects.equals(maxLength, that.maxLength) && Objects.equals(pattern, that.pattern) && - Objects.equals(formatValidator, that.formatValidator) && + sameFormatAs(that) && super.equals(that); } else { return false; } } + private boolean sameFormatAs(StringSchema that) { + if ((formatValidator == null) != (that.formatValidator == null)) { + return false; + } + if (formatValidator == null) { + return true; + } + if (!formatValidator.getClass().equals(that.formatValidator.getClass())) { + return false; + } + return Objects.equals(formatValidator.formatName(), that.formatValidator.formatName()); +// return (formatValidator == null) == (that.formatValidator == null) && +// (formatValidator == null || +// Objects.equals(formatValidator.formatName(), that.formatValidator.formatName()) +// ); + } + public FormatValidator getFormatValidator() { return formatValidator; } diff --git a/core/src/test/java/org/everit/json/schema/StringSchemaTest.java b/core/src/test/java/org/everit/json/schema/StringSchemaTest.java index d6eacdaf7..d069d1e26 100644 --- a/core/src/test/java/org/everit/json/schema/StringSchemaTest.java +++ b/core/src/test/java/org/everit/json/schema/StringSchemaTest.java @@ -7,6 +7,8 @@ import java.util.Optional; +import org.everit.json.schema.internal.EmailFormatValidator; +import org.everit.json.schema.internal.URIFormatValidator; import org.everit.json.schema.loader.SchemaLoader; import org.everit.json.schema.regexp.RE2JRegexpFactory; import org.json.JSONObject; @@ -109,6 +111,7 @@ public void equalsVerifier() { .withRedefinedSuperclass() .withIgnoredFields("schemaLocation", "location") .withPrefabValues(Pattern.class, Pattern.compile("red"), Pattern.compile("black")) + .withPrefabValues(FormatValidator.class, new EmailFormatValidator(), new URIFormatValidator()) .suppress(Warning.STRICT_INHERITANCE) .verify(); }