This is an automated email from the ASF dual-hosted git repository.
rmannibucau pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/johnzon.git
The following commit(s) were added to refs/heads/master by this push:
new 5ac4924 [JOHNZON-322] ensure jsonschema can validate negative bounds
5ac4924 is described below
commit 5ac4924ac45f2985673ab048f650b33b7b81e81b
Author: Romain Manni-Bucau <[email protected]>
AuthorDate: Fri Oct 16 16:09:23 2020 +0200
[JOHNZON-322] ensure jsonschema can validate negative bounds
---
.../spi/builtin/BaseNumberValidation.java | 3 -
.../jsonschema/JsonSchemaValidatorTest.java | 71 +++++++++++++++-------
2 files changed, 49 insertions(+), 25 deletions(-)
diff --git
a/johnzon-jsonschema/src/main/java/org/apache/johnzon/jsonschema/spi/builtin/BaseNumberValidation.java
b/johnzon-jsonschema/src/main/java/org/apache/johnzon/jsonschema/spi/builtin/BaseNumberValidation.java
index 35e920b..14c5ee4 100644
---
a/johnzon-jsonschema/src/main/java/org/apache/johnzon/jsonschema/spi/builtin/BaseNumberValidation.java
+++
b/johnzon-jsonschema/src/main/java/org/apache/johnzon/jsonschema/spi/builtin/BaseNumberValidation.java
@@ -37,9 +37,6 @@ abstract class BaseNumberValidation extends BaseValidation {
@Override
protected Stream<ValidationResult.ValidationError> onNumber(final
JsonNumber number) {
final double val = number.doubleValue();
- if (val <= 0) {
- return toError(val);
- }
if (isValid(val)) {
return Stream.empty();
}
diff --git
a/johnzon-jsonschema/src/test/java/org/apache/johnzon/jsonschema/JsonSchemaValidatorTest.java
b/johnzon-jsonschema/src/test/java/org/apache/johnzon/jsonschema/JsonSchemaValidatorTest.java
index d3247ff..08ea742 100644
---
a/johnzon-jsonschema/src/test/java/org/apache/johnzon/jsonschema/JsonSchemaValidatorTest.java
+++
b/johnzon-jsonschema/src/test/java/org/apache/johnzon/jsonschema/JsonSchemaValidatorTest.java
@@ -242,28 +242,55 @@ public class JsonSchemaValidatorTest {
@Test
public void minimum() {
- final JsonSchemaValidator validator =
factory.newInstance(jsonFactory.createObjectBuilder()
- .add("type", "object")
- .add("properties", jsonFactory.createObjectBuilder()
- .add("age", jsonFactory.createObjectBuilder()
- .add("type", "number")
- .add("minimum", 5)
- .build())
- .build())
- .build());
-
-
assertTrue(validator.apply(jsonFactory.createObjectBuilder().add("age",
5).build()).isSuccess());
-
assertTrue(validator.apply(jsonFactory.createObjectBuilder().add("age",
6).build()).isSuccess());
-
- final ValidationResult failure =
validator.apply(jsonFactory.createObjectBuilder().add("age", 2).build());
- assertFalse(failure.isSuccess());
- final Collection<ValidationResult.ValidationError> errors =
failure.getErrors();
- assertEquals(1, errors.size());
- final ValidationResult.ValidationError error =
errors.iterator().next();
- assertEquals("/age", error.getField());
- assertEquals("2.0 is less than 5.0", error.getMessage());
-
- validator.close();
+ {
+ final JsonSchemaValidator validator =
factory.newInstance(jsonFactory.createObjectBuilder()
+ .add("type", "object")
+ .add("properties", jsonFactory.createObjectBuilder()
+ .add("age", jsonFactory.createObjectBuilder()
+ .add("type", "number")
+ .add("minimum", 5)
+ .build())
+ .build())
+ .build());
+
+
assertTrue(validator.apply(jsonFactory.createObjectBuilder().add("age",
5).build()).isSuccess());
+
assertTrue(validator.apply(jsonFactory.createObjectBuilder().add("age",
6).build()).isSuccess());
+
+ final ValidationResult failure =
validator.apply(jsonFactory.createObjectBuilder().add("age", 2).build());
+ assertFalse(failure.isSuccess());
+ final Collection<ValidationResult.ValidationError> errors =
failure.getErrors();
+ assertEquals(1, errors.size());
+ final ValidationResult.ValidationError error =
errors.iterator().next();
+ assertEquals("/age", error.getField());
+ assertEquals("2.0 is less than 5.0", error.getMessage());
+
+ validator.close();
+ }
+ {
+ final JsonSchemaValidator validator =
factory.newInstance(jsonFactory.createObjectBuilder()
+ .add("type", "object")
+ .add("properties", jsonFactory.createObjectBuilder()
+ .add("age", jsonFactory.createObjectBuilder()
+ .add("type", "number")
+ .add("minimum", -1)
+ .build())
+ .build())
+ .build());
+
+
assertTrue(validator.apply(jsonFactory.createObjectBuilder().add("age",
1).build()).isSuccess());
+
assertTrue(validator.apply(jsonFactory.createObjectBuilder().add("age",
0).build()).isSuccess());
+
assertTrue(validator.apply(jsonFactory.createObjectBuilder().add("age",
-1).build()).isSuccess());
+
+ final ValidationResult failure =
validator.apply(jsonFactory.createObjectBuilder().add("age", -2).build());
+ assertFalse(failure.isSuccess());
+ final Collection<ValidationResult.ValidationError> errors =
failure.getErrors();
+ assertEquals(1, errors.size());
+ final ValidationResult.ValidationError error =
errors.iterator().next();
+ assertEquals("/age", error.getField());
+ assertEquals("-2.0 is less than -1.0", error.getMessage());
+
+ validator.close();
+ }
}
@Test