json_schema 0.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,67 @@
1
+ require "test_helper"
2
+
3
+ require "json_schema"
4
+
5
+ describe JsonSchema do
6
+ describe ".parse" do
7
+ it "succeeds" do
8
+ schema, errors = JsonSchema.parse(schema_sample)
9
+ assert schema
10
+ end
11
+
12
+ it "returns errors on a parsing problem" do
13
+ pointer("#/properties").merge!(
14
+ "app" => 4
15
+ )
16
+ schema, errors = JsonSchema.parse(schema_sample)
17
+ refute schema
18
+ assert_includes errors.map { |e| e.message },
19
+ %{Expected schema; value was: 4.}
20
+ end
21
+
22
+ it "returns errors on a reference expansion problem" do
23
+ pointer("#/properties").merge!(
24
+ "app" => { "$ref" => "#/bad-json-reference" }
25
+ )
26
+ schema, errors = JsonSchema.parse(schema_sample)
27
+ refute schema
28
+ assert_includes errors.map { |e| e.message },
29
+ %{Couldn't resolve pointer "#/bad-json-reference".}
30
+ end
31
+ end
32
+
33
+ describe ".parse!" do
34
+ it "succeeds on .parse!" do
35
+ assert JsonSchema.parse!(schema_sample)
36
+ end
37
+
38
+ it "returns errors on a parsing problem" do
39
+ pointer("#/properties").merge!(
40
+ "app" => 4
41
+ )
42
+ e = assert_raises(RuntimeError) do
43
+ JsonSchema.parse!(schema_sample)
44
+ end
45
+ assert_includes e.message, %{Expected schema; value was: 4.}
46
+ end
47
+
48
+ it "returns errors on a reference expansion problem" do
49
+ pointer("#/properties").merge!(
50
+ "app" => { "$ref" => "#/bad-json-reference" }
51
+ )
52
+ e = assert_raises(RuntimeError) do
53
+ JsonSchema.parse!(schema_sample)
54
+ end
55
+ assert_includes e.message,
56
+ %{Couldn't resolve pointer "#/bad-json-reference".}
57
+ end
58
+ end
59
+
60
+ def pointer(path)
61
+ JsonPointer.evaluate(schema_sample, path)
62
+ end
63
+
64
+ def schema_sample
65
+ @schema_sample ||= DataScaffold.schema_sample
66
+ end
67
+ end
@@ -0,0 +1,4 @@
1
+ require "minitest"
2
+ require "minitest/autorun"
3
+ #require "pry-rescue/minitest"
4
+ require_relative "data_scaffold"
metadata ADDED
@@ -0,0 +1,64 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: json_schema
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.7
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Brandur
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2014-05-14 00:00:00.000000000 Z
13
+ dependencies: []
14
+ description:
15
+ email:
16
+ - brandur@mutelight.org
17
+ executables: []
18
+ extensions: []
19
+ extra_rdoc_files: []
20
+ files:
21
+ - README.md
22
+ - lib/json_pointer/evaluator.rb
23
+ - lib/json_pointer.rb
24
+ - lib/json_reference.rb
25
+ - lib/json_schema/parser.rb
26
+ - lib/json_schema/reference_expander.rb
27
+ - lib/json_schema/schema.rb
28
+ - lib/json_schema/schema_error.rb
29
+ - lib/json_schema/validator.rb
30
+ - lib/json_schema.rb
31
+ - test/data_scaffold.rb
32
+ - test/json_pointer/evaluator_test.rb
33
+ - test/json_schema/parser_test.rb
34
+ - test/json_schema/reference_expander_test.rb
35
+ - test/json_schema/validator_test.rb
36
+ - test/json_schema_test.rb
37
+ - test/test_helper.rb
38
+ homepage: https://github.com/brandur/json_schema
39
+ licenses:
40
+ - MIT
41
+ post_install_message:
42
+ rdoc_options: []
43
+ require_paths:
44
+ - lib
45
+ required_ruby_version: !ruby/object:Gem::Requirement
46
+ none: false
47
+ requirements:
48
+ - - ! '>='
49
+ - !ruby/object:Gem::Version
50
+ version: '0'
51
+ required_rubygems_version: !ruby/object:Gem::Requirement
52
+ none: false
53
+ requirements:
54
+ - - ! '>='
55
+ - !ruby/object:Gem::Version
56
+ version: '0'
57
+ requirements: []
58
+ rubyforge_project:
59
+ rubygems_version: 1.8.24
60
+ signing_key:
61
+ specification_version: 3
62
+ summary: A JSON Schema V4 and Hyperschema V4 parser and validator.
63
+ test_files: []
64
+ has_rdoc: