You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@johnzon.apache.org by rm...@apache.org on 2020/10/16 14:09:28 UTC
[johnzon] branch master updated: [JOHNZON-322] ensure jsonschema
can validate negative bounds
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 <rm...@gmail.com>
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