Skip to content

Commit dc048c6

Browse files
committed
Merge pull request #213 from wpillar/fix-exclusive-min-max-strictness
Fix exclusive min/max strictness
2 parents 752c136 + 8644cbe commit dc048c6

File tree

2 files changed

+20
-4
lines changed

2 files changed

+20
-4
lines changed

src/JsonSchema/Constraints/NumberConstraint.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,8 @@ public function check($element, $schema = null, $path = null, $i = null)
2525
// Verify minimum
2626
if (isset($schema->exclusiveMinimum)) {
2727
if (isset($schema->minimum)) {
28-
if ($schema->exclusiveMinimum && $element === $schema->minimum) {
29-
$this->addError($path, "Must have a minimum value greater than boundary value of " . $schema->minimum, 'exclusiveMinimum', array('minimum' => $schema->minimum,));
28+
if ($schema->exclusiveMinimum && $element <= $schema->minimum) {
29+
$this->addError($path, "Must have a minimum value of " . $schema->minimum, 'exclusiveMinimum', array('minimum' => $schema->minimum,));
3030
} else if ($element < $schema->minimum) {
3131
$this->addError($path, "Must have a minimum value of " . $schema->minimum, 'minimum', array('minimum' => $schema->minimum,));
3232
}
@@ -40,8 +40,8 @@ public function check($element, $schema = null, $path = null, $i = null)
4040
// Verify maximum
4141
if (isset($schema->exclusiveMaximum)) {
4242
if (isset($schema->maximum)) {
43-
if ($schema->exclusiveMaximum && $element === $schema->maximum) {
44-
$this->addError($path, "Must have a maximum value less than boundary value of " . $schema->maximum, 'exclusiveMaximum', array('maximum' => $schema->maximum,));
43+
if ($schema->exclusiveMaximum && $element >= $schema->maximum) {
44+
$this->addError($path, "Must have a maximum value of " . $schema->maximum, 'exclusiveMaximum', array('maximum' => $schema->maximum,));
4545
} else if ($element > $schema->maximum) {
4646
$this->addError($path, "Must have a maximum value of " . $schema->maximum, 'maximum', array('maximum' => $schema->maximum,));
4747
}

tests/JsonSchema/Tests/Constraints/MinimumMaximumTest.php

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,22 @@ public function getInvalidTests()
8888
"value": {"type": "integer", "maximum": 3, "exclusiveMaximum": false}
8989
}
9090
}'
91+
),
92+
array(
93+
'{"value": 0.00}',
94+
'{
95+
"properties": {
96+
"value": {"type": "number", "minimum": 0, "exclusiveMinimum": true}
97+
}
98+
}'
99+
),
100+
array(
101+
'{"value": 0.00}',
102+
'{
103+
"properties": {
104+
"value": {"type": "number", "maximum": 0, "exclusiveMaximum": true}
105+
}
106+
}'
91107
)
92108
);
93109
}

0 commit comments

Comments
 (0)