136 lines
4.9 KiB
JSON
136 lines
4.9 KiB
JSON
[
|
|
{
|
|
"description": "basic schema from z-schema benchmark (https://github.com/zaggino/z-schema)",
|
|
"schema": {
|
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
"title": "Product set",
|
|
"type": "array",
|
|
"items": {
|
|
"title": "Product",
|
|
"type": "object",
|
|
"properties": {
|
|
"id": {
|
|
"description": "The unique identifier for a product",
|
|
"type": "number"
|
|
},
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"price": {
|
|
"type": "number",
|
|
"exclusiveMinimum": 0
|
|
},
|
|
"tags": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"minItems": 1,
|
|
"uniqueItems": true
|
|
},
|
|
"dimensions": {
|
|
"type": "object",
|
|
"properties": {
|
|
"length": {"type": "number"},
|
|
"width": {"type": "number"},
|
|
"height": {"type": "number"}
|
|
},
|
|
"required": ["length", "width", "height"]
|
|
},
|
|
"warehouseLocation": {
|
|
"description": "Coordinates of the warehouse with the product"
|
|
}
|
|
},
|
|
"required": ["id", "name", "price"]
|
|
}
|
|
},
|
|
"tests": [
|
|
{
|
|
"description": "valid array from z-schema benchmark",
|
|
"data": [
|
|
{
|
|
"id": 2,
|
|
"name": "An ice sculpture",
|
|
"price": 12.50,
|
|
"tags": ["cold", "ice"],
|
|
"dimensions": {
|
|
"length": 7.0,
|
|
"width": 12.0,
|
|
"height": 9.5
|
|
},
|
|
"warehouseLocation": {
|
|
"latitude": -78.75,
|
|
"longitude": 20.4
|
|
}
|
|
},
|
|
{
|
|
"id": 3,
|
|
"name": "A blue mouse",
|
|
"price": 25.50,
|
|
"dimensions": {
|
|
"length": 3.1,
|
|
"width": 1.0,
|
|
"height": 1.0
|
|
},
|
|
"warehouseLocation": {
|
|
"latitude": 54.4,
|
|
"longitude": -32.7
|
|
}
|
|
}
|
|
],
|
|
"valid": true
|
|
},
|
|
{
|
|
"description": "not array",
|
|
"data": 1,
|
|
"valid": false
|
|
},
|
|
{
|
|
"description": "array of not onjects",
|
|
"data": [1,2,3],
|
|
"valid": false
|
|
},
|
|
{
|
|
"description": "missing required properties",
|
|
"data": [{}],
|
|
"valid": false
|
|
},
|
|
{
|
|
"description": "required property of wrong type",
|
|
"data": [{"id": 1, "name": "product", "price": "not valid"}],
|
|
"valid": false
|
|
},
|
|
{
|
|
"description": "smallest valid product",
|
|
"data": [{"id": 1, "name": "product", "price": 100}],
|
|
"valid": true
|
|
},
|
|
{
|
|
"description": "tags should be array",
|
|
"data": [{"tags":{}, "id": 1, "name": "product", "price": 100}],
|
|
"valid": false
|
|
},
|
|
{
|
|
"description": "dimensions should be object",
|
|
"data": [{"dimensions":[], "id": 1, "name": "product", "price": 100}],
|
|
"valid": false
|
|
},
|
|
{
|
|
"description": "valid product with tag",
|
|
"data": [{"tags":["product"], "id": 1, "name": "product", "price": 100}],
|
|
"valid": true
|
|
},
|
|
{
|
|
"description": "dimensions miss required properties",
|
|
"data": [{"dimensions":{}, "tags":["product"], "id": 1, "name": "product", "price": 100}],
|
|
"valid": false
|
|
},
|
|
{
|
|
"description": "valid product with tag and dimensions",
|
|
"data": [{"dimensions":{"length": 7,"width": 12,"height": 9.5}, "tags":["product"], "id": 1, "name": "product", "price": 100}],
|
|
"valid": true
|
|
}
|
|
]
|
|
}
|
|
]
|