|
| 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