[
{
"subject"
:
"integer nullable"
,
"schema"
: {
"type"
:
"integer"
,
"nullable"
:
true
},
"tests"
: [
{
"description"
:
"integer"
,
"data"
: 123,
"valid"
:
true
},
{
"description"
:
"interger as string"
,
"data"
:
"321"
,
"valid"
:
true
},
{
"description"
:
"null value"
,
"data"
:
null
,
"valid"
:
true
},
{
"description"
:
"wrong type"
,
"data"
: [],
"valid"
:
false
}
]
},
{
"subject"
:
"integer"
,
"schema"
: {
"type"
:
"integer"
},
"tests"
: [
{
"description"
:
"integer"
,
"data"
: 123,
"valid"
:
true
},
{
"description"
:
"interger as string"
,
"data"
:
"321"
,
"valid"
:
true
},
{
"description"
:
"null value"
,
"data"
:
null
,
"valid"
:
false
},
{
"description"
:
"wrong type"
,
"data"
: {},
"valid"
:
false
}
]
},
{
"subject"
:
"nullable true"
,
"schema"
: {
"nullable"
:
"true"
},
"tests"
: [
{
"description"
:
"null"
,
"data"
:
null
,
"valid"
:
true
}
]
},
{
"subject"
:
"nullable false"
,
"schema"
: {
"nullable"
:
"false"
},
"tests"
: [
{
"description"
:
"null"
,
"data"
:
null
,
"valid"
:
true
}
]
},
{
"subject"
:
"items"
,
"schema"
: {
"items"
: {
"type"
:
"integer"
,
"minimum"
: 3
}
},
"tests"
: [
{
"description"
:
"check valid"
,
"data"
: [4, 5, 6],
"valid"
:
true
},
{
"description"
:
"check valid empty"
,
"data"
: [],
"valid"
:
true
},
{
"description"
:
"check not valid"
,
"data"
: [1],
"valid"
:
false
}
]
},
{
"subject"
:
"readOnly"
,
"schema"
: {
"type"
:
"object"
,
"properties"
: {
"name"
: {
"type"
:
"string"
},
"age"
: {
"type"
:
"integer"
},
"id"
: {
"type"
:
"integer"
,
"readOnly"
:
true
}
},
"required"
: [
"name"
,
"age"
,
"id"
]
},
"tests"
: [
{
"description"
:
"check valid request without \"id\""
,
"data"
: {
"name"
:
"ilya"
,
"age"
: 12
},
"valid"
:
true
,
"v_params"
: {
"direction"
:
"request"
}
},
{
"description"
:
"check not valid request with \"id\""
,
"data"
: {
"name"
:
"ilya"
,
"age"
: 12,
"id"
: 13
},
"valid"
:
false
,
"v_params"
: {
"direction"
:
"request"
}
},
{
"description"
:
"check valid response with \"id\""
,
"data"
: {
"name"
:
"ilya"
,
"age"
: 12,
"id"
: 13
},
"valid"
:
true
,
"v_params"
: {
"direction"
:
"response"
}
},
{
"description"
:
"check not valid response without \"id\""
,
"data"
: {
"name"
:
"ilya"
,
"age"
: 12
},
"valid"
:
false
,
"v_params"
: {
"direction"
:
"response"
}
}
]
},
{
"subject"
:
"writeOnly"
,
"schema"
: {
"type"
:
"object"
,
"properties"
: {
"name"
: {
"type"
:
"string"
},
"offset"
: {
"type"
:
"integer"
,
"writeOnly"
:
true
}
},
"required"
: [
"name"
,
"offset"
]
},
"tests"
: [
{
"description"
:
"check valid request with \"offset\""
,
"data"
: {
"name"
:
"ilya"
,
"offset"
: 12
},
"valid"
:
true
,
"v_params"
: {
"direction"
:
"request"
}
},
{
"description"
:
"check not valid request without \"offset\""
,
"data"
: {
"name"
:
"ilya"
},
"valid"
:
false
,
"v_params"
: {
"direction"
:
"request"
}
},
{
"description"
:
"check not valid response with \"offset\""
,
"data"
: {
"name"
:
"ilya"
,
"offset"
: 13
},
"valid"
:
false
,
"v_params"
: {
"direction"
:
"response"
}
},
{
"description"
:
"check valid response without \"offset\""
,
"data"
: {
"name"
:
"ilya"
},
"valid"
:
true
,
"v_params"
: {
"direction"
:
"response"
}
}
]
},
{
"subject"
:
"discriminator"
,
"schema"
: {
"oneOf"
: [
{
"$ref"
:
"#/components/schemas/Cat"
},
{
"$ref"
:
"#/components/schemas/Dog"
}
],
"discriminator"
: {
"propertyName"
:
"petType"
},
"components"
: {
"schemas"
: {
"Pet"
: {
"type"
:
"object"
,
"properties"
: {
"name"
: {
"type"
:
"string"
},
"petType"
: {
"type"
:
"string"
}
},
"required"
: [
"name"
,
"petType"
]
},
"Cat"
: {
"description"
:
"A representation of a cat. Note that `Cat` will be used as the discriminator value."
,
"allOf"
: [
{
"$ref"
:
"#/components/schemas/Pet"
},
{
"type"
:
"object"
,
"properties"
: {
"huntingSkill"
: {
"type"
:
"string"
,
"description"
:
"The measured skill for hunting"
,
"default"
:
"lazy"
,
"enum"
: [
"clueless"
,
"lazy"
,
"adventurous"
,
"aggressive"
]
}
},
"required"
: [
"huntingSkill"
]
}
]
},
"Dog"
: {
"description"
:
"A representation of a dog. Note that `Dog` will be used as the discriminator value."
,
"allOf"
: [
{
"$ref"
:
"#/components/schemas/Pet"
},
{
"type"
:
"object"
,
"properties"
: {
"packSize"
: {
"type"
:
"integer"
,
"format"
:
"int32"
,
"description"
:
"the size of the pack the dog is from"
,
"default"
: 0,
"minimum"
: 0
}
},
"required"
: [
"packSize"
]
}
]
}
}
}
},
"tests"
: [
{
"description"
:
"dog ok"
,
"data"
: {
"name"
:
"Terminator"
,
"petType"
:
"Dog"
,
"packSize"
: 123
},
"valid"
:
true
},
{
"description"
:
"cat ok"
,
"data"
: {
"name"
:
"Terminator"
,
"petType"
:
"Cat"
,
"huntingSkill"
:
"adventurous"
},
"valid"
:
true
},
{
"description"
:
"dog failed"
,
"data"
: {
"name"
:
"Terminator"
,
"petType"
:
"Dog"
,
"packSize"
:
"qwe"
},
"valid"
:
false
},
{
"description"
:
"cat failed"
,
"data"
: {
"name"
:
"Terminator"
,
"petType"
:
"Cat"
,
"huntingSkill"
:
"fast"
},
"valid"
:
false
}
]
},
{
"subject"
:
"discriminator inherit"
,
"schema"
: {
"type"
:
"object"
,
"properties"
: {
"shape"
: {
"$ref"
:
"#/components/schemas/Shape"
}
},
"components"
: {
"schemas"
: {
"Shape"
: {
"type"
:
"object"
,
"discriminator"
: {
"propertyName"
:
"shapeType"
,
"mapping"
: {
"sqr"
:
"Square"
,
"rect"
:
"#/components/schemas/Rectangle"
}
},
"properties"
: {
"name"
: {
"type"
:
"string"
},
"shapeType"
: {
"type"
:
"string"
}
},
"required"
: [
"name"
,
"shapeType"
]
},
"Square"
: {
"allOf"
: [
{
"$ref"
:
"#/components/schemas/Shape"
},
{
"type"
:
"object"
,
"properties"
: {
"side"
: {
"type"
:
"integer"
}
},
"required"
: [
"side"
]
}
]
},
"Rectangle"
: {
"allOf"
: [
{
"$ref"
:
"#/components/schemas/Shape"
},
{
"type"
:
"object"
,
"properties"
: {
"length"
: {
"type"
:
"integer"
},
"width"
: {
"type"
:
"integer"
}
},
"required"
: [
"length"
,
"width"
]
}
]
}
}
}
},
"tests"
: [
{
"description"
:
"square ok"
,
"data"
: {
"shape"
: {
"name"
:
"A"
,
"shapeType"
:
"sqr"
,
"side"
: 123
}
},
"valid"
:
true
},
{
"description"
:
"rect ok"
,
"data"
: {
"shape"
: {
"name"
:
"B"
,
"shapeType"
:
"rect"
,
"length"
: 12,
"width"
: 10
}
},
"valid"
:
true
},
{
"description"
:
"square failed"
,
"data"
: {
"shape"
: {
"name"
:
"A"
,
"shapeType"
:
"sqr"
}
},
"valid"
:
false
},
{
"description"
:
"rect failed"
,
"data"
: {
"shape"
: {
"name"
:
"B"
,
"shapeType"
:
"rect"
,
"length"
: 12
}
},
"valid"
:
false
}
]
},
{
"subject"
:
"deprecated"
,
"schema"
: {
"type"
:
"string"
,
"enum"
: [
"deprecated"
],
"deprecated"
:
true
},
"tests"
: [
{
"description"
:
"validate_deprected = true, ok"
,
"data"
:
"deprecated"
,
"valid"
:
true
},
{
"description"
:
"validate_deprected = true, fail"
,
"data"
:
"another value"
,
"valid"
:
false
},
{
"description"
:
"validate_deprected = false, ok"
,
"data"
:
"another value"
,
"valid"
:
true
,
"new_params"
: {
"validate_deprecated"
: 0
}
}
]
},
{
"subject"
:
"deprecated, empty schema"
,
"schema"
: {
"deprecated"
:
true
},
"tests"
: [
{
"description"
:
"validate_deprected = true, object ok"
,
"data"
: {},
"valid"
:
true
},
{
"description"
:
"validate_deprected = true, string ok"
,
"data"
:
"value"
,
"valid"
:
true
},
{
"description"
:
"validate_deprected = false, object ok"
,
"data"
: {},
"valid"
:
true
,
"new_params"
: {
"validate_deprecated"
: 0
}
}
]
}
]