mirror of
https://github.com/justinrainbow/json-schema.git
synced 2025-05-02 04:18:09 +02:00
* Add URI translation for retrieval & add local copies of spec schema * Add use line for InvalidArgumentException & adjust scope (#372) Fixes issue #371 * add quiet option (#382) * add quiet option * use verbose instead of quiet * add quiet option * always output dump-schema * always output dump-schema-url * fix typo and ws * [BUGFIX] Add provided schema under a dummy / internal URI (fixes #376) (#378) * Add provided schema under a dummy / internal URI (fixes #376) In order to resolve internal $ref references within a user-provided schema, SchemaStorage needs to know about the schema. As user-supplied schemas do not have an associated URI, use a dummy / internal one instead. * Remove dangling use * Change URI to class constant on SchemaStorage * Add option to disable validation of "format" constraint (#383) * Add more unit tests (#366) * Add test coverage for coercion API * Complete test coverage for SchemaStorage * Add test coverage for ObjectIterator * Add exception test for JsonPointer * MabeEnum\Enum appears to use singletons - add testing const * Don't check this line for coverage mbstring is on all test platforms, so this line will never be reached. * Add test for TypeConstraint::validateTypeNameWording() * Add test for exception on TypeConstraint::validateType() * PHPunit doesn't like an explanation with its @codeCoverageIgnore... * Add various tests for UriRetriever * Add tests for FileGetContents * Add tests for JsonSchema\Uri\Retrievers\Curl * Add missing bad-syntax test file * Restrict ignore to the exception line only * Fix exception scope * Allow the schema to be an associative array (#389) * Allow the schema to be an associative array Implements #388. * Use json_decode(json_encode()) for array -> object cast * Skip exception check on PHP versions < 5.5.0 * Skip test on HHVM, as it's happy to encode resources * Enable FILTER_FLAG_EMAIL_UNICODE for email format if present (#398) * Don't throw exceptions until after checking anyOf / oneOf (#394) Fixes #393 * Fix infinite recursion on some schemas when setting defaults (#359) (#365) * Don't try to fetch files that don't exist Throws an exception when the ref can't be resolved to a useful file URI, rather than waiting for something further down the line to fail after the fact. * Refactor defaults code to use LooseTypeCheck where appropriate * Test for not treating non-containers like arrays * Update comments * Rename variable for clarity * Add CHECK_MODE_ONLY_REQUIRED_DEFAULTS If CHECK_MODE_ONLY_REQUIRED_DEFAULTS is set, then only apply defaults if they are marked as required. * Workaround for $this scope issue on PHP-5.3 * Fix infinite recursion via $ref when applying defaults * Add missing second test for array case * Add test for setting a default value for null * Also fix infinite recursion via $ref for array defaults * Move nested closure into separate method * $parentSchema will always be set when $name is, so don't check it * Handle nulls properly - fixes issue #377 * Add option to also validate the schema (#357) * Remove stale files from #357 (obviated by #362) (#400) * Stop #386 sneaking in alongside another PR backport
177 lines
4.8 KiB
PHP
177 lines
4.8 KiB
PHP
<?php
|
|
|
|
/*
|
|
* This file is part of the JsonSchema package.
|
|
*
|
|
* For the full copyright and license information, please view the LICENSE
|
|
* file that was distributed with this source code.
|
|
*/
|
|
|
|
namespace JsonSchema\Tests\Constraints;
|
|
|
|
class MinimumMaximumTest extends BaseTestCase
|
|
{
|
|
protected $validateSchema = true;
|
|
|
|
public function getInvalidTests()
|
|
{
|
|
return array(
|
|
array(
|
|
'{
|
|
"value":2
|
|
}',
|
|
'{
|
|
"type":"object",
|
|
"properties":{
|
|
"value":{"type":"integer","minimum":4}
|
|
}
|
|
}'
|
|
),
|
|
array(
|
|
'{"value": 3}',
|
|
'{
|
|
"type": "object",
|
|
"properties": {
|
|
"value": {"type": "integer", "minimum": 3, "exclusiveMinimum": true}
|
|
}
|
|
}'
|
|
),
|
|
array(
|
|
'{
|
|
"value":16
|
|
}',
|
|
'{
|
|
"type":"object",
|
|
"properties":{
|
|
"value":{"type":"integer","maximum":8}
|
|
}
|
|
}'
|
|
),
|
|
array(
|
|
'{"value": 8}',
|
|
'{
|
|
"type": "object",
|
|
"properties": {
|
|
"value": {"type": "integer", "maximum": 8, "exclusiveMaximum": true}
|
|
}
|
|
}'
|
|
),
|
|
array(
|
|
'{"value": 4}',
|
|
'{
|
|
"type": "object",
|
|
"properties": {
|
|
"value": {"type": "integer", "exclusiveMinimum": true}
|
|
}
|
|
}'
|
|
),
|
|
array(
|
|
'{"value": 4}',
|
|
'{
|
|
"type": "object",
|
|
"properties": {
|
|
"value": {"type": "integer", "exclusiveMaximum": true}
|
|
}
|
|
}'
|
|
),
|
|
array(
|
|
'{"value": 4}',
|
|
'{
|
|
"type": "object",
|
|
"properties": {
|
|
"value": {"type": "integer", "minimum": 5, "exclusiveMinimum": false}
|
|
}
|
|
}'
|
|
),
|
|
array(
|
|
'{"value": 4}',
|
|
'{
|
|
"properties": {
|
|
"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}
|
|
}
|
|
}'
|
|
)
|
|
);
|
|
}
|
|
|
|
public function getValidTests()
|
|
{
|
|
return array(
|
|
array(
|
|
'{
|
|
"value":6
|
|
}',
|
|
'{
|
|
"type":"object",
|
|
"properties":{
|
|
"value":{"type":"integer","minimum":4}
|
|
}
|
|
}'
|
|
),
|
|
array(
|
|
'{
|
|
"value":6
|
|
}',
|
|
'{
|
|
"type":"object",
|
|
"properties":{
|
|
"value":{"type":"integer","maximum":8}
|
|
}
|
|
}'
|
|
),
|
|
array(
|
|
'{"value": 6}',
|
|
'{
|
|
"type": "object",
|
|
"properties": {
|
|
"value": {"type": "integer", "minimum": 6, "exclusiveMinimum": false}
|
|
}
|
|
}'
|
|
),
|
|
array(
|
|
'{"value": 6}',
|
|
'{
|
|
"type": "object",
|
|
"properties": {
|
|
"value": {"type": "integer", "maximum": 6, "exclusiveMaximum": false}
|
|
}
|
|
}'
|
|
),
|
|
array(
|
|
'{"value": 6}',
|
|
'{
|
|
"type": "object",
|
|
"properties": {
|
|
"value": {"type": "integer", "minimum": 6}
|
|
}
|
|
}'
|
|
),
|
|
array(
|
|
'{"value": 6}',
|
|
'{
|
|
"type": "object",
|
|
"properties": {
|
|
"value": {"type": "integer", "maximum": 6}
|
|
}
|
|
}'
|
|
)
|
|
);
|
|
}
|
|
}
|