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 67 68 69
|
require File.expand_path('support/test_helper', __dir__)
class FragmentValidationWithRefTest < Minitest::Test
def whole_schema
{
'$schema' => 'http://json-schema.org/draft-04/schema#',
'type' => 'object',
'definitions' => {
'post' => {
'type' => 'object',
'properties' => {
'content' => {
'type' => 'string',
},
'author' => {
'type' => 'string',
},
},
},
'posts' => {
'type' => 'array',
'items' => {
'$ref' => '#/definitions/post',
},
},
},
}
end
def whole_schema_with_array
{
'$schema' => 'http://json-schema.org/draft-04/schema#',
'type' => 'object',
'definitions' => {
'omg' => {
'links' => [
{
'type' => 'object',
'schema' => {
'properties' => {
'content' => {
'type' => 'string',
},
'author' => {
'type' => 'string',
},
},
'required' => %w[content author],
},
},
],
},
},
}
end
def test_validation_of_fragment
data = [{ 'content' => 'ohai', 'author' => 'Bob' }]
assert_valid whole_schema, data, fragment: '#/definitions/posts'
end
def test_validation_of_fragment_with_array
data = { 'content' => 'ohai', 'author' => 'Bob' }
assert_valid(whole_schema_with_array, data,
fragment: '#/definitions/omg/links/0/schema')
end
end
|