1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66
|
use lib '.';
use t::Helper;
validate_ok {who_id => 'WHO', expire => '2018-01-01', amount => 1000,
desc => 'foo'}, 'data://main/example.json',
E('/sym', '/oneOf/0/allOf/0/allOf/0 Missing property.'),
E('/template', '/oneOf/0/allOf/2 Missing property.'),
E('/sym', '/oneOf/1/allOf/0 Missing property.');
done_testing;
__DATA__
@@ example.json
{
"oneOf": [
{"$ref": "#/definitions/template_1"},
{"$ref": "#/definitions/bar_header"}
],
"definitions": {
"hwho":{
"required": [ "who_id" ],
"properties": {
"who_id": { "type": "string" },
"sub_who_id": { "type": "string" }
}
},
"header": {
"required": [ "sym", "expire" ],
"properties": {
"sym": { "type": "string" },
"expire": { "type": "string" }
}
},
"foo_header": {
"allOf": [
{ "$ref": "#/definitions/header" },
{
"required": [ "amount", "desc" ],
"properties": {
"amount": { "type": "integer" },
"desc": { "enum": [ "foo" ] }
}
}
]
},
"template_1": {
"allOf": [
{ "$ref": "#/definitions/foo_header" },
{ "$ref": "#/definitions/hwho" },
{ "required": [ "template" ], "properties": { "template": { "type": "string" } } }
]
},
"bar_header" : {
"allOf": [
{ "$ref": "#/definitions/header" },
{
"required": [ "amount", "desc" ],
"properties": {
"amount": { "type": "integer" },
"desc": { "enum": [ "foo" ] }
}
}
]
}
}
}
|