test/test_jsonschema_draft4.rb in json-schema-2.1.9 vs test/test_jsonschema_draft4.rb in json-schema-2.2.0

- old
+ new

@@ -413,9 +413,57 @@ data = {"a" => nil, "b" => nil, "c" => nil} assert(!JSON::Validator.validate(schema,data)) end + def test_strict_properties + schema = { + "$schema" => "http://json-schema.org/draft-04/schema#", + "properties" => { + "a" => {"type" => "string"}, + "b" => {"type" => "string"} + } + } + + data = {"a" => "a"} + assert(!JSON::Validator.validate(schema,data,:strict => true)) + + data = {"b" => "b"} + assert(!JSON::Validator.validate(schema,data,:strict => true)) + + data = {"a" => "a", "b" => "b"} + assert(JSON::Validator.validate(schema,data,:strict => true)) + + data = {"a" => "a", "b" => "b", "c" => "c"} + assert(!JSON::Validator.validate(schema,data,:strict => true)) + end + + def test_strict_properties_additional_props + schema = { + "$schema" => "http://json-schema.org/draft-04/schema#", + "properties" => { + "a" => {"type" => "string"}, + "b" => {"type" => "string"} + }, + "additionalProperties" => {"type" => "integer"} + } + + data = {"a" => "a"} + assert(!JSON::Validator.validate(schema,data,:strict => true)) + + data = {"b" => "b"} + assert(!JSON::Validator.validate(schema,data,:strict => true)) + + data = {"a" => "a", "b" => "b"} + assert(JSON::Validator.validate(schema,data,:strict => true)) + + data = {"a" => "a", "b" => "b", "c" => "c"} + assert(!JSON::Validator.validate(schema,data,:strict => true)) + + data = {"a" => "a", "b" => "b", "c" => 3} + assert(JSON::Validator.validate(schema,data,:strict => true)) + end + def test_unique_items # Set up the default datatype schema = {