diff --git a/src/JsonSchema/Constraints/NumberConstraint.php b/src/JsonSchema/Constraints/NumberConstraint.php index 0a34bdc4..c5aaf6a3 100644 --- a/src/JsonSchema/Constraints/NumberConstraint.php +++ b/src/JsonSchema/Constraints/NumberConstraint.php @@ -25,8 +25,8 @@ public function check($element, $schema = null, $path = null, $i = null) // Verify minimum if (isset($schema->exclusiveMinimum)) { if (isset($schema->minimum)) { - if ($schema->exclusiveMinimum && $element === $schema->minimum) { - $this->addError($path, "Must have a minimum value greater than boundary value of " . $schema->minimum, 'exclusiveMinimum', array('minimum' => $schema->minimum,)); + if ($schema->exclusiveMinimum && $element <= $schema->minimum) { + $this->addError($path, "Must have a minimum value of " . $schema->minimum, 'exclusiveMinimum', array('minimum' => $schema->minimum,)); } else if ($element < $schema->minimum) { $this->addError($path, "Must have a minimum value of " . $schema->minimum, 'minimum', array('minimum' => $schema->minimum,)); } @@ -40,8 +40,8 @@ public function check($element, $schema = null, $path = null, $i = null) // Verify maximum if (isset($schema->exclusiveMaximum)) { if (isset($schema->maximum)) { - if ($schema->exclusiveMaximum && $element === $schema->maximum) { - $this->addError($path, "Must have a maximum value less than boundary value of " . $schema->maximum, 'exclusiveMaximum', array('maximum' => $schema->maximum,)); + if ($schema->exclusiveMaximum && $element >= $schema->maximum) { + $this->addError($path, "Must have a maximum value of " . $schema->maximum, 'exclusiveMaximum', array('maximum' => $schema->maximum,)); } else if ($element > $schema->maximum) { $this->addError($path, "Must have a maximum value of " . $schema->maximum, 'maximum', array('maximum' => $schema->maximum,)); } diff --git a/tests/JsonSchema/Tests/Constraints/MinimumMaximumTest.php b/tests/JsonSchema/Tests/Constraints/MinimumMaximumTest.php index 7cc3f20e..c25a7c29 100644 --- a/tests/JsonSchema/Tests/Constraints/MinimumMaximumTest.php +++ b/tests/JsonSchema/Tests/Constraints/MinimumMaximumTest.php @@ -88,6 +88,22 @@ public function getInvalidTests() "value": {"type": "integer", "maximum": 3, "exclusiveMaximum": false} } }' + ), + array( + '{"value": 0.00}', + '{ + "properties": { + "value": {"type": "number", "minimum": 0, "exclusiveMinimum": true} + } + }' + ), + array( + '{"value": 0.00}', + '{ + "properties": { + "value": {"type": "number", "maximum": 0, "exclusiveMaximum": true} + } + }' ) ); }