Skip to content

Commit d020ff2

Browse files
committed
test JSON::Schema::Pointer
1 parent 8cf57b5 commit d020ff2

File tree

1 file changed

+40
-0
lines changed

1 file changed

+40
-0
lines changed

test/json_schema_pointer_test.rb

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
require File.expand_path('../support/test_helper', __FILE__)
2+
require 'json-schema/pointer'
3+
4+
class JsonSchemaPointerTest < Minitest::Test
5+
def test_initialize_parsing_fragment
6+
pointer = JSON::Schema::Pointer.new(:fragment, "#/a%2520%20b/c~1d/e%7E0f/0")
7+
8+
assert_equal(['a%20 b', 'c/d', 'e~f', '0'], pointer.reference_tokens)
9+
end
10+
def test_initialize_parsing_pointer
11+
pointer = JSON::Schema::Pointer.new(:pointer, "/a%20 b/c~1d/e~0f/0")
12+
13+
assert_equal(['a%20 b', 'c/d', 'e~f', '0'], pointer.reference_tokens)
14+
end
15+
def test_initialize_reference_tokens
16+
pointer = JSON::Schema::Pointer.new(:reference_tokens, ['a%20 b', 'c/d', 'e~f', '0'])
17+
18+
assert_equal(['a%20 b', 'c/d', 'e~f', '0'], pointer.reference_tokens)
19+
end
20+
def test_initialize_bad_fragment
21+
assert_raises(JSON::Schema::Pointer::PointerSyntaxError) do
22+
JSON::Schema::Pointer.new(:fragment, "a%2520%20b/c~1d/e%7E0f/0")
23+
end
24+
end
25+
def test_initialize_bad_pointer
26+
assert_raises(JSON::Schema::Pointer::PointerSyntaxError) do
27+
JSON::Schema::Pointer.new(:pointer, "a%20 b/c~1d/e~0f/0")
28+
end
29+
end
30+
def test_evaluate_success
31+
pointer = JSON::Schema::Pointer.new(:fragment, "#/a%2520%20b/c~1d/e%7E0f/0")
32+
assert_equal(1, pointer.evaluate({'a%20 b' => {'c/d' => {'e~f' => [1]}}}))
33+
end
34+
def test_evaluate_fail
35+
assert_raises(JSON::Schema::Pointer::ReferenceError) do
36+
pointer = JSON::Schema::Pointer.new(:fragment, "#/a%2520%20b/c~1d/e%7E0f/0")
37+
pointer.evaluate([])
38+
end
39+
end
40+
end

0 commit comments

Comments
 (0)