From 8c95807dbb7f7284477c68f2ded5d0599675f7e1 Mon Sep 17 00:00:00 2001 From: Justin Black Date: Thu, 9 Nov 2023 09:38:32 -0800 Subject: [PATCH 1/2] Fixes schema validator call site --- .../schemas/SchemaValidator.java | 8 +- .../AdditionalPropertiesValidator.java | 4 +- .../schemas/validators/FormatValidator.java | 4 +- .../schemas/validators/ItemsValidator.java | 4 +- .../schemas/validators/KeywordValidator.java | 6 +- .../validators/PropertiesValidator.java | 4 +- .../schemas/validators/RequiredValidator.java | 4 +- .../schemas/validators/TypeValidator.java | 4 +- .../AdditionalPropertiesValidatorTest.java | 12 +- .../validators/FormatValidatorTest.java | 104 +++++++++--------- .../validators/ItemsValidatorTest.java | 12 +- .../validators/PropertiesValidatorTest.java | 12 +- .../validators/RequiredValidatorTest.java | 12 +- .../schemas/validators/TypeValidatorTest.java | 8 +- .../openapitools/schemas/SchemaValidator.hbs | 8 +- .../AdditionalPropertiesValidator.hbs | 4 +- .../schemas/validators/FormatValidator.hbs | 4 +- .../schemas/validators/ItemsValidator.hbs | 4 +- .../schemas/validators/KeywordValidator.hbs | 6 +- .../validators/PropertiesValidator.hbs | 4 +- .../schemas/validators/RequiredValidator.hbs | 4 +- .../schemas/validators/TypeValidator.hbs | 4 +- .../AdditionalPropertiesValidatorTest.hbs | 12 +- .../validators/FormatValidatorTest.hbs | 104 +++++++++--------- .../schemas/validators/ItemsValidatorTest.hbs | 12 +- .../validators/PropertiesValidatorTest.hbs | 12 +- .../validators/RequiredValidatorTest.hbs | 12 +- .../schemas/validators/TypeValidatorTest.hbs | 8 +- 28 files changed, 198 insertions(+), 198 deletions(-) diff --git a/samples/client/petstore/java/src/main/java/org/openapijsonschematools/schemas/SchemaValidator.java b/samples/client/petstore/java/src/main/java/org/openapijsonschematools/schemas/SchemaValidator.java index 9ab5e698e28..4b53268e0c5 100644 --- a/samples/client/petstore/java/src/main/java/org/openapijsonschematools/schemas/SchemaValidator.java +++ b/samples/client/petstore/java/src/main/java/org/openapijsonschematools/schemas/SchemaValidator.java @@ -57,17 +57,17 @@ static PathToSchemasMap validate( Class castSchemaCls = (Class) schemaCls; for (Map.Entry entry: fieldsToValues.entrySet()) { String jsonKeyword = entry.getKey(); - Object value = entry.getValue(); + Object constraint = entry.getValue(); if (jsonKeyword.equals("additionalProperties") && fieldsToValues.containsKey("properties")) { extra = fieldsToValues.get("properties"); } KeywordValidator validatorClass = keywordToValidator.get(jsonKeyword); PathToSchemasMap otherPathToSchemas = validatorClass.validate( arg, - value, - extra, + constraint, castSchemaCls, - validationMetadata + validationMetadata, + extra ); if (otherPathToSchemas == null) { continue; diff --git a/samples/client/petstore/java/src/main/java/org/openapijsonschematools/schemas/validators/AdditionalPropertiesValidator.java b/samples/client/petstore/java/src/main/java/org/openapijsonschematools/schemas/validators/AdditionalPropertiesValidator.java index ec7f2a4bad2..b5c6018665b 100644 --- a/samples/client/petstore/java/src/main/java/org/openapijsonschematools/schemas/validators/AdditionalPropertiesValidator.java +++ b/samples/client/petstore/java/src/main/java/org/openapijsonschematools/schemas/validators/AdditionalPropertiesValidator.java @@ -14,12 +14,12 @@ public class AdditionalPropertiesValidator implements KeywordValidator { @Override - public PathToSchemasMap validate(Object arg, Object value, Object extra, Class cls, ValidationMetadata validationMetadata) { + public PathToSchemasMap validate(Object arg, Object constraint, Class cls, ValidationMetadata validationMetadata, Object extra) { if (!(arg instanceof Map)) { return null; } Map castArg = (Map) arg; - Class addPropSchema = (Class) value; + Class addPropSchema = (Class) constraint; Map> properties = (Map>) extra; if (properties == null) { properties = new LinkedHashMap<>(); diff --git a/samples/client/petstore/java/src/main/java/org/openapijsonschematools/schemas/validators/FormatValidator.java b/samples/client/petstore/java/src/main/java/org/openapijsonschematools/schemas/validators/FormatValidator.java index f18b249dfaf..f6c2fed309b 100644 --- a/samples/client/petstore/java/src/main/java/org/openapijsonschematools/schemas/validators/FormatValidator.java +++ b/samples/client/petstore/java/src/main/java/org/openapijsonschematools/schemas/validators/FormatValidator.java @@ -107,8 +107,8 @@ private Void validateStringFormat(String arg, String format, ValidationMetadata } @Override - public PathToSchemasMap validate(Object arg, Object value, Object extra, Class cls, ValidationMetadata validationMetadata) { - String format = (String) value; + public PathToSchemasMap validate(Object arg, Object constraint, Class cls, ValidationMetadata validationMetadata, Object extra) { + String format = (String) constraint; if (arg instanceof BigDecimal) { validateNumericFormat( (BigDecimal) arg, diff --git a/samples/client/petstore/java/src/main/java/org/openapijsonschematools/schemas/validators/ItemsValidator.java b/samples/client/petstore/java/src/main/java/org/openapijsonschematools/schemas/validators/ItemsValidator.java index 52b41d50541..5b1eaee4732 100644 --- a/samples/client/petstore/java/src/main/java/org/openapijsonschematools/schemas/validators/ItemsValidator.java +++ b/samples/client/petstore/java/src/main/java/org/openapijsonschematools/schemas/validators/ItemsValidator.java @@ -10,12 +10,12 @@ public class ItemsValidator implements KeywordValidator { @Override - public PathToSchemasMap validate(Object arg, Object value, Object extra, Class cls, ValidationMetadata validationMetadata) { + public PathToSchemasMap validate(Object arg, Object constraint, Class cls, ValidationMetadata validationMetadata, Object extra) { if (!(arg instanceof List)) { return null; } List castArg = (List) arg; - Class itemsSchema = (Class) value; + Class itemsSchema = (Class) constraint; PathToSchemasMap pathToSchemas = new PathToSchemasMap(); // todo add handling for prefixItems int i = 0; diff --git a/samples/client/petstore/java/src/main/java/org/openapijsonschematools/schemas/validators/KeywordValidator.java b/samples/client/petstore/java/src/main/java/org/openapijsonschematools/schemas/validators/KeywordValidator.java index f341089b1d5..a8099bd9d0b 100644 --- a/samples/client/petstore/java/src/main/java/org/openapijsonschematools/schemas/validators/KeywordValidator.java +++ b/samples/client/petstore/java/src/main/java/org/openapijsonschematools/schemas/validators/KeywordValidator.java @@ -7,8 +7,8 @@ public interface KeywordValidator { PathToSchemasMap validate( Object arg, - Object value, - Object extra, + Object constraint, Class cls, - ValidationMetadata validationMetadata); + ValidationMetadata validationMetadata, + Object extra); } diff --git a/samples/client/petstore/java/src/main/java/org/openapijsonschematools/schemas/validators/PropertiesValidator.java b/samples/client/petstore/java/src/main/java/org/openapijsonschematools/schemas/validators/PropertiesValidator.java index 9f1dbe83867..9b295688859 100644 --- a/samples/client/petstore/java/src/main/java/org/openapijsonschematools/schemas/validators/PropertiesValidator.java +++ b/samples/client/petstore/java/src/main/java/org/openapijsonschematools/schemas/validators/PropertiesValidator.java @@ -13,13 +13,13 @@ public class PropertiesValidator implements KeywordValidator { @Override - public PathToSchemasMap validate(Object arg, Object value, Object extra, Class cls, ValidationMetadata validationMetadata) { + public PathToSchemasMap validate(Object arg, Object constraint, Class cls, ValidationMetadata validationMetadata, Object extra) { if (!(arg instanceof Map)) { return null; } PathToSchemasMap pathToSchemas = new PathToSchemasMap(); Map castArg = (Map) arg; - Map> properties = (Map>) value; + Map> properties = (Map>) constraint; Set presentProperties = new LinkedHashSet<>(castArg.keySet()); presentProperties.retainAll(properties.keySet()); for(String propName: presentProperties) { diff --git a/samples/client/petstore/java/src/main/java/org/openapijsonschematools/schemas/validators/RequiredValidator.java b/samples/client/petstore/java/src/main/java/org/openapijsonschematools/schemas/validators/RequiredValidator.java index c5f11f676bf..1eef78160d9 100644 --- a/samples/client/petstore/java/src/main/java/org/openapijsonschematools/schemas/validators/RequiredValidator.java +++ b/samples/client/petstore/java/src/main/java/org/openapijsonschematools/schemas/validators/RequiredValidator.java @@ -11,12 +11,12 @@ public class RequiredValidator implements KeywordValidator { @Override - public PathToSchemasMap validate(Object arg, Object value, Object extra, Class cls, ValidationMetadata validationMetadata) { + public PathToSchemasMap validate(Object arg, Object constraint, Class cls, ValidationMetadata validationMetadata, Object extra) { if (!(arg instanceof Map)) { return null; } Map castArg = (Map) arg; - Set requiredProperties = (Set) value; + Set requiredProperties = (Set) constraint; Set missingRequiredProperties = new HashSet<>(requiredProperties); missingRequiredProperties.removeAll(castArg.keySet()); if (!missingRequiredProperties.isEmpty()) { diff --git a/samples/client/petstore/java/src/main/java/org/openapijsonschematools/schemas/validators/TypeValidator.java b/samples/client/petstore/java/src/main/java/org/openapijsonschematools/schemas/validators/TypeValidator.java index 16d3804dbe8..387f77098be 100644 --- a/samples/client/petstore/java/src/main/java/org/openapijsonschematools/schemas/validators/TypeValidator.java +++ b/samples/client/petstore/java/src/main/java/org/openapijsonschematools/schemas/validators/TypeValidator.java @@ -8,8 +8,8 @@ public class TypeValidator implements KeywordValidator { @Override - public PathToSchemasMap validate(Object arg, Object value, Object extra, Class cls, ValidationMetadata validationMetadata) { - HashSet> types = (HashSet>) value; + public PathToSchemasMap validate(Object arg, Object constraint, Class cls, ValidationMetadata validationMetadata, Object extra) { + HashSet> types = (HashSet>) constraint; Class argClass; if (arg == null) { argClass = Void.class; diff --git a/samples/client/petstore/java/src/test/java/org/openapijsonschematools/schemas/validators/AdditionalPropertiesValidatorTest.java b/samples/client/petstore/java/src/test/java/org/openapijsonschematools/schemas/validators/AdditionalPropertiesValidatorTest.java index 924e5988976..3a82f98ab3a 100644 --- a/samples/client/petstore/java/src/test/java/org/openapijsonschematools/schemas/validators/AdditionalPropertiesValidatorTest.java +++ b/samples/client/petstore/java/src/test/java/org/openapijsonschematools/schemas/validators/AdditionalPropertiesValidatorTest.java @@ -39,9 +39,9 @@ public void testCorrectPropertySucceeds() { PathToSchemasMap pathToSchemas = validator.validate( arg, StringSchema.class, - properties, SchemaValidator.class, - validationMetadata + validationMetadata, + properties ); List expectedPathToItem = new ArrayList<>(); expectedPathToItem.add("args[0]"); @@ -68,9 +68,9 @@ public void testNotApplicableTypeReturnsNull() { PathToSchemasMap pathToSchemas = validator.validate( 1, StringSchema.class, - null, SchemaValidator.class, - validationMetadata + validationMetadata, + null ); Assert.assertNull(pathToSchemas); } @@ -96,9 +96,9 @@ public void testIncorrectPropertyValueFails() { Assert.assertThrows(RuntimeException.class, () -> validator.validate( arg, StringSchema.class, - properties, SchemaValidator.class, - validationMetadata + validationMetadata, + properties )); } } diff --git a/samples/client/petstore/java/src/test/java/org/openapijsonschematools/schemas/validators/FormatValidatorTest.java b/samples/client/petstore/java/src/test/java/org/openapijsonschematools/schemas/validators/FormatValidatorTest.java index 235d0e94e01..7476d027143 100644 --- a/samples/client/petstore/java/src/test/java/org/openapijsonschematools/schemas/validators/FormatValidatorTest.java +++ b/samples/client/petstore/java/src/test/java/org/openapijsonschematools/schemas/validators/FormatValidatorTest.java @@ -27,9 +27,9 @@ public void testIntFormatSucceedsWithFloat() { PathToSchemasMap pathToSchemasMap = validator.validate( new BigDecimal("1.0"), "int", - null, SchemaValidator.class, - validationMetadata + validationMetadata, + null ); Assert.assertNull(pathToSchemasMap); } @@ -40,9 +40,9 @@ public void testIntFormatFailsWithFloat() { Assert.assertThrows(RuntimeException.class, () -> validator.validate( new BigDecimal("3.14"), "int", - null, SchemaValidator.class, - validationMetadata + validationMetadata, + null )); } @@ -52,9 +52,9 @@ public void testIntFormatSucceedsWithInt() { PathToSchemasMap pathToSchemasMap = validator.validate( new BigDecimal("1"), "int", - null, SchemaValidator.class, - validationMetadata + validationMetadata, + null ); Assert.assertNull(pathToSchemasMap); } @@ -65,9 +65,9 @@ public void testInt32UnderMinFails() { Assert.assertThrows(RuntimeException.class, () -> validator.validate( new BigDecimal(-2147483649L), "int32", - null, SchemaValidator.class, - validationMetadata + validationMetadata, + null )); } @@ -77,9 +77,9 @@ public void testInt32InclusiveMinSucceeds() { PathToSchemasMap pathToSchemasMap = validator.validate( new BigDecimal(-2147483648), "int32", - null, SchemaValidator.class, - validationMetadata + validationMetadata, + null ); Assert.assertNull(pathToSchemasMap); } @@ -90,9 +90,9 @@ public void testInt32InclusiveMaxSucceeds() { PathToSchemasMap pathToSchemasMap = validator.validate( new BigDecimal(2147483647), "int32", - null, SchemaValidator.class, - validationMetadata + validationMetadata, + null ); Assert.assertNull(pathToSchemasMap); } @@ -103,9 +103,9 @@ public void testInt32OverMaxFails() { Assert.assertThrows(RuntimeException.class, () -> validator.validate( BigDecimal.valueOf(2147483648L), "int32", - null, SchemaValidator.class, - validationMetadata + validationMetadata, + null )); } @@ -116,9 +116,9 @@ public void testInt64UnderMinFails() { Assert.assertThrows(RuntimeException.class, () -> validator.validate( new BigDecimal(new BigInteger("-9223372036854775809")), "int64", - null, SchemaValidator.class, - validationMetadata + validationMetadata, + null )); } @@ -128,9 +128,9 @@ public void testInt64InclusiveMinSucceeds() { PathToSchemasMap pathToSchemasMap = validator.validate( new BigDecimal(-9223372036854775808L), "int64", - null, SchemaValidator.class, - validationMetadata + validationMetadata, + null ); Assert.assertNull(pathToSchemasMap); } @@ -141,9 +141,9 @@ public void testInt64InclusiveMaxSucceeds() { PathToSchemasMap pathToSchemasMap = validator.validate( new BigDecimal(9223372036854775807L), "int64", - null, SchemaValidator.class, - validationMetadata + validationMetadata, + null ); Assert.assertNull(pathToSchemasMap); } @@ -155,9 +155,9 @@ public void testInt64OverMaxFails() { Assert.assertThrows(RuntimeException.class, () -> validator.validate( new BigDecimal(new BigInteger("9223372036854775808")), "int64", - null, SchemaValidator.class, - validationMetadata + validationMetadata, + null )); } @@ -167,9 +167,9 @@ public void testFloatUnderMinFails() { Assert.assertThrows(RuntimeException.class, () -> validator.validate( BigDecimal.valueOf(-3.402823466385289e+38), "float", - null, SchemaValidator.class, - validationMetadata + validationMetadata, + null )); } @@ -179,9 +179,9 @@ public void testFloatInclusiveMinSucceeds() { PathToSchemasMap pathToSchemasMap = validator.validate( BigDecimal.valueOf(-3.4028234663852886e+38), "float", - null, SchemaValidator.class, - validationMetadata + validationMetadata, + null ); Assert.assertNull(pathToSchemasMap); } @@ -192,9 +192,9 @@ public void testFloatInclusiveMaxSucceeds() { PathToSchemasMap pathToSchemasMap = validator.validate( new BigDecimal("3.4028234663852886e+38"), "float", - null, SchemaValidator.class, - validationMetadata + validationMetadata, + null ); Assert.assertNull(pathToSchemasMap); } @@ -205,9 +205,9 @@ public void testFloatOverMaxFails() { Assert.assertThrows(RuntimeException.class, () -> validator.validate( BigDecimal.valueOf(3.402823466385289e+38), "float", - null, SchemaValidator.class, - validationMetadata + validationMetadata, + null )); } @@ -217,9 +217,9 @@ public void testDoubleUnderMinFails() { Assert.assertThrows(RuntimeException.class, () -> validator.validate( new BigDecimal("-1.7976931348623157082e+308"), "double", - null, SchemaValidator.class, - validationMetadata + validationMetadata, + null )); } @@ -229,9 +229,9 @@ public void testDoubleInclusiveMinSucceeds() { PathToSchemasMap pathToSchemasMap = validator.validate( BigDecimal.valueOf(-1.7976931348623157E+308d), "double", - null, SchemaValidator.class, - validationMetadata + validationMetadata, + null ); Assert.assertNull(pathToSchemasMap); } @@ -242,9 +242,9 @@ public void testDoubleInclusiveMaxSucceeds() { PathToSchemasMap pathToSchemasMap = validator.validate( BigDecimal.valueOf(1.7976931348623157E+308d), "double", - null, SchemaValidator.class, - validationMetadata + validationMetadata, + null ); Assert.assertNull(pathToSchemasMap); } @@ -255,9 +255,9 @@ public void testDoubleOverMaxFails() { Assert.assertThrows(RuntimeException.class, () -> validator.validate( new BigDecimal("1.7976931348623157082e+308"), "double", - null, SchemaValidator.class, - validationMetadata + validationMetadata, + null )); } @@ -267,9 +267,9 @@ public void testInvalidNumberStringFails() { Assert.assertThrows(RuntimeException.class, () -> validator.validate( "abc", "number", - null, SchemaValidator.class, - validationMetadata + validationMetadata, + null )); } @@ -279,9 +279,9 @@ public void testValidFloatNumberStringSucceeds() { PathToSchemasMap pathToSchemasMap = validator.validate( "3.14", "number", - null, SchemaValidator.class, - validationMetadata + validationMetadata, + null ); Assert.assertNull(pathToSchemasMap); } @@ -292,9 +292,9 @@ public void testValidIntNumberStringSucceeds() { PathToSchemasMap pathToSchemasMap = validator.validate( "1", "number", - null, SchemaValidator.class, - validationMetadata + validationMetadata, + null ); Assert.assertNull(pathToSchemasMap); } @@ -305,9 +305,9 @@ public void testInvalidDateStringFails() { Assert.assertThrows(RuntimeException.class, () -> validator.validate( "abc", "date", - null, SchemaValidator.class, - validationMetadata + validationMetadata, + null )); } @@ -317,9 +317,9 @@ public void testValidDateStringSucceeds() { PathToSchemasMap pathToSchemasMap = validator.validate( "2017-01-20", "date", - null, SchemaValidator.class, - validationMetadata + validationMetadata, + null ); Assert.assertNull(pathToSchemasMap); } @@ -330,9 +330,9 @@ public void testInvalidDateTimeStringFails() { Assert.assertThrows(RuntimeException.class, () -> validator.validate( "abc", "date-time", - null, SchemaValidator.class, - validationMetadata + validationMetadata, + null )); } @@ -342,9 +342,9 @@ public void testValidDateTimeStringSucceeds() { PathToSchemasMap pathToSchemasMap = validator.validate( "2017-07-21T17:32:28Z", "date-time", - null, SchemaValidator.class, - validationMetadata + validationMetadata, + null ); Assert.assertNull(pathToSchemasMap); } diff --git a/samples/client/petstore/java/src/test/java/org/openapijsonschematools/schemas/validators/ItemsValidatorTest.java b/samples/client/petstore/java/src/test/java/org/openapijsonschematools/schemas/validators/ItemsValidatorTest.java index 2ff0bcce455..8dc1aa3b540 100644 --- a/samples/client/petstore/java/src/test/java/org/openapijsonschematools/schemas/validators/ItemsValidatorTest.java +++ b/samples/client/petstore/java/src/test/java/org/openapijsonschematools/schemas/validators/ItemsValidatorTest.java @@ -34,9 +34,9 @@ public void testCorrectItemsSucceeds() { PathToSchemasMap pathToSchemas = validator.validate( arg, StringSchema.class, - null, SchemaValidator.class, - validationMetadata + validationMetadata, + null ); List expectedPathToItem = new ArrayList<>(); expectedPathToItem.add("args[0]"); @@ -63,9 +63,9 @@ public void testNotApplicableTypeReturnsNull() { PathToSchemasMap pathToSchemas = validator.validate( 1, StringSchema.class, - null, SchemaValidator.class, - validationMetadata + validationMetadata, + null ); Assert.assertNull(pathToSchemas); } @@ -87,9 +87,9 @@ public void testIncorrectItemFails() { Assert.assertThrows(RuntimeException.class, () -> validator.validate( arg, StringSchema.class, - null, SchemaValidator.class, - validationMetadata + validationMetadata, + null )); } } diff --git a/samples/client/petstore/java/src/test/java/org/openapijsonschematools/schemas/validators/PropertiesValidatorTest.java b/samples/client/petstore/java/src/test/java/org/openapijsonschematools/schemas/validators/PropertiesValidatorTest.java index b7616df5c0e..a142a6d955b 100644 --- a/samples/client/petstore/java/src/test/java/org/openapijsonschematools/schemas/validators/PropertiesValidatorTest.java +++ b/samples/client/petstore/java/src/test/java/org/openapijsonschematools/schemas/validators/PropertiesValidatorTest.java @@ -38,9 +38,9 @@ public void testCorrectPropertySucceeds() { PathToSchemasMap pathToSchemas = validator.validate( arg, properties, - null, SchemaValidator.class, - validationMetadata + validationMetadata, + null ); List expectedPathToItem = new ArrayList<>(); expectedPathToItem.add("args[0]"); @@ -70,9 +70,9 @@ public void testNotApplicableTypeReturnsNull() { PathToSchemasMap pathToSchemas = validator.validate( 1, properties, - null, SchemaValidator.class, - validationMetadata + validationMetadata, + null ); Assert.assertNull(pathToSchemas); } @@ -97,9 +97,9 @@ public void testIncorrectPropertyValueFails() { Assert.assertThrows(RuntimeException.class, () -> validator.validate( arg, properties, - null, SchemaValidator.class, - validationMetadata + validationMetadata, + null )); } } diff --git a/samples/client/petstore/java/src/test/java/org/openapijsonschematools/schemas/validators/RequiredValidatorTest.java b/samples/client/petstore/java/src/test/java/org/openapijsonschematools/schemas/validators/RequiredValidatorTest.java index 20b8d4190a0..f5c8fd5d95f 100644 --- a/samples/client/petstore/java/src/test/java/org/openapijsonschematools/schemas/validators/RequiredValidatorTest.java +++ b/samples/client/petstore/java/src/test/java/org/openapijsonschematools/schemas/validators/RequiredValidatorTest.java @@ -39,9 +39,9 @@ public void testCorrectPropertySucceeds() { PathToSchemasMap pathToSchemas = validator.validate( arg, requiredProperties, - null, SchemaValidator.class, - validationMetadata + validationMetadata, + null ); Assert.assertNull(pathToSchemas); } @@ -63,9 +63,9 @@ public void testNotApplicableTypeReturnsNull() { PathToSchemasMap pathToSchemas = validator.validate( 1, properties, - null, SchemaValidator.class, - validationMetadata + validationMetadata, + null ); Assert.assertNull(pathToSchemas); } @@ -90,9 +90,9 @@ public void testIncorrectPropertyFails() { Assert.assertThrows(RuntimeException.class, () -> validator.validate( arg, requiredProperties, - null, SchemaValidator.class, - validationMetadata + validationMetadata, + null )); } } diff --git a/samples/client/petstore/java/src/test/java/org/openapijsonschematools/schemas/validators/TypeValidatorTest.java b/samples/client/petstore/java/src/test/java/org/openapijsonschematools/schemas/validators/TypeValidatorTest.java index a908abea0b7..f3d576a0cb8 100644 --- a/samples/client/petstore/java/src/test/java/org/openapijsonschematools/schemas/validators/TypeValidatorTest.java +++ b/samples/client/petstore/java/src/test/java/org/openapijsonschematools/schemas/validators/TypeValidatorTest.java @@ -27,9 +27,9 @@ public void testValidateSucceeds() { PathToSchemasMap pathToSchemasMap = validator.validate( "hi", value, - null, SchemaValidator.class, - validationMetadata + validationMetadata, + null ); Assert.assertNull(pathToSchemasMap); } @@ -48,9 +48,9 @@ public void testValidateFailsIntIsNotString() throws RuntimeException { Assert.assertThrows(RuntimeException.class, () -> validator.validate( 1, value, - null, SchemaValidator.class, - validationMetadata + validationMetadata, + null )); } } diff --git a/src/main/resources/java/src/main/java/org/openapitools/schemas/SchemaValidator.hbs b/src/main/resources/java/src/main/java/org/openapitools/schemas/SchemaValidator.hbs index aeee07e9eb9..03d68cb01d1 100644 --- a/src/main/resources/java/src/main/java/org/openapitools/schemas/SchemaValidator.hbs +++ b/src/main/resources/java/src/main/java/org/openapitools/schemas/SchemaValidator.hbs @@ -57,17 +57,17 @@ public interface SchemaValidator { Class castSchemaCls = (Class) schemaCls; for (Map.Entry entry: fieldsToValues.entrySet()) { String jsonKeyword = entry.getKey(); - Object value = entry.getValue(); + Object constraint = entry.getValue(); if (jsonKeyword.equals("additionalProperties") && fieldsToValues.containsKey("properties")) { extra = fieldsToValues.get("properties"); } KeywordValidator validatorClass = keywordToValidator.get(jsonKeyword); PathToSchemasMap otherPathToSchemas = validatorClass.validate( arg, - value, - extra, + constraint, castSchemaCls, - validationMetadata + validationMetadata, + extra ); if (otherPathToSchemas == null) { continue; diff --git a/src/main/resources/java/src/main/java/org/openapitools/schemas/validators/AdditionalPropertiesValidator.hbs b/src/main/resources/java/src/main/java/org/openapitools/schemas/validators/AdditionalPropertiesValidator.hbs index cd40c54d6c0..0a7e7152abf 100644 --- a/src/main/resources/java/src/main/java/org/openapitools/schemas/validators/AdditionalPropertiesValidator.hbs +++ b/src/main/resources/java/src/main/java/org/openapitools/schemas/validators/AdditionalPropertiesValidator.hbs @@ -14,12 +14,12 @@ import java.util.Set; public class AdditionalPropertiesValidator implements KeywordValidator { @Override - public PathToSchemasMap validate(Object arg, Object value, Object extra, Class cls, ValidationMetadata validationMetadata) { + public PathToSchemasMap validate(Object arg, Object constraint, Class cls, ValidationMetadata validationMetadata, Object extra) { if (!(arg instanceof Map)) { return null; } Map castArg = (Map) arg; - Class addPropSchema = (Class) value; + Class addPropSchema = (Class) constraint; Map> properties = (Map>) extra; if (properties == null) { properties = new LinkedHashMap<>(); diff --git a/src/main/resources/java/src/main/java/org/openapitools/schemas/validators/FormatValidator.hbs b/src/main/resources/java/src/main/java/org/openapitools/schemas/validators/FormatValidator.hbs index cd09c6b3f2b..e2da1b0daa2 100644 --- a/src/main/resources/java/src/main/java/org/openapitools/schemas/validators/FormatValidator.hbs +++ b/src/main/resources/java/src/main/java/org/openapitools/schemas/validators/FormatValidator.hbs @@ -107,8 +107,8 @@ public class FormatValidator implements KeywordValidator { } @Override - public PathToSchemasMap validate(Object arg, Object value, Object extra, Class cls, ValidationMetadata validationMetadata) { - String format = (String) value; + public PathToSchemasMap validate(Object arg, Object constraint, Class cls, ValidationMetadata validationMetadata, Object extra) { + String format = (String) constraint; if (arg instanceof BigDecimal) { validateNumericFormat( (BigDecimal) arg, diff --git a/src/main/resources/java/src/main/java/org/openapitools/schemas/validators/ItemsValidator.hbs b/src/main/resources/java/src/main/java/org/openapitools/schemas/validators/ItemsValidator.hbs index c3ef3fd808a..196aef6e646 100644 --- a/src/main/resources/java/src/main/java/org/openapitools/schemas/validators/ItemsValidator.hbs +++ b/src/main/resources/java/src/main/java/org/openapitools/schemas/validators/ItemsValidator.hbs @@ -10,12 +10,12 @@ import java.util.List; public class ItemsValidator implements KeywordValidator { @Override - public PathToSchemasMap validate(Object arg, Object value, Object extra, Class cls, ValidationMetadata validationMetadata) { + public PathToSchemasMap validate(Object arg, Object constraint, Class cls, ValidationMetadata validationMetadata, Object extra) { if (!(arg instanceof List)) { return null; } List castArg = (List) arg; - Class itemsSchema = (Class) value; + Class itemsSchema = (Class) constraint; PathToSchemasMap pathToSchemas = new PathToSchemasMap(); // todo add handling for prefixItems int i = 0; diff --git a/src/main/resources/java/src/main/java/org/openapitools/schemas/validators/KeywordValidator.hbs b/src/main/resources/java/src/main/java/org/openapitools/schemas/validators/KeywordValidator.hbs index 8228de6fd74..766e38c8483 100644 --- a/src/main/resources/java/src/main/java/org/openapitools/schemas/validators/KeywordValidator.hbs +++ b/src/main/resources/java/src/main/java/org/openapitools/schemas/validators/KeywordValidator.hbs @@ -7,8 +7,8 @@ import {{{packageName}}}.schemas.ValidationMetadata; public interface KeywordValidator { PathToSchemasMap validate( Object arg, - Object value, - Object extra, + Object constraint, Class cls, - ValidationMetadata validationMetadata); + ValidationMetadata validationMetadata, + Object extra); } diff --git a/src/main/resources/java/src/main/java/org/openapitools/schemas/validators/PropertiesValidator.hbs b/src/main/resources/java/src/main/java/org/openapitools/schemas/validators/PropertiesValidator.hbs index 48826376e2a..034a2ce356d 100644 --- a/src/main/resources/java/src/main/java/org/openapitools/schemas/validators/PropertiesValidator.hbs +++ b/src/main/resources/java/src/main/java/org/openapitools/schemas/validators/PropertiesValidator.hbs @@ -13,13 +13,13 @@ import java.util.Set; public class PropertiesValidator implements KeywordValidator { @Override - public PathToSchemasMap validate(Object arg, Object value, Object extra, Class cls, ValidationMetadata validationMetadata) { + public PathToSchemasMap validate(Object arg, Object constraint, Class cls, ValidationMetadata validationMetadata, Object extra) { if (!(arg instanceof Map)) { return null; } PathToSchemasMap pathToSchemas = new PathToSchemasMap(); Map castArg = (Map) arg; - Map> properties = (Map>) value; + Map> properties = (Map>) constraint; Set presentProperties = new LinkedHashSet<>(castArg.keySet()); presentProperties.retainAll(properties.keySet()); for(String propName: presentProperties) { diff --git a/src/main/resources/java/src/main/java/org/openapitools/schemas/validators/RequiredValidator.hbs b/src/main/resources/java/src/main/java/org/openapitools/schemas/validators/RequiredValidator.hbs index c5f11f676bf..1eef78160d9 100644 --- a/src/main/resources/java/src/main/java/org/openapitools/schemas/validators/RequiredValidator.hbs +++ b/src/main/resources/java/src/main/java/org/openapitools/schemas/validators/RequiredValidator.hbs @@ -11,12 +11,12 @@ import java.util.Set; public class RequiredValidator implements KeywordValidator { @Override - public PathToSchemasMap validate(Object arg, Object value, Object extra, Class cls, ValidationMetadata validationMetadata) { + public PathToSchemasMap validate(Object arg, Object constraint, Class cls, ValidationMetadata validationMetadata, Object extra) { if (!(arg instanceof Map)) { return null; } Map castArg = (Map) arg; - Set requiredProperties = (Set) value; + Set requiredProperties = (Set) constraint; Set missingRequiredProperties = new HashSet<>(requiredProperties); missingRequiredProperties.removeAll(castArg.keySet()); if (!missingRequiredProperties.isEmpty()) { diff --git a/src/main/resources/java/src/main/java/org/openapitools/schemas/validators/TypeValidator.hbs b/src/main/resources/java/src/main/java/org/openapitools/schemas/validators/TypeValidator.hbs index 509911467a2..74f2359930c 100644 --- a/src/main/resources/java/src/main/java/org/openapitools/schemas/validators/TypeValidator.hbs +++ b/src/main/resources/java/src/main/java/org/openapitools/schemas/validators/TypeValidator.hbs @@ -8,8 +8,8 @@ import java.util.HashSet; public class TypeValidator implements KeywordValidator { @Override - public PathToSchemasMap validate(Object arg, Object value, Object extra, Class cls, ValidationMetadata validationMetadata) { - HashSet> types = (HashSet>) value; + public PathToSchemasMap validate(Object arg, Object constraint, Class cls, ValidationMetadata validationMetadata, Object extra) { + HashSet> types = (HashSet>) constraint; Class argClass; if (arg == null) { argClass = Void.class; diff --git a/src/main/resources/java/src/test/java/org/openapitools/schemas/validators/AdditionalPropertiesValidatorTest.hbs b/src/main/resources/java/src/test/java/org/openapitools/schemas/validators/AdditionalPropertiesValidatorTest.hbs index 3298cd68a17..0bb0ee64c00 100644 --- a/src/main/resources/java/src/test/java/org/openapitools/schemas/validators/AdditionalPropertiesValidatorTest.hbs +++ b/src/main/resources/java/src/test/java/org/openapitools/schemas/validators/AdditionalPropertiesValidatorTest.hbs @@ -39,9 +39,9 @@ public class AdditionalPropertiesValidatorTest { PathToSchemasMap pathToSchemas = validator.validate( arg, StringSchema.class, - properties, SchemaValidator.class, - validationMetadata + validationMetadata, + properties ); List expectedPathToItem = new ArrayList<>(); expectedPathToItem.add("args[0]"); @@ -68,9 +68,9 @@ public class AdditionalPropertiesValidatorTest { PathToSchemasMap pathToSchemas = validator.validate( 1, StringSchema.class, - null, SchemaValidator.class, - validationMetadata + validationMetadata, + null ); Assert.assertNull(pathToSchemas); } @@ -96,9 +96,9 @@ public class AdditionalPropertiesValidatorTest { Assert.assertThrows(RuntimeException.class, () -> validator.validate( arg, StringSchema.class, - properties, SchemaValidator.class, - validationMetadata + validationMetadata, + properties )); } } diff --git a/src/main/resources/java/src/test/java/org/openapitools/schemas/validators/FormatValidatorTest.hbs b/src/main/resources/java/src/test/java/org/openapitools/schemas/validators/FormatValidatorTest.hbs index edc41502c33..54629308e71 100644 --- a/src/main/resources/java/src/test/java/org/openapitools/schemas/validators/FormatValidatorTest.hbs +++ b/src/main/resources/java/src/test/java/org/openapitools/schemas/validators/FormatValidatorTest.hbs @@ -27,9 +27,9 @@ public class FormatValidatorTest { PathToSchemasMap pathToSchemasMap = validator.validate( new BigDecimal("1.0"), "int", - null, SchemaValidator.class, - validationMetadata + validationMetadata, + null ); Assert.assertNull(pathToSchemasMap); } @@ -40,9 +40,9 @@ public class FormatValidatorTest { Assert.assertThrows(RuntimeException.class, () -> validator.validate( new BigDecimal("3.14"), "int", - null, SchemaValidator.class, - validationMetadata + validationMetadata, + null )); } @@ -52,9 +52,9 @@ public class FormatValidatorTest { PathToSchemasMap pathToSchemasMap = validator.validate( new BigDecimal("1"), "int", - null, SchemaValidator.class, - validationMetadata + validationMetadata, + null ); Assert.assertNull(pathToSchemasMap); } @@ -65,9 +65,9 @@ public class FormatValidatorTest { Assert.assertThrows(RuntimeException.class, () -> validator.validate( new BigDecimal(-2147483649L), "int32", - null, SchemaValidator.class, - validationMetadata + validationMetadata, + null )); } @@ -77,9 +77,9 @@ public class FormatValidatorTest { PathToSchemasMap pathToSchemasMap = validator.validate( new BigDecimal(-2147483648), "int32", - null, SchemaValidator.class, - validationMetadata + validationMetadata, + null ); Assert.assertNull(pathToSchemasMap); } @@ -90,9 +90,9 @@ public class FormatValidatorTest { PathToSchemasMap pathToSchemasMap = validator.validate( new BigDecimal(2147483647), "int32", - null, SchemaValidator.class, - validationMetadata + validationMetadata, + null ); Assert.assertNull(pathToSchemasMap); } @@ -103,9 +103,9 @@ public class FormatValidatorTest { Assert.assertThrows(RuntimeException.class, () -> validator.validate( BigDecimal.valueOf(2147483648L), "int32", - null, SchemaValidator.class, - validationMetadata + validationMetadata, + null )); } @@ -116,9 +116,9 @@ public class FormatValidatorTest { Assert.assertThrows(RuntimeException.class, () -> validator.validate( new BigDecimal(new BigInteger("-9223372036854775809")), "int64", - null, SchemaValidator.class, - validationMetadata + validationMetadata, + null )); } @@ -128,9 +128,9 @@ public class FormatValidatorTest { PathToSchemasMap pathToSchemasMap = validator.validate( new BigDecimal(-9223372036854775808L), "int64", - null, SchemaValidator.class, - validationMetadata + validationMetadata, + null ); Assert.assertNull(pathToSchemasMap); } @@ -141,9 +141,9 @@ public class FormatValidatorTest { PathToSchemasMap pathToSchemasMap = validator.validate( new BigDecimal(9223372036854775807L), "int64", - null, SchemaValidator.class, - validationMetadata + validationMetadata, + null ); Assert.assertNull(pathToSchemasMap); } @@ -155,9 +155,9 @@ public class FormatValidatorTest { Assert.assertThrows(RuntimeException.class, () -> validator.validate( new BigDecimal(new BigInteger("9223372036854775808")), "int64", - null, SchemaValidator.class, - validationMetadata + validationMetadata, + null )); } @@ -167,9 +167,9 @@ public class FormatValidatorTest { Assert.assertThrows(RuntimeException.class, () -> validator.validate( BigDecimal.valueOf(-3.402823466385289e+38), "float", - null, SchemaValidator.class, - validationMetadata + validationMetadata, + null )); } @@ -179,9 +179,9 @@ public class FormatValidatorTest { PathToSchemasMap pathToSchemasMap = validator.validate( BigDecimal.valueOf(-3.4028234663852886e+38), "float", - null, SchemaValidator.class, - validationMetadata + validationMetadata, + null ); Assert.assertNull(pathToSchemasMap); } @@ -192,9 +192,9 @@ public class FormatValidatorTest { PathToSchemasMap pathToSchemasMap = validator.validate( new BigDecimal("3.4028234663852886e+38"), "float", - null, SchemaValidator.class, - validationMetadata + validationMetadata, + null ); Assert.assertNull(pathToSchemasMap); } @@ -205,9 +205,9 @@ public class FormatValidatorTest { Assert.assertThrows(RuntimeException.class, () -> validator.validate( BigDecimal.valueOf(3.402823466385289e+38), "float", - null, SchemaValidator.class, - validationMetadata + validationMetadata, + null )); } @@ -217,9 +217,9 @@ public class FormatValidatorTest { Assert.assertThrows(RuntimeException.class, () -> validator.validate( new BigDecimal("-1.7976931348623157082e+308"), "double", - null, SchemaValidator.class, - validationMetadata + validationMetadata, + null )); } @@ -229,9 +229,9 @@ public class FormatValidatorTest { PathToSchemasMap pathToSchemasMap = validator.validate( BigDecimal.valueOf(-1.7976931348623157E+308d), "double", - null, SchemaValidator.class, - validationMetadata + validationMetadata, + null ); Assert.assertNull(pathToSchemasMap); } @@ -242,9 +242,9 @@ public class FormatValidatorTest { PathToSchemasMap pathToSchemasMap = validator.validate( BigDecimal.valueOf(1.7976931348623157E+308d), "double", - null, SchemaValidator.class, - validationMetadata + validationMetadata, + null ); Assert.assertNull(pathToSchemasMap); } @@ -255,9 +255,9 @@ public class FormatValidatorTest { Assert.assertThrows(RuntimeException.class, () -> validator.validate( new BigDecimal("1.7976931348623157082e+308"), "double", - null, SchemaValidator.class, - validationMetadata + validationMetadata, + null )); } @@ -267,9 +267,9 @@ public class FormatValidatorTest { Assert.assertThrows(RuntimeException.class, () -> validator.validate( "abc", "number", - null, SchemaValidator.class, - validationMetadata + validationMetadata, + null )); } @@ -279,9 +279,9 @@ public class FormatValidatorTest { PathToSchemasMap pathToSchemasMap = validator.validate( "3.14", "number", - null, SchemaValidator.class, - validationMetadata + validationMetadata, + null ); Assert.assertNull(pathToSchemasMap); } @@ -292,9 +292,9 @@ public class FormatValidatorTest { PathToSchemasMap pathToSchemasMap = validator.validate( "1", "number", - null, SchemaValidator.class, - validationMetadata + validationMetadata, + null ); Assert.assertNull(pathToSchemasMap); } @@ -305,9 +305,9 @@ public class FormatValidatorTest { Assert.assertThrows(RuntimeException.class, () -> validator.validate( "abc", "date", - null, SchemaValidator.class, - validationMetadata + validationMetadata, + null )); } @@ -317,9 +317,9 @@ public class FormatValidatorTest { PathToSchemasMap pathToSchemasMap = validator.validate( "2017-01-20", "date", - null, SchemaValidator.class, - validationMetadata + validationMetadata, + null ); Assert.assertNull(pathToSchemasMap); } @@ -330,9 +330,9 @@ public class FormatValidatorTest { Assert.assertThrows(RuntimeException.class, () -> validator.validate( "abc", "date-time", - null, SchemaValidator.class, - validationMetadata + validationMetadata, + null )); } @@ -342,9 +342,9 @@ public class FormatValidatorTest { PathToSchemasMap pathToSchemasMap = validator.validate( "2017-07-21T17:32:28Z", "date-time", - null, SchemaValidator.class, - validationMetadata + validationMetadata, + null ); Assert.assertNull(pathToSchemasMap); } diff --git a/src/main/resources/java/src/test/java/org/openapitools/schemas/validators/ItemsValidatorTest.hbs b/src/main/resources/java/src/test/java/org/openapitools/schemas/validators/ItemsValidatorTest.hbs index 1884c623486..1a9c8c68a79 100644 --- a/src/main/resources/java/src/test/java/org/openapitools/schemas/validators/ItemsValidatorTest.hbs +++ b/src/main/resources/java/src/test/java/org/openapitools/schemas/validators/ItemsValidatorTest.hbs @@ -34,9 +34,9 @@ public class ItemsValidatorTest { PathToSchemasMap pathToSchemas = validator.validate( arg, StringSchema.class, - null, SchemaValidator.class, - validationMetadata + validationMetadata, + null ); List expectedPathToItem = new ArrayList<>(); expectedPathToItem.add("args[0]"); @@ -63,9 +63,9 @@ public class ItemsValidatorTest { PathToSchemasMap pathToSchemas = validator.validate( 1, StringSchema.class, - null, SchemaValidator.class, - validationMetadata + validationMetadata, + null ); Assert.assertNull(pathToSchemas); } @@ -87,9 +87,9 @@ public class ItemsValidatorTest { Assert.assertThrows(RuntimeException.class, () -> validator.validate( arg, StringSchema.class, - null, SchemaValidator.class, - validationMetadata + validationMetadata, + null )); } } diff --git a/src/main/resources/java/src/test/java/org/openapitools/schemas/validators/PropertiesValidatorTest.hbs b/src/main/resources/java/src/test/java/org/openapitools/schemas/validators/PropertiesValidatorTest.hbs index 3c1ed050020..15a83c1caa6 100644 --- a/src/main/resources/java/src/test/java/org/openapitools/schemas/validators/PropertiesValidatorTest.hbs +++ b/src/main/resources/java/src/test/java/org/openapitools/schemas/validators/PropertiesValidatorTest.hbs @@ -38,9 +38,9 @@ public class PropertiesValidatorTest { PathToSchemasMap pathToSchemas = validator.validate( arg, properties, - null, SchemaValidator.class, - validationMetadata + validationMetadata, + null ); List expectedPathToItem = new ArrayList<>(); expectedPathToItem.add("args[0]"); @@ -70,9 +70,9 @@ public class PropertiesValidatorTest { PathToSchemasMap pathToSchemas = validator.validate( 1, properties, - null, SchemaValidator.class, - validationMetadata + validationMetadata, + null ); Assert.assertNull(pathToSchemas); } @@ -97,9 +97,9 @@ public class PropertiesValidatorTest { Assert.assertThrows(RuntimeException.class, () -> validator.validate( arg, properties, - null, SchemaValidator.class, - validationMetadata + validationMetadata, + null )); } } diff --git a/src/main/resources/java/src/test/java/org/openapitools/schemas/validators/RequiredValidatorTest.hbs b/src/main/resources/java/src/test/java/org/openapitools/schemas/validators/RequiredValidatorTest.hbs index 7b6c4e4b011..901b1f759c3 100644 --- a/src/main/resources/java/src/test/java/org/openapitools/schemas/validators/RequiredValidatorTest.hbs +++ b/src/main/resources/java/src/test/java/org/openapitools/schemas/validators/RequiredValidatorTest.hbs @@ -39,9 +39,9 @@ public class RequiredValidatorTest { PathToSchemasMap pathToSchemas = validator.validate( arg, requiredProperties, - null, SchemaValidator.class, - validationMetadata + validationMetadata, + null ); Assert.assertNull(pathToSchemas); } @@ -63,9 +63,9 @@ public class RequiredValidatorTest { PathToSchemasMap pathToSchemas = validator.validate( 1, properties, - null, SchemaValidator.class, - validationMetadata + validationMetadata, + null ); Assert.assertNull(pathToSchemas); } @@ -90,9 +90,9 @@ public class RequiredValidatorTest { Assert.assertThrows(RuntimeException.class, () -> validator.validate( arg, requiredProperties, - null, SchemaValidator.class, - validationMetadata + validationMetadata, + null )); } } diff --git a/src/main/resources/java/src/test/java/org/openapitools/schemas/validators/TypeValidatorTest.hbs b/src/main/resources/java/src/test/java/org/openapitools/schemas/validators/TypeValidatorTest.hbs index ea2e3373f47..1fe9c2ae222 100644 --- a/src/main/resources/java/src/test/java/org/openapitools/schemas/validators/TypeValidatorTest.hbs +++ b/src/main/resources/java/src/test/java/org/openapitools/schemas/validators/TypeValidatorTest.hbs @@ -27,9 +27,9 @@ public class TypeValidatorTest { PathToSchemasMap pathToSchemasMap = validator.validate( "hi", value, - null, SchemaValidator.class, - validationMetadata + validationMetadata, + null ); Assert.assertNull(pathToSchemasMap); } @@ -48,9 +48,9 @@ public class TypeValidatorTest { Assert.assertThrows(RuntimeException.class, () -> validator.validate( 1, value, - null, SchemaValidator.class, - validationMetadata + validationMetadata, + null )); } } From 103b9f55a724cb8d88f7fdb76f86dfad3385493d Mon Sep 17 00:00:00 2001 From: Justin Black Date: Thu, 9 Nov 2023 10:59:20 -0800 Subject: [PATCH 2/2] Fixes format tests --- .../schemas/SchemaValidator.java | 2 +- .../AdditionalPropertiesValidator.java | 2 +- .../schemas/validators/FormatValidator.java | 64 ++++++++++---- .../schemas/validators/ItemsValidator.java | 2 +- .../schemas/validators/KeywordValidator.java | 2 +- .../validators/PropertiesValidator.java | 2 +- .../schemas/validators/RequiredValidator.java | 2 +- .../schemas/validators/TypeValidator.java | 2 +- .../AdditionalPropertiesValidatorTest.java | 6 +- .../validators/FormatValidatorTest.java | 86 +++++++++---------- .../validators/ItemsValidatorTest.java | 6 +- .../validators/PropertiesValidatorTest.java | 6 +- .../validators/RequiredValidatorTest.java | 6 +- .../schemas/validators/TypeValidatorTest.java | 4 +- .../openapitools/schemas/SchemaValidator.hbs | 2 +- .../AdditionalPropertiesValidator.hbs | 2 +- .../schemas/validators/FormatValidator.hbs | 64 ++++++++++---- .../schemas/validators/ItemsValidator.hbs | 2 +- .../schemas/validators/KeywordValidator.hbs | 2 +- .../validators/PropertiesValidator.hbs | 2 +- .../schemas/validators/RequiredValidator.hbs | 2 +- .../schemas/validators/TypeValidator.hbs | 2 +- .../AdditionalPropertiesValidatorTest.hbs | 6 +- .../validators/FormatValidatorTest.hbs | 86 +++++++++---------- .../schemas/validators/ItemsValidatorTest.hbs | 6 +- .../validators/PropertiesValidatorTest.hbs | 6 +- .../validators/RequiredValidatorTest.hbs | 6 +- .../schemas/validators/TypeValidatorTest.hbs | 4 +- 28 files changed, 218 insertions(+), 166 deletions(-) diff --git a/samples/client/petstore/java/src/main/java/org/openapijsonschematools/schemas/SchemaValidator.java b/samples/client/petstore/java/src/main/java/org/openapijsonschematools/schemas/SchemaValidator.java index 4b53268e0c5..f4fa5392c3a 100644 --- a/samples/client/petstore/java/src/main/java/org/openapijsonschematools/schemas/SchemaValidator.java +++ b/samples/client/petstore/java/src/main/java/org/openapijsonschematools/schemas/SchemaValidator.java @@ -63,9 +63,9 @@ static PathToSchemasMap validate( } KeywordValidator validatorClass = keywordToValidator.get(jsonKeyword); PathToSchemasMap otherPathToSchemas = validatorClass.validate( + castSchemaCls, arg, constraint, - castSchemaCls, validationMetadata, extra ); diff --git a/samples/client/petstore/java/src/main/java/org/openapijsonschematools/schemas/validators/AdditionalPropertiesValidator.java b/samples/client/petstore/java/src/main/java/org/openapijsonschematools/schemas/validators/AdditionalPropertiesValidator.java index b5c6018665b..3c3a3d3c71a 100644 --- a/samples/client/petstore/java/src/main/java/org/openapijsonschematools/schemas/validators/AdditionalPropertiesValidator.java +++ b/samples/client/petstore/java/src/main/java/org/openapijsonschematools/schemas/validators/AdditionalPropertiesValidator.java @@ -14,7 +14,7 @@ public class AdditionalPropertiesValidator implements KeywordValidator { @Override - public PathToSchemasMap validate(Object arg, Object constraint, Class cls, ValidationMetadata validationMetadata, Object extra) { + public PathToSchemasMap validate(Class cls, Object arg, Object constraint, ValidationMetadata validationMetadata, Object extra) { if (!(arg instanceof Map)) { return null; } diff --git a/samples/client/petstore/java/src/main/java/org/openapijsonschematools/schemas/validators/FormatValidator.java b/samples/client/petstore/java/src/main/java/org/openapijsonschematools/schemas/validators/FormatValidator.java index f6c2fed309b..a9b22843008 100644 --- a/samples/client/petstore/java/src/main/java/org/openapijsonschematools/schemas/validators/FormatValidator.java +++ b/samples/client/petstore/java/src/main/java/org/openapijsonschematools/schemas/validators/FormatValidator.java @@ -6,52 +6,78 @@ import org.openapijsonschematools.schemas.ValidationMetadata; import java.math.BigDecimal; +import java.math.BigInteger; import java.time.format.DateTimeParseException; import java.util.UUID; public class FormatValidator implements KeywordValidator { - private final static BigDecimal int32InclusiveMinimum = BigDecimal.valueOf(-2147483648); - private final static BigDecimal int32InclusiveMaximum = BigDecimal.valueOf(2147483647); - private final static BigDecimal int64InclusiveMinimum = BigDecimal.valueOf(-9223372036854775808L); - private final static BigDecimal int64InclusiveMaximum = BigDecimal.valueOf(9223372036854775807L); + private final static BigInteger int32InclusiveMinimum = BigInteger.valueOf(-2147483648L); + private final static BigInteger int32InclusiveMaximum = BigInteger.valueOf(2147483647L); + private final static BigInteger int64InclusiveMinimum = BigInteger.valueOf(-9223372036854775808L); + private final static BigInteger int64InclusiveMaximum = BigInteger.valueOf(9223372036854775807L); private final static BigDecimal floatInclusiveMinimum = BigDecimal.valueOf(-3.4028234663852886e+38); private final static BigDecimal floatInclusiveMaximum = BigDecimal.valueOf(3.4028234663852886e+38); private final static BigDecimal doubleInclusiveMinimum = BigDecimal.valueOf(-1.7976931348623157E+308d); private final static BigDecimal doubleInclusiveMaximum = BigDecimal.valueOf(1.7976931348623157E+308d); - private Void validateNumericFormat(BigDecimal arg, String format, ValidationMetadata validationMetadata) { + private Void validateNumericFormat(Number arg, String format, ValidationMetadata validationMetadata) { if (format.startsWith("int")) { // there is a json schema test where 1.0 validates as an integer - if (arg.stripTrailingZeros().scale() > 0) { - throw new RuntimeException( - "Invalid non-integer value " + arg + " for format " + format + " at " + validationMetadata.pathToItem() - ); + BigInteger intArg; + if (arg instanceof Float || arg instanceof Double) { + Double doubleArg = (Double) arg; + if (Math.floor((Double) arg) != doubleArg) { + throw new RuntimeException( + "Invalid non-integer value " + arg + " for format " + format + " at " + validationMetadata.pathToItem() + ); + } + if (arg instanceof Float) { + Integer smallInt = Math.round((Float) arg); + intArg = BigInteger.valueOf(smallInt.longValue()); + } else { + intArg = BigInteger.valueOf(Math.round((Double) arg)); + } + } else if (arg instanceof Integer) { + intArg = BigInteger.valueOf(arg.longValue()); + } else if (arg instanceof Long) { + intArg = BigInteger.valueOf((Long) arg); + } else { + intArg = (BigInteger) arg; } if (format.equals("int32")) { - if (arg.compareTo(int32InclusiveMinimum) < 0 || arg.compareTo(int32InclusiveMaximum) > 0 ){ + if (intArg.compareTo(int32InclusiveMinimum) < 0 || intArg.compareTo(int32InclusiveMaximum) > 0) { throw new RuntimeException( - "Invalid value "+arg+" for format int32 at "+validationMetadata.pathToItem() + "Invalid value " + arg + " for format int32 at " + validationMetadata.pathToItem() ); } return null; } else if (format.equals("int64")) { - if (arg.compareTo(int64InclusiveMinimum) < 0 || arg.compareTo(int64InclusiveMaximum) > 0 ){ + if (intArg.compareTo(int64InclusiveMinimum) < 0 || intArg.compareTo(int64InclusiveMaximum) > 0) { throw new RuntimeException( - "Invalid value "+arg+" for format int64 at "+validationMetadata.pathToItem() + "Invalid value " + arg + " for format int64 at " + validationMetadata.pathToItem() ); } return null; } return null; - } else if (format.equals("float")) { - if (arg.compareTo(floatInclusiveMinimum) < 0 || arg.compareTo(floatInclusiveMaximum) > 0 ){ + } + BigDecimal decimalArg; + if (arg instanceof Float) { + decimalArg = new BigDecimal((Float) arg); + } else if (arg instanceof Double) { + decimalArg = BigDecimal.valueOf((Double) arg); + } else { + decimalArg = (BigDecimal) arg; + } + if (format.equals("float")) { + if (decimalArg.compareTo(floatInclusiveMinimum) < 0 || decimalArg.compareTo(floatInclusiveMaximum) > 0 ){ throw new RuntimeException( "Invalid value "+arg+" for format float at "+validationMetadata.pathToItem() ); } return null; } else if (format.equals("double")) { - if (arg.compareTo(doubleInclusiveMinimum) < 0 || arg.compareTo(doubleInclusiveMaximum) > 0 ){ + if (decimalArg.compareTo(doubleInclusiveMinimum) < 0 || decimalArg.compareTo(doubleInclusiveMaximum) > 0 ){ throw new RuntimeException( "Invalid value "+arg+" for format double at "+validationMetadata.pathToItem() ); @@ -107,11 +133,11 @@ private Void validateStringFormat(String arg, String format, ValidationMetadata } @Override - public PathToSchemasMap validate(Object arg, Object constraint, Class cls, ValidationMetadata validationMetadata, Object extra) { + public PathToSchemasMap validate(Class cls, Object arg, Object constraint, ValidationMetadata validationMetadata, Object extra) { String format = (String) constraint; - if (arg instanceof BigDecimal) { + if (arg instanceof Number) { validateNumericFormat( - (BigDecimal) arg, + (Number) arg, format, validationMetadata ); diff --git a/samples/client/petstore/java/src/main/java/org/openapijsonschematools/schemas/validators/ItemsValidator.java b/samples/client/petstore/java/src/main/java/org/openapijsonschematools/schemas/validators/ItemsValidator.java index 5b1eaee4732..63b2e18a937 100644 --- a/samples/client/petstore/java/src/main/java/org/openapijsonschematools/schemas/validators/ItemsValidator.java +++ b/samples/client/petstore/java/src/main/java/org/openapijsonschematools/schemas/validators/ItemsValidator.java @@ -10,7 +10,7 @@ public class ItemsValidator implements KeywordValidator { @Override - public PathToSchemasMap validate(Object arg, Object constraint, Class cls, ValidationMetadata validationMetadata, Object extra) { + public PathToSchemasMap validate(Class cls, Object arg, Object constraint, ValidationMetadata validationMetadata, Object extra) { if (!(arg instanceof List)) { return null; } diff --git a/samples/client/petstore/java/src/main/java/org/openapijsonschematools/schemas/validators/KeywordValidator.java b/samples/client/petstore/java/src/main/java/org/openapijsonschematools/schemas/validators/KeywordValidator.java index a8099bd9d0b..73ca6e76c81 100644 --- a/samples/client/petstore/java/src/main/java/org/openapijsonschematools/schemas/validators/KeywordValidator.java +++ b/samples/client/petstore/java/src/main/java/org/openapijsonschematools/schemas/validators/KeywordValidator.java @@ -6,9 +6,9 @@ public interface KeywordValidator { PathToSchemasMap validate( + Class cls, Object arg, Object constraint, - Class cls, ValidationMetadata validationMetadata, Object extra); } diff --git a/samples/client/petstore/java/src/main/java/org/openapijsonschematools/schemas/validators/PropertiesValidator.java b/samples/client/petstore/java/src/main/java/org/openapijsonschematools/schemas/validators/PropertiesValidator.java index 9b295688859..05b1ebb6916 100644 --- a/samples/client/petstore/java/src/main/java/org/openapijsonschematools/schemas/validators/PropertiesValidator.java +++ b/samples/client/petstore/java/src/main/java/org/openapijsonschematools/schemas/validators/PropertiesValidator.java @@ -13,7 +13,7 @@ public class PropertiesValidator implements KeywordValidator { @Override - public PathToSchemasMap validate(Object arg, Object constraint, Class cls, ValidationMetadata validationMetadata, Object extra) { + public PathToSchemasMap validate(Class cls, Object arg, Object constraint, ValidationMetadata validationMetadata, Object extra) { if (!(arg instanceof Map)) { return null; } diff --git a/samples/client/petstore/java/src/main/java/org/openapijsonschematools/schemas/validators/RequiredValidator.java b/samples/client/petstore/java/src/main/java/org/openapijsonschematools/schemas/validators/RequiredValidator.java index 1eef78160d9..2aff713169b 100644 --- a/samples/client/petstore/java/src/main/java/org/openapijsonschematools/schemas/validators/RequiredValidator.java +++ b/samples/client/petstore/java/src/main/java/org/openapijsonschematools/schemas/validators/RequiredValidator.java @@ -11,7 +11,7 @@ public class RequiredValidator implements KeywordValidator { @Override - public PathToSchemasMap validate(Object arg, Object constraint, Class cls, ValidationMetadata validationMetadata, Object extra) { + public PathToSchemasMap validate(Class cls, Object arg, Object constraint, ValidationMetadata validationMetadata, Object extra) { if (!(arg instanceof Map)) { return null; } diff --git a/samples/client/petstore/java/src/main/java/org/openapijsonschematools/schemas/validators/TypeValidator.java b/samples/client/petstore/java/src/main/java/org/openapijsonschematools/schemas/validators/TypeValidator.java index 387f77098be..de00d1459e4 100644 --- a/samples/client/petstore/java/src/main/java/org/openapijsonschematools/schemas/validators/TypeValidator.java +++ b/samples/client/petstore/java/src/main/java/org/openapijsonschematools/schemas/validators/TypeValidator.java @@ -8,7 +8,7 @@ public class TypeValidator implements KeywordValidator { @Override - public PathToSchemasMap validate(Object arg, Object constraint, Class cls, ValidationMetadata validationMetadata, Object extra) { + public PathToSchemasMap validate(Class cls, Object arg, Object constraint, ValidationMetadata validationMetadata, Object extra) { HashSet> types = (HashSet>) constraint; Class argClass; if (arg == null) { diff --git a/samples/client/petstore/java/src/test/java/org/openapijsonschematools/schemas/validators/AdditionalPropertiesValidatorTest.java b/samples/client/petstore/java/src/test/java/org/openapijsonschematools/schemas/validators/AdditionalPropertiesValidatorTest.java index 3a82f98ab3a..9592437c85a 100644 --- a/samples/client/petstore/java/src/test/java/org/openapijsonschematools/schemas/validators/AdditionalPropertiesValidatorTest.java +++ b/samples/client/petstore/java/src/test/java/org/openapijsonschematools/schemas/validators/AdditionalPropertiesValidatorTest.java @@ -37,9 +37,9 @@ public void testCorrectPropertySucceeds() { FrozenMap arg = new FrozenMap<>(mutableMap); final AdditionalPropertiesValidator validator = new AdditionalPropertiesValidator(); PathToSchemasMap pathToSchemas = validator.validate( + SchemaValidator.class, arg, StringSchema.class, - SchemaValidator.class, validationMetadata, properties ); @@ -66,9 +66,9 @@ public void testNotApplicableTypeReturnsNull() { ); final AdditionalPropertiesValidator validator = new AdditionalPropertiesValidator(); PathToSchemasMap pathToSchemas = validator.validate( + SchemaValidator.class, 1, StringSchema.class, - SchemaValidator.class, validationMetadata, null ); @@ -94,9 +94,9 @@ public void testIncorrectPropertyValueFails() { FrozenMap arg = new FrozenMap<>(mutableMap); final AdditionalPropertiesValidator validator = new AdditionalPropertiesValidator(); Assert.assertThrows(RuntimeException.class, () -> validator.validate( + SchemaValidator.class, arg, StringSchema.class, - SchemaValidator.class, validationMetadata, properties )); diff --git a/samples/client/petstore/java/src/test/java/org/openapijsonschematools/schemas/validators/FormatValidatorTest.java b/samples/client/petstore/java/src/test/java/org/openapijsonschematools/schemas/validators/FormatValidatorTest.java index 7476d027143..1c651e6172a 100644 --- a/samples/client/petstore/java/src/test/java/org/openapijsonschematools/schemas/validators/FormatValidatorTest.java +++ b/samples/client/petstore/java/src/test/java/org/openapijsonschematools/schemas/validators/FormatValidatorTest.java @@ -25,9 +25,9 @@ public class FormatValidatorTest { public void testIntFormatSucceedsWithFloat() { final FormatValidator validator = new FormatValidator(); PathToSchemasMap pathToSchemasMap = validator.validate( - new BigDecimal("1.0"), - "int", SchemaValidator.class, + 1.0f, + "int", validationMetadata, null ); @@ -38,9 +38,9 @@ public void testIntFormatSucceedsWithFloat() { public void testIntFormatFailsWithFloat() { final FormatValidator validator = new FormatValidator(); Assert.assertThrows(RuntimeException.class, () -> validator.validate( - new BigDecimal("3.14"), - "int", SchemaValidator.class, + 3.14f, + "int", validationMetadata, null )); @@ -50,9 +50,9 @@ public void testIntFormatFailsWithFloat() { public void testIntFormatSucceedsWithInt() { final FormatValidator validator = new FormatValidator(); PathToSchemasMap pathToSchemasMap = validator.validate( - new BigDecimal("1"), - "int", SchemaValidator.class, + 1, + "int", validationMetadata, null ); @@ -63,9 +63,9 @@ public void testIntFormatSucceedsWithInt() { public void testInt32UnderMinFails() { final FormatValidator validator = new FormatValidator(); Assert.assertThrows(RuntimeException.class, () -> validator.validate( - new BigDecimal(-2147483649L), - "int32", SchemaValidator.class, + -2147483649L, + "int32", validationMetadata, null )); @@ -75,9 +75,9 @@ public void testInt32UnderMinFails() { public void testInt32InclusiveMinSucceeds() { final FormatValidator validator = new FormatValidator(); PathToSchemasMap pathToSchemasMap = validator.validate( - new BigDecimal(-2147483648), - "int32", SchemaValidator.class, + -2147483648, + "int32", validationMetadata, null ); @@ -88,9 +88,9 @@ public void testInt32InclusiveMinSucceeds() { public void testInt32InclusiveMaxSucceeds() { final FormatValidator validator = new FormatValidator(); PathToSchemasMap pathToSchemasMap = validator.validate( - new BigDecimal(2147483647), - "int32", SchemaValidator.class, + 2147483647, + "int32", validationMetadata, null ); @@ -101,9 +101,9 @@ public void testInt32InclusiveMaxSucceeds() { public void testInt32OverMaxFails() { final FormatValidator validator = new FormatValidator(); Assert.assertThrows(RuntimeException.class, () -> validator.validate( - BigDecimal.valueOf(2147483648L), - "int32", SchemaValidator.class, + 2147483648L, + "int32", validationMetadata, null )); @@ -114,9 +114,9 @@ public void testInt64UnderMinFails() { final FormatValidator validator = new FormatValidator(); Assert.assertThrows(RuntimeException.class, () -> validator.validate( - new BigDecimal(new BigInteger("-9223372036854775809")), - "int64", SchemaValidator.class, + new BigInteger("-9223372036854775809"), + "int64", validationMetadata, null )); @@ -126,9 +126,9 @@ public void testInt64UnderMinFails() { public void testInt64InclusiveMinSucceeds() { final FormatValidator validator = new FormatValidator(); PathToSchemasMap pathToSchemasMap = validator.validate( - new BigDecimal(-9223372036854775808L), - "int64", SchemaValidator.class, + -9223372036854775808L, + "int64", validationMetadata, null ); @@ -139,9 +139,9 @@ public void testInt64InclusiveMinSucceeds() { public void testInt64InclusiveMaxSucceeds() { final FormatValidator validator = new FormatValidator(); PathToSchemasMap pathToSchemasMap = validator.validate( - new BigDecimal(9223372036854775807L), - "int64", SchemaValidator.class, + 9223372036854775807L, + "int64", validationMetadata, null ); @@ -153,9 +153,9 @@ public void testInt64OverMaxFails() { final FormatValidator validator = new FormatValidator(); Assert.assertThrows(RuntimeException.class, () -> validator.validate( - new BigDecimal(new BigInteger("9223372036854775808")), - "int64", SchemaValidator.class, + new BigInteger("9223372036854775808"), + "int64", validationMetadata, null )); @@ -165,9 +165,9 @@ public void testInt64OverMaxFails() { public void testFloatUnderMinFails() { final FormatValidator validator = new FormatValidator(); Assert.assertThrows(RuntimeException.class, () -> validator.validate( - BigDecimal.valueOf(-3.402823466385289e+38), - "float", SchemaValidator.class, + -3.402823466385289e+38d, + "float", validationMetadata, null )); @@ -177,9 +177,9 @@ public void testFloatUnderMinFails() { public void testFloatInclusiveMinSucceeds() { final FormatValidator validator = new FormatValidator(); PathToSchemasMap pathToSchemasMap = validator.validate( - BigDecimal.valueOf(-3.4028234663852886e+38), - "float", SchemaValidator.class, + -3.4028234663852886e+38f, + "float", validationMetadata, null ); @@ -190,9 +190,9 @@ public void testFloatInclusiveMinSucceeds() { public void testFloatInclusiveMaxSucceeds() { final FormatValidator validator = new FormatValidator(); PathToSchemasMap pathToSchemasMap = validator.validate( - new BigDecimal("3.4028234663852886e+38"), - "float", SchemaValidator.class, + 3.4028234663852886e+38f, + "float", validationMetadata, null ); @@ -203,9 +203,9 @@ public void testFloatInclusiveMaxSucceeds() { public void testFloatOverMaxFails() { final FormatValidator validator = new FormatValidator(); Assert.assertThrows(RuntimeException.class, () -> validator.validate( - BigDecimal.valueOf(3.402823466385289e+38), - "float", SchemaValidator.class, + 3.402823466385289e+38d, + "float", validationMetadata, null )); @@ -215,9 +215,9 @@ public void testFloatOverMaxFails() { public void testDoubleUnderMinFails() { final FormatValidator validator = new FormatValidator(); Assert.assertThrows(RuntimeException.class, () -> validator.validate( + SchemaValidator.class, new BigDecimal("-1.7976931348623157082e+308"), "double", - SchemaValidator.class, validationMetadata, null )); @@ -227,9 +227,9 @@ public void testDoubleUnderMinFails() { public void testDoubleInclusiveMinSucceeds() { final FormatValidator validator = new FormatValidator(); PathToSchemasMap pathToSchemasMap = validator.validate( - BigDecimal.valueOf(-1.7976931348623157E+308d), - "double", SchemaValidator.class, + -1.7976931348623157E+308d, + "double", validationMetadata, null ); @@ -240,9 +240,9 @@ public void testDoubleInclusiveMinSucceeds() { public void testDoubleInclusiveMaxSucceeds() { final FormatValidator validator = new FormatValidator(); PathToSchemasMap pathToSchemasMap = validator.validate( - BigDecimal.valueOf(1.7976931348623157E+308d), - "double", SchemaValidator.class, + 1.7976931348623157E+308d, + "double", validationMetadata, null ); @@ -253,9 +253,9 @@ public void testDoubleInclusiveMaxSucceeds() { public void testDoubleOverMaxFails() { final FormatValidator validator = new FormatValidator(); Assert.assertThrows(RuntimeException.class, () -> validator.validate( + SchemaValidator.class, new BigDecimal("1.7976931348623157082e+308"), "double", - SchemaValidator.class, validationMetadata, null )); @@ -265,9 +265,9 @@ public void testDoubleOverMaxFails() { public void testInvalidNumberStringFails() { final FormatValidator validator = new FormatValidator(); Assert.assertThrows(RuntimeException.class, () -> validator.validate( + SchemaValidator.class, "abc", "number", - SchemaValidator.class, validationMetadata, null )); @@ -277,9 +277,9 @@ public void testInvalidNumberStringFails() { public void testValidFloatNumberStringSucceeds() { final FormatValidator validator = new FormatValidator(); PathToSchemasMap pathToSchemasMap = validator.validate( + SchemaValidator.class, "3.14", "number", - SchemaValidator.class, validationMetadata, null ); @@ -290,9 +290,9 @@ public void testValidFloatNumberStringSucceeds() { public void testValidIntNumberStringSucceeds() { final FormatValidator validator = new FormatValidator(); PathToSchemasMap pathToSchemasMap = validator.validate( + SchemaValidator.class, "1", "number", - SchemaValidator.class, validationMetadata, null ); @@ -303,9 +303,9 @@ public void testValidIntNumberStringSucceeds() { public void testInvalidDateStringFails() { final FormatValidator validator = new FormatValidator(); Assert.assertThrows(RuntimeException.class, () -> validator.validate( + SchemaValidator.class, "abc", "date", - SchemaValidator.class, validationMetadata, null )); @@ -315,9 +315,9 @@ public void testInvalidDateStringFails() { public void testValidDateStringSucceeds() { final FormatValidator validator = new FormatValidator(); PathToSchemasMap pathToSchemasMap = validator.validate( + SchemaValidator.class, "2017-01-20", "date", - SchemaValidator.class, validationMetadata, null ); @@ -328,9 +328,9 @@ public void testValidDateStringSucceeds() { public void testInvalidDateTimeStringFails() { final FormatValidator validator = new FormatValidator(); Assert.assertThrows(RuntimeException.class, () -> validator.validate( + SchemaValidator.class, "abc", "date-time", - SchemaValidator.class, validationMetadata, null )); @@ -340,9 +340,9 @@ public void testInvalidDateTimeStringFails() { public void testValidDateTimeStringSucceeds() { final FormatValidator validator = new FormatValidator(); PathToSchemasMap pathToSchemasMap = validator.validate( + SchemaValidator.class, "2017-07-21T17:32:28Z", "date-time", - SchemaValidator.class, validationMetadata, null ); diff --git a/samples/client/petstore/java/src/test/java/org/openapijsonschematools/schemas/validators/ItemsValidatorTest.java b/samples/client/petstore/java/src/test/java/org/openapijsonschematools/schemas/validators/ItemsValidatorTest.java index 8dc1aa3b540..554132c2ca2 100644 --- a/samples/client/petstore/java/src/test/java/org/openapijsonschematools/schemas/validators/ItemsValidatorTest.java +++ b/samples/client/petstore/java/src/test/java/org/openapijsonschematools/schemas/validators/ItemsValidatorTest.java @@ -32,9 +32,9 @@ public void testCorrectItemsSucceeds() { FrozenList arg = new FrozenList<>(mutableList); final ItemsValidator validator = new ItemsValidator(); PathToSchemasMap pathToSchemas = validator.validate( + SchemaValidator.class, arg, StringSchema.class, - SchemaValidator.class, validationMetadata, null ); @@ -61,9 +61,9 @@ public void testNotApplicableTypeReturnsNull() { ); final ItemsValidator validator = new ItemsValidator(); PathToSchemasMap pathToSchemas = validator.validate( + SchemaValidator.class, 1, StringSchema.class, - SchemaValidator.class, validationMetadata, null ); @@ -85,9 +85,9 @@ public void testIncorrectItemFails() { FrozenList arg = new FrozenList<>(mutableList); final ItemsValidator validator = new ItemsValidator(); Assert.assertThrows(RuntimeException.class, () -> validator.validate( + SchemaValidator.class, arg, StringSchema.class, - SchemaValidator.class, validationMetadata, null )); diff --git a/samples/client/petstore/java/src/test/java/org/openapijsonschematools/schemas/validators/PropertiesValidatorTest.java b/samples/client/petstore/java/src/test/java/org/openapijsonschematools/schemas/validators/PropertiesValidatorTest.java index a142a6d955b..8a98564e8e5 100644 --- a/samples/client/petstore/java/src/test/java/org/openapijsonschematools/schemas/validators/PropertiesValidatorTest.java +++ b/samples/client/petstore/java/src/test/java/org/openapijsonschematools/schemas/validators/PropertiesValidatorTest.java @@ -36,9 +36,9 @@ public void testCorrectPropertySucceeds() { mutableMap.put("someString", "abc"); FrozenMap arg = new FrozenMap<>(mutableMap); PathToSchemasMap pathToSchemas = validator.validate( + SchemaValidator.class, arg, properties, - SchemaValidator.class, validationMetadata, null ); @@ -68,9 +68,9 @@ public void testNotApplicableTypeReturnsNull() { new LinkedHashSet<>() ); PathToSchemasMap pathToSchemas = validator.validate( + SchemaValidator.class, 1, properties, - SchemaValidator.class, validationMetadata, null ); @@ -95,9 +95,9 @@ public void testIncorrectPropertyValueFails() { mutableMap.put("someString", 1); FrozenMap arg = new FrozenMap<>(mutableMap); Assert.assertThrows(RuntimeException.class, () -> validator.validate( + SchemaValidator.class, arg, properties, - SchemaValidator.class, validationMetadata, null )); diff --git a/samples/client/petstore/java/src/test/java/org/openapijsonschematools/schemas/validators/RequiredValidatorTest.java b/samples/client/petstore/java/src/test/java/org/openapijsonschematools/schemas/validators/RequiredValidatorTest.java index f5c8fd5d95f..5a699f23fb3 100644 --- a/samples/client/petstore/java/src/test/java/org/openapijsonschematools/schemas/validators/RequiredValidatorTest.java +++ b/samples/client/petstore/java/src/test/java/org/openapijsonschematools/schemas/validators/RequiredValidatorTest.java @@ -37,9 +37,9 @@ public void testCorrectPropertySucceeds() { FrozenMap arg = new FrozenMap<>(mutableMap); final RequiredValidator validator = new RequiredValidator(); PathToSchemasMap pathToSchemas = validator.validate( + SchemaValidator.class, arg, requiredProperties, - SchemaValidator.class, validationMetadata, null ); @@ -61,9 +61,9 @@ public void testNotApplicableTypeReturnsNull() { ); final RequiredValidator validator = new RequiredValidator(); PathToSchemasMap pathToSchemas = validator.validate( + SchemaValidator.class, 1, properties, - SchemaValidator.class, validationMetadata, null ); @@ -88,9 +88,9 @@ public void testIncorrectPropertyFails() { FrozenMap arg = new FrozenMap<>(mutableMap); final RequiredValidator validator = new RequiredValidator(); Assert.assertThrows(RuntimeException.class, () -> validator.validate( + SchemaValidator.class, arg, requiredProperties, - SchemaValidator.class, validationMetadata, null )); diff --git a/samples/client/petstore/java/src/test/java/org/openapijsonschematools/schemas/validators/TypeValidatorTest.java b/samples/client/petstore/java/src/test/java/org/openapijsonschematools/schemas/validators/TypeValidatorTest.java index f3d576a0cb8..0f4ce8862b2 100644 --- a/samples/client/petstore/java/src/test/java/org/openapijsonschematools/schemas/validators/TypeValidatorTest.java +++ b/samples/client/petstore/java/src/test/java/org/openapijsonschematools/schemas/validators/TypeValidatorTest.java @@ -25,9 +25,9 @@ public void testValidateSucceeds() { new LinkedHashSet<>() ); PathToSchemasMap pathToSchemasMap = validator.validate( + SchemaValidator.class, "hi", value, - SchemaValidator.class, validationMetadata, null ); @@ -46,9 +46,9 @@ public void testValidateFailsIntIsNotString() throws RuntimeException { new LinkedHashSet<>() ); Assert.assertThrows(RuntimeException.class, () -> validator.validate( + SchemaValidator.class, 1, value, - SchemaValidator.class, validationMetadata, null )); diff --git a/src/main/resources/java/src/main/java/org/openapitools/schemas/SchemaValidator.hbs b/src/main/resources/java/src/main/java/org/openapitools/schemas/SchemaValidator.hbs index 03d68cb01d1..db8a52eee74 100644 --- a/src/main/resources/java/src/main/java/org/openapitools/schemas/SchemaValidator.hbs +++ b/src/main/resources/java/src/main/java/org/openapitools/schemas/SchemaValidator.hbs @@ -63,9 +63,9 @@ public interface SchemaValidator { } KeywordValidator validatorClass = keywordToValidator.get(jsonKeyword); PathToSchemasMap otherPathToSchemas = validatorClass.validate( + castSchemaCls, arg, constraint, - castSchemaCls, validationMetadata, extra ); diff --git a/src/main/resources/java/src/main/java/org/openapitools/schemas/validators/AdditionalPropertiesValidator.hbs b/src/main/resources/java/src/main/java/org/openapitools/schemas/validators/AdditionalPropertiesValidator.hbs index 0a7e7152abf..97a08a9ac46 100644 --- a/src/main/resources/java/src/main/java/org/openapitools/schemas/validators/AdditionalPropertiesValidator.hbs +++ b/src/main/resources/java/src/main/java/org/openapitools/schemas/validators/AdditionalPropertiesValidator.hbs @@ -14,7 +14,7 @@ import java.util.Set; public class AdditionalPropertiesValidator implements KeywordValidator { @Override - public PathToSchemasMap validate(Object arg, Object constraint, Class cls, ValidationMetadata validationMetadata, Object extra) { + public PathToSchemasMap validate(Class cls, Object arg, Object constraint, ValidationMetadata validationMetadata, Object extra) { if (!(arg instanceof Map)) { return null; } diff --git a/src/main/resources/java/src/main/java/org/openapitools/schemas/validators/FormatValidator.hbs b/src/main/resources/java/src/main/java/org/openapitools/schemas/validators/FormatValidator.hbs index e2da1b0daa2..dd6ebe78244 100644 --- a/src/main/resources/java/src/main/java/org/openapitools/schemas/validators/FormatValidator.hbs +++ b/src/main/resources/java/src/main/java/org/openapitools/schemas/validators/FormatValidator.hbs @@ -6,52 +6,78 @@ import {{{packageName}}}.schemas.SchemaValidator; import {{{packageName}}}.schemas.ValidationMetadata; import java.math.BigDecimal; +import java.math.BigInteger; import java.time.format.DateTimeParseException; import java.util.UUID; public class FormatValidator implements KeywordValidator { - private final static BigDecimal int32InclusiveMinimum = BigDecimal.valueOf(-2147483648); - private final static BigDecimal int32InclusiveMaximum = BigDecimal.valueOf(2147483647); - private final static BigDecimal int64InclusiveMinimum = BigDecimal.valueOf(-9223372036854775808L); - private final static BigDecimal int64InclusiveMaximum = BigDecimal.valueOf(9223372036854775807L); + private final static BigInteger int32InclusiveMinimum = BigInteger.valueOf(-2147483648L); + private final static BigInteger int32InclusiveMaximum = BigInteger.valueOf(2147483647L); + private final static BigInteger int64InclusiveMinimum = BigInteger.valueOf(-9223372036854775808L); + private final static BigInteger int64InclusiveMaximum = BigInteger.valueOf(9223372036854775807L); private final static BigDecimal floatInclusiveMinimum = BigDecimal.valueOf(-3.4028234663852886e+38); private final static BigDecimal floatInclusiveMaximum = BigDecimal.valueOf(3.4028234663852886e+38); private final static BigDecimal doubleInclusiveMinimum = BigDecimal.valueOf(-1.7976931348623157E+308d); private final static BigDecimal doubleInclusiveMaximum = BigDecimal.valueOf(1.7976931348623157E+308d); - private Void validateNumericFormat(BigDecimal arg, String format, ValidationMetadata validationMetadata) { + private Void validateNumericFormat(Number arg, String format, ValidationMetadata validationMetadata) { if (format.startsWith("int")) { // there is a json schema test where 1.0 validates as an integer - if (arg.stripTrailingZeros().scale() > 0) { - throw new RuntimeException( - "Invalid non-integer value " + arg + " for format " + format + " at " + validationMetadata.pathToItem() - ); + BigInteger intArg; + if (arg instanceof Float || arg instanceof Double) { + Double doubleArg = (Double) arg; + if (Math.floor((Double) arg) != doubleArg) { + throw new RuntimeException( + "Invalid non-integer value " + arg + " for format " + format + " at " + validationMetadata.pathToItem() + ); + } + if (arg instanceof Float) { + Integer smallInt = Math.round((Float) arg); + intArg = BigInteger.valueOf(smallInt.longValue()); + } else { + intArg = BigInteger.valueOf(Math.round((Double) arg)); + } + } else if (arg instanceof Integer) { + intArg = BigInteger.valueOf(arg.longValue()); + } else if (arg instanceof Long) { + intArg = BigInteger.valueOf((Long) arg); + } else { + intArg = (BigInteger) arg; } if (format.equals("int32")) { - if (arg.compareTo(int32InclusiveMinimum) < 0 || arg.compareTo(int32InclusiveMaximum) > 0 ){ + if (intArg.compareTo(int32InclusiveMinimum) < 0 || intArg.compareTo(int32InclusiveMaximum) > 0) { throw new RuntimeException( - "Invalid value "+arg+" for format int32 at "+validationMetadata.pathToItem() + "Invalid value " + arg + " for format int32 at " + validationMetadata.pathToItem() ); } return null; } else if (format.equals("int64")) { - if (arg.compareTo(int64InclusiveMinimum) < 0 || arg.compareTo(int64InclusiveMaximum) > 0 ){ + if (intArg.compareTo(int64InclusiveMinimum) < 0 || intArg.compareTo(int64InclusiveMaximum) > 0) { throw new RuntimeException( - "Invalid value "+arg+" for format int64 at "+validationMetadata.pathToItem() + "Invalid value " + arg + " for format int64 at " + validationMetadata.pathToItem() ); } return null; } return null; - } else if (format.equals("float")) { - if (arg.compareTo(floatInclusiveMinimum) < 0 || arg.compareTo(floatInclusiveMaximum) > 0 ){ + } + BigDecimal decimalArg; + if (arg instanceof Float) { + decimalArg = new BigDecimal((Float) arg); + } else if (arg instanceof Double) { + decimalArg = BigDecimal.valueOf((Double) arg); + } else { + decimalArg = (BigDecimal) arg; + } + if (format.equals("float")) { + if (decimalArg.compareTo(floatInclusiveMinimum) < 0 || decimalArg.compareTo(floatInclusiveMaximum) > 0 ){ throw new RuntimeException( "Invalid value "+arg+" for format float at "+validationMetadata.pathToItem() ); } return null; } else if (format.equals("double")) { - if (arg.compareTo(doubleInclusiveMinimum) < 0 || arg.compareTo(doubleInclusiveMaximum) > 0 ){ + if (decimalArg.compareTo(doubleInclusiveMinimum) < 0 || decimalArg.compareTo(doubleInclusiveMaximum) > 0 ){ throw new RuntimeException( "Invalid value "+arg+" for format double at "+validationMetadata.pathToItem() ); @@ -107,11 +133,11 @@ public class FormatValidator implements KeywordValidator { } @Override - public PathToSchemasMap validate(Object arg, Object constraint, Class cls, ValidationMetadata validationMetadata, Object extra) { + public PathToSchemasMap validate(Class cls, Object arg, Object constraint, ValidationMetadata validationMetadata, Object extra) { String format = (String) constraint; - if (arg instanceof BigDecimal) { + if (arg instanceof Number) { validateNumericFormat( - (BigDecimal) arg, + (Number) arg, format, validationMetadata ); diff --git a/src/main/resources/java/src/main/java/org/openapitools/schemas/validators/ItemsValidator.hbs b/src/main/resources/java/src/main/java/org/openapitools/schemas/validators/ItemsValidator.hbs index 196aef6e646..293b1af40ae 100644 --- a/src/main/resources/java/src/main/java/org/openapitools/schemas/validators/ItemsValidator.hbs +++ b/src/main/resources/java/src/main/java/org/openapitools/schemas/validators/ItemsValidator.hbs @@ -10,7 +10,7 @@ import java.util.List; public class ItemsValidator implements KeywordValidator { @Override - public PathToSchemasMap validate(Object arg, Object constraint, Class cls, ValidationMetadata validationMetadata, Object extra) { + public PathToSchemasMap validate(Class cls, Object arg, Object constraint, ValidationMetadata validationMetadata, Object extra) { if (!(arg instanceof List)) { return null; } diff --git a/src/main/resources/java/src/main/java/org/openapitools/schemas/validators/KeywordValidator.hbs b/src/main/resources/java/src/main/java/org/openapitools/schemas/validators/KeywordValidator.hbs index 766e38c8483..09a4c40c957 100644 --- a/src/main/resources/java/src/main/java/org/openapitools/schemas/validators/KeywordValidator.hbs +++ b/src/main/resources/java/src/main/java/org/openapitools/schemas/validators/KeywordValidator.hbs @@ -6,9 +6,9 @@ import {{{packageName}}}.schemas.ValidationMetadata; public interface KeywordValidator { PathToSchemasMap validate( + Class cls, Object arg, Object constraint, - Class cls, ValidationMetadata validationMetadata, Object extra); } diff --git a/src/main/resources/java/src/main/java/org/openapitools/schemas/validators/PropertiesValidator.hbs b/src/main/resources/java/src/main/java/org/openapitools/schemas/validators/PropertiesValidator.hbs index 034a2ce356d..0f49e20785c 100644 --- a/src/main/resources/java/src/main/java/org/openapitools/schemas/validators/PropertiesValidator.hbs +++ b/src/main/resources/java/src/main/java/org/openapitools/schemas/validators/PropertiesValidator.hbs @@ -13,7 +13,7 @@ import java.util.Set; public class PropertiesValidator implements KeywordValidator { @Override - public PathToSchemasMap validate(Object arg, Object constraint, Class cls, ValidationMetadata validationMetadata, Object extra) { + public PathToSchemasMap validate(Class cls, Object arg, Object constraint, ValidationMetadata validationMetadata, Object extra) { if (!(arg instanceof Map)) { return null; } diff --git a/src/main/resources/java/src/main/java/org/openapitools/schemas/validators/RequiredValidator.hbs b/src/main/resources/java/src/main/java/org/openapitools/schemas/validators/RequiredValidator.hbs index 1eef78160d9..2aff713169b 100644 --- a/src/main/resources/java/src/main/java/org/openapitools/schemas/validators/RequiredValidator.hbs +++ b/src/main/resources/java/src/main/java/org/openapitools/schemas/validators/RequiredValidator.hbs @@ -11,7 +11,7 @@ import java.util.Set; public class RequiredValidator implements KeywordValidator { @Override - public PathToSchemasMap validate(Object arg, Object constraint, Class cls, ValidationMetadata validationMetadata, Object extra) { + public PathToSchemasMap validate(Class cls, Object arg, Object constraint, ValidationMetadata validationMetadata, Object extra) { if (!(arg instanceof Map)) { return null; } diff --git a/src/main/resources/java/src/main/java/org/openapitools/schemas/validators/TypeValidator.hbs b/src/main/resources/java/src/main/java/org/openapitools/schemas/validators/TypeValidator.hbs index 74f2359930c..7102a33a6ab 100644 --- a/src/main/resources/java/src/main/java/org/openapitools/schemas/validators/TypeValidator.hbs +++ b/src/main/resources/java/src/main/java/org/openapitools/schemas/validators/TypeValidator.hbs @@ -8,7 +8,7 @@ import java.util.HashSet; public class TypeValidator implements KeywordValidator { @Override - public PathToSchemasMap validate(Object arg, Object constraint, Class cls, ValidationMetadata validationMetadata, Object extra) { + public PathToSchemasMap validate(Class cls, Object arg, Object constraint, ValidationMetadata validationMetadata, Object extra) { HashSet> types = (HashSet>) constraint; Class argClass; if (arg == null) { diff --git a/src/main/resources/java/src/test/java/org/openapitools/schemas/validators/AdditionalPropertiesValidatorTest.hbs b/src/main/resources/java/src/test/java/org/openapitools/schemas/validators/AdditionalPropertiesValidatorTest.hbs index 0bb0ee64c00..0f9471655af 100644 --- a/src/main/resources/java/src/test/java/org/openapitools/schemas/validators/AdditionalPropertiesValidatorTest.hbs +++ b/src/main/resources/java/src/test/java/org/openapitools/schemas/validators/AdditionalPropertiesValidatorTest.hbs @@ -37,9 +37,9 @@ public class AdditionalPropertiesValidatorTest { FrozenMap arg = new FrozenMap<>(mutableMap); final AdditionalPropertiesValidator validator = new AdditionalPropertiesValidator(); PathToSchemasMap pathToSchemas = validator.validate( + SchemaValidator.class, arg, StringSchema.class, - SchemaValidator.class, validationMetadata, properties ); @@ -66,9 +66,9 @@ public class AdditionalPropertiesValidatorTest { ); final AdditionalPropertiesValidator validator = new AdditionalPropertiesValidator(); PathToSchemasMap pathToSchemas = validator.validate( + SchemaValidator.class, 1, StringSchema.class, - SchemaValidator.class, validationMetadata, null ); @@ -94,9 +94,9 @@ public class AdditionalPropertiesValidatorTest { FrozenMap arg = new FrozenMap<>(mutableMap); final AdditionalPropertiesValidator validator = new AdditionalPropertiesValidator(); Assert.assertThrows(RuntimeException.class, () -> validator.validate( + SchemaValidator.class, arg, StringSchema.class, - SchemaValidator.class, validationMetadata, properties )); diff --git a/src/main/resources/java/src/test/java/org/openapitools/schemas/validators/FormatValidatorTest.hbs b/src/main/resources/java/src/test/java/org/openapitools/schemas/validators/FormatValidatorTest.hbs index 54629308e71..c6a7a9430b9 100644 --- a/src/main/resources/java/src/test/java/org/openapitools/schemas/validators/FormatValidatorTest.hbs +++ b/src/main/resources/java/src/test/java/org/openapitools/schemas/validators/FormatValidatorTest.hbs @@ -25,9 +25,9 @@ public class FormatValidatorTest { public void testIntFormatSucceedsWithFloat() { final FormatValidator validator = new FormatValidator(); PathToSchemasMap pathToSchemasMap = validator.validate( - new BigDecimal("1.0"), - "int", SchemaValidator.class, + 1.0f, + "int", validationMetadata, null ); @@ -38,9 +38,9 @@ public class FormatValidatorTest { public void testIntFormatFailsWithFloat() { final FormatValidator validator = new FormatValidator(); Assert.assertThrows(RuntimeException.class, () -> validator.validate( - new BigDecimal("3.14"), - "int", SchemaValidator.class, + 3.14f, + "int", validationMetadata, null )); @@ -50,9 +50,9 @@ public class FormatValidatorTest { public void testIntFormatSucceedsWithInt() { final FormatValidator validator = new FormatValidator(); PathToSchemasMap pathToSchemasMap = validator.validate( - new BigDecimal("1"), - "int", SchemaValidator.class, + 1, + "int", validationMetadata, null ); @@ -63,9 +63,9 @@ public class FormatValidatorTest { public void testInt32UnderMinFails() { final FormatValidator validator = new FormatValidator(); Assert.assertThrows(RuntimeException.class, () -> validator.validate( - new BigDecimal(-2147483649L), - "int32", SchemaValidator.class, + -2147483649L, + "int32", validationMetadata, null )); @@ -75,9 +75,9 @@ public class FormatValidatorTest { public void testInt32InclusiveMinSucceeds() { final FormatValidator validator = new FormatValidator(); PathToSchemasMap pathToSchemasMap = validator.validate( - new BigDecimal(-2147483648), - "int32", SchemaValidator.class, + -2147483648, + "int32", validationMetadata, null ); @@ -88,9 +88,9 @@ public class FormatValidatorTest { public void testInt32InclusiveMaxSucceeds() { final FormatValidator validator = new FormatValidator(); PathToSchemasMap pathToSchemasMap = validator.validate( - new BigDecimal(2147483647), - "int32", SchemaValidator.class, + 2147483647, + "int32", validationMetadata, null ); @@ -101,9 +101,9 @@ public class FormatValidatorTest { public void testInt32OverMaxFails() { final FormatValidator validator = new FormatValidator(); Assert.assertThrows(RuntimeException.class, () -> validator.validate( - BigDecimal.valueOf(2147483648L), - "int32", SchemaValidator.class, + 2147483648L, + "int32", validationMetadata, null )); @@ -114,9 +114,9 @@ public class FormatValidatorTest { final FormatValidator validator = new FormatValidator(); Assert.assertThrows(RuntimeException.class, () -> validator.validate( - new BigDecimal(new BigInteger("-9223372036854775809")), - "int64", SchemaValidator.class, + new BigInteger("-9223372036854775809"), + "int64", validationMetadata, null )); @@ -126,9 +126,9 @@ public class FormatValidatorTest { public void testInt64InclusiveMinSucceeds() { final FormatValidator validator = new FormatValidator(); PathToSchemasMap pathToSchemasMap = validator.validate( - new BigDecimal(-9223372036854775808L), - "int64", SchemaValidator.class, + -9223372036854775808L, + "int64", validationMetadata, null ); @@ -139,9 +139,9 @@ public class FormatValidatorTest { public void testInt64InclusiveMaxSucceeds() { final FormatValidator validator = new FormatValidator(); PathToSchemasMap pathToSchemasMap = validator.validate( - new BigDecimal(9223372036854775807L), - "int64", SchemaValidator.class, + 9223372036854775807L, + "int64", validationMetadata, null ); @@ -153,9 +153,9 @@ public class FormatValidatorTest { final FormatValidator validator = new FormatValidator(); Assert.assertThrows(RuntimeException.class, () -> validator.validate( - new BigDecimal(new BigInteger("9223372036854775808")), - "int64", SchemaValidator.class, + new BigInteger("9223372036854775808"), + "int64", validationMetadata, null )); @@ -165,9 +165,9 @@ public class FormatValidatorTest { public void testFloatUnderMinFails() { final FormatValidator validator = new FormatValidator(); Assert.assertThrows(RuntimeException.class, () -> validator.validate( - BigDecimal.valueOf(-3.402823466385289e+38), - "float", SchemaValidator.class, + -3.402823466385289e+38d, + "float", validationMetadata, null )); @@ -177,9 +177,9 @@ public class FormatValidatorTest { public void testFloatInclusiveMinSucceeds() { final FormatValidator validator = new FormatValidator(); PathToSchemasMap pathToSchemasMap = validator.validate( - BigDecimal.valueOf(-3.4028234663852886e+38), - "float", SchemaValidator.class, + -3.4028234663852886e+38f, + "float", validationMetadata, null ); @@ -190,9 +190,9 @@ public class FormatValidatorTest { public void testFloatInclusiveMaxSucceeds() { final FormatValidator validator = new FormatValidator(); PathToSchemasMap pathToSchemasMap = validator.validate( - new BigDecimal("3.4028234663852886e+38"), - "float", SchemaValidator.class, + 3.4028234663852886e+38f, + "float", validationMetadata, null ); @@ -203,9 +203,9 @@ public class FormatValidatorTest { public void testFloatOverMaxFails() { final FormatValidator validator = new FormatValidator(); Assert.assertThrows(RuntimeException.class, () -> validator.validate( - BigDecimal.valueOf(3.402823466385289e+38), - "float", SchemaValidator.class, + 3.402823466385289e+38d, + "float", validationMetadata, null )); @@ -215,9 +215,9 @@ public class FormatValidatorTest { public void testDoubleUnderMinFails() { final FormatValidator validator = new FormatValidator(); Assert.assertThrows(RuntimeException.class, () -> validator.validate( + SchemaValidator.class, new BigDecimal("-1.7976931348623157082e+308"), "double", - SchemaValidator.class, validationMetadata, null )); @@ -227,9 +227,9 @@ public class FormatValidatorTest { public void testDoubleInclusiveMinSucceeds() { final FormatValidator validator = new FormatValidator(); PathToSchemasMap pathToSchemasMap = validator.validate( - BigDecimal.valueOf(-1.7976931348623157E+308d), - "double", SchemaValidator.class, + -1.7976931348623157E+308d, + "double", validationMetadata, null ); @@ -240,9 +240,9 @@ public class FormatValidatorTest { public void testDoubleInclusiveMaxSucceeds() { final FormatValidator validator = new FormatValidator(); PathToSchemasMap pathToSchemasMap = validator.validate( - BigDecimal.valueOf(1.7976931348623157E+308d), - "double", SchemaValidator.class, + 1.7976931348623157E+308d, + "double", validationMetadata, null ); @@ -253,9 +253,9 @@ public class FormatValidatorTest { public void testDoubleOverMaxFails() { final FormatValidator validator = new FormatValidator(); Assert.assertThrows(RuntimeException.class, () -> validator.validate( + SchemaValidator.class, new BigDecimal("1.7976931348623157082e+308"), "double", - SchemaValidator.class, validationMetadata, null )); @@ -265,9 +265,9 @@ public class FormatValidatorTest { public void testInvalidNumberStringFails() { final FormatValidator validator = new FormatValidator(); Assert.assertThrows(RuntimeException.class, () -> validator.validate( + SchemaValidator.class, "abc", "number", - SchemaValidator.class, validationMetadata, null )); @@ -277,9 +277,9 @@ public class FormatValidatorTest { public void testValidFloatNumberStringSucceeds() { final FormatValidator validator = new FormatValidator(); PathToSchemasMap pathToSchemasMap = validator.validate( + SchemaValidator.class, "3.14", "number", - SchemaValidator.class, validationMetadata, null ); @@ -290,9 +290,9 @@ public class FormatValidatorTest { public void testValidIntNumberStringSucceeds() { final FormatValidator validator = new FormatValidator(); PathToSchemasMap pathToSchemasMap = validator.validate( + SchemaValidator.class, "1", "number", - SchemaValidator.class, validationMetadata, null ); @@ -303,9 +303,9 @@ public class FormatValidatorTest { public void testInvalidDateStringFails() { final FormatValidator validator = new FormatValidator(); Assert.assertThrows(RuntimeException.class, () -> validator.validate( + SchemaValidator.class, "abc", "date", - SchemaValidator.class, validationMetadata, null )); @@ -315,9 +315,9 @@ public class FormatValidatorTest { public void testValidDateStringSucceeds() { final FormatValidator validator = new FormatValidator(); PathToSchemasMap pathToSchemasMap = validator.validate( + SchemaValidator.class, "2017-01-20", "date", - SchemaValidator.class, validationMetadata, null ); @@ -328,9 +328,9 @@ public class FormatValidatorTest { public void testInvalidDateTimeStringFails() { final FormatValidator validator = new FormatValidator(); Assert.assertThrows(RuntimeException.class, () -> validator.validate( + SchemaValidator.class, "abc", "date-time", - SchemaValidator.class, validationMetadata, null )); @@ -340,9 +340,9 @@ public class FormatValidatorTest { public void testValidDateTimeStringSucceeds() { final FormatValidator validator = new FormatValidator(); PathToSchemasMap pathToSchemasMap = validator.validate( + SchemaValidator.class, "2017-07-21T17:32:28Z", "date-time", - SchemaValidator.class, validationMetadata, null ); diff --git a/src/main/resources/java/src/test/java/org/openapitools/schemas/validators/ItemsValidatorTest.hbs b/src/main/resources/java/src/test/java/org/openapitools/schemas/validators/ItemsValidatorTest.hbs index 1a9c8c68a79..07603be1366 100644 --- a/src/main/resources/java/src/test/java/org/openapitools/schemas/validators/ItemsValidatorTest.hbs +++ b/src/main/resources/java/src/test/java/org/openapitools/schemas/validators/ItemsValidatorTest.hbs @@ -32,9 +32,9 @@ public class ItemsValidatorTest { FrozenList arg = new FrozenList<>(mutableList); final ItemsValidator validator = new ItemsValidator(); PathToSchemasMap pathToSchemas = validator.validate( + SchemaValidator.class, arg, StringSchema.class, - SchemaValidator.class, validationMetadata, null ); @@ -61,9 +61,9 @@ public class ItemsValidatorTest { ); final ItemsValidator validator = new ItemsValidator(); PathToSchemasMap pathToSchemas = validator.validate( + SchemaValidator.class, 1, StringSchema.class, - SchemaValidator.class, validationMetadata, null ); @@ -85,9 +85,9 @@ public class ItemsValidatorTest { FrozenList arg = new FrozenList<>(mutableList); final ItemsValidator validator = new ItemsValidator(); Assert.assertThrows(RuntimeException.class, () -> validator.validate( + SchemaValidator.class, arg, StringSchema.class, - SchemaValidator.class, validationMetadata, null )); diff --git a/src/main/resources/java/src/test/java/org/openapitools/schemas/validators/PropertiesValidatorTest.hbs b/src/main/resources/java/src/test/java/org/openapitools/schemas/validators/PropertiesValidatorTest.hbs index 15a83c1caa6..8d4b539bf71 100644 --- a/src/main/resources/java/src/test/java/org/openapitools/schemas/validators/PropertiesValidatorTest.hbs +++ b/src/main/resources/java/src/test/java/org/openapitools/schemas/validators/PropertiesValidatorTest.hbs @@ -36,9 +36,9 @@ public class PropertiesValidatorTest { mutableMap.put("someString", "abc"); FrozenMap arg = new FrozenMap<>(mutableMap); PathToSchemasMap pathToSchemas = validator.validate( + SchemaValidator.class, arg, properties, - SchemaValidator.class, validationMetadata, null ); @@ -68,9 +68,9 @@ public class PropertiesValidatorTest { new LinkedHashSet<>() ); PathToSchemasMap pathToSchemas = validator.validate( + SchemaValidator.class, 1, properties, - SchemaValidator.class, validationMetadata, null ); @@ -95,9 +95,9 @@ public class PropertiesValidatorTest { mutableMap.put("someString", 1); FrozenMap arg = new FrozenMap<>(mutableMap); Assert.assertThrows(RuntimeException.class, () -> validator.validate( + SchemaValidator.class, arg, properties, - SchemaValidator.class, validationMetadata, null )); diff --git a/src/main/resources/java/src/test/java/org/openapitools/schemas/validators/RequiredValidatorTest.hbs b/src/main/resources/java/src/test/java/org/openapitools/schemas/validators/RequiredValidatorTest.hbs index 901b1f759c3..c65f9ce96d1 100644 --- a/src/main/resources/java/src/test/java/org/openapitools/schemas/validators/RequiredValidatorTest.hbs +++ b/src/main/resources/java/src/test/java/org/openapitools/schemas/validators/RequiredValidatorTest.hbs @@ -37,9 +37,9 @@ public class RequiredValidatorTest { FrozenMap arg = new FrozenMap<>(mutableMap); final RequiredValidator validator = new RequiredValidator(); PathToSchemasMap pathToSchemas = validator.validate( + SchemaValidator.class, arg, requiredProperties, - SchemaValidator.class, validationMetadata, null ); @@ -61,9 +61,9 @@ public class RequiredValidatorTest { ); final RequiredValidator validator = new RequiredValidator(); PathToSchemasMap pathToSchemas = validator.validate( + SchemaValidator.class, 1, properties, - SchemaValidator.class, validationMetadata, null ); @@ -88,9 +88,9 @@ public class RequiredValidatorTest { FrozenMap arg = new FrozenMap<>(mutableMap); final RequiredValidator validator = new RequiredValidator(); Assert.assertThrows(RuntimeException.class, () -> validator.validate( + SchemaValidator.class, arg, requiredProperties, - SchemaValidator.class, validationMetadata, null )); diff --git a/src/main/resources/java/src/test/java/org/openapitools/schemas/validators/TypeValidatorTest.hbs b/src/main/resources/java/src/test/java/org/openapitools/schemas/validators/TypeValidatorTest.hbs index 1fe9c2ae222..c63d089a91f 100644 --- a/src/main/resources/java/src/test/java/org/openapitools/schemas/validators/TypeValidatorTest.hbs +++ b/src/main/resources/java/src/test/java/org/openapitools/schemas/validators/TypeValidatorTest.hbs @@ -25,9 +25,9 @@ public class TypeValidatorTest { new LinkedHashSet<>() ); PathToSchemasMap pathToSchemasMap = validator.validate( + SchemaValidator.class, "hi", value, - SchemaValidator.class, validationMetadata, null ); @@ -46,9 +46,9 @@ public class TypeValidatorTest { new LinkedHashSet<>() ); Assert.assertThrows(RuntimeException.class, () -> validator.validate( + SchemaValidator.class, 1, value, - SchemaValidator.class, validationMetadata, null ));