|
48 | 48 | context "with MultiJson adapter #{adapter.inspect}" do |
49 | 49 | Dir.glob(File.expand_path(File.join(File.dirname(__FILE__), 'test-files/*-input.*'))) do |filename| |
50 | 50 | test = File.basename(filename).sub(/-input\..*$/, '') |
51 | | - frame = filename.sub(/-input\..*$/, '-frame.json') |
52 | | - framed = filename.sub(/-input\..*$/, '-framed.json') |
53 | | - compacted = filename.sub(/-input\..*$/, '-compacted.json') |
54 | | - context = filename.sub(/-input\..*$/, '-context.json') |
55 | | - expanded = filename.sub(/-input\..*$/, '-expanded.json') |
| 51 | + frame = filename.sub(/-input\..*$/, '-frame.jsonld') |
| 52 | + framed = filename.sub(/-input\..*$/, '-framed.jsonld') |
| 53 | + compacted = filename.sub(/-input\..*$/, '-compacted.jsonld') |
| 54 | + context = filename.sub(/-input\..*$/, '-context.jsonld') |
| 55 | + expanded = filename.sub(/-input\..*$/, '-expanded.jsonld') |
56 | 56 | ttl = filename.sub(/-input\..*$/, '-rdf.ttl') |
57 | 57 |
|
58 | 58 | context test, skip: ("Not supported in JRuby" if RUBY_ENGINE == "jruby" && %w(oj yajl).include?(adapter.to_s)) do |
| 59 | + around do |example| |
| 60 | + @file = File.open(filename) |
| 61 | + case filename |
| 62 | + when /.jsonld$/ |
| 63 | + @file.define_singleton_method(:content_type) {'application/ld+json'} |
| 64 | + end |
| 65 | + if context |
| 66 | + @ctx_io = File.open(context) |
| 67 | + case context |
| 68 | + when /.jsonld$/ |
| 69 | + @ctx_io.define_singleton_method(:content_type) {'application/ld+json'} |
| 70 | + end |
| 71 | + end |
| 72 | + example.run |
| 73 | + @file.close |
| 74 | + @ctx_io.close if @ctx_io |
| 75 | + end |
| 76 | + |
59 | 77 | if File.exist?(expanded) |
60 | 78 | it "expands" do |
61 | 79 | options = {logger: logger, adapter: adapter} |
62 | | - File.open(context) do |ctx_io| |
63 | | - File.open(filename) do |file| |
64 | | - options[:expandContext] = ctx_io if context |
65 | | - jld = described_class.expand(file, **options) |
66 | | - expect(jld).to produce_jsonld(JSON.parse(File.read(expanded)), logger) |
67 | | - end |
68 | | - end |
| 80 | + options[:expandContext] = @ctx_io if context |
| 81 | + jld = described_class.expand(@file, **options) |
| 82 | + expect(jld).to produce_jsonld(JSON.parse(File.read(expanded)), logger) |
69 | 83 | end |
70 | 84 |
|
71 | 85 | it "expands with serializer" do |
72 | 86 | options = {logger: logger, adapter: adapter} |
73 | | - File.open(context) do |ctx_io| |
74 | | - File.open(filename) do |file| |
75 | | - options[:expandContext] = ctx_io if context |
76 | | - jld = described_class.expand(file, serializer: JSON::LD::API.method(:serializer), **options) |
77 | | - expect(jld).to be_a(String) |
78 | | - expect(JSON.load(jld)).to produce_jsonld(JSON.parse(File.read(expanded)), logger) |
79 | | - end |
80 | | - end |
| 87 | + options[:expandContext] = @ctx_io if context |
| 88 | + jld = described_class.expand(@file, serializer: JSON::LD::API.method(:serializer), **options) |
| 89 | + expect(jld).to be_a(String) |
| 90 | + expect(JSON.load(jld)).to produce_jsonld(JSON.parse(File.read(expanded)), logger) |
81 | 91 | end |
82 | 92 | end |
83 | 93 |
|
84 | 94 | if File.exist?(compacted) && File.exist?(context) |
85 | 95 | it "compacts" do |
86 | | - File.open(context) do |ctx_io| |
87 | | - File.open(filename) do |file| |
88 | | - jld = described_class.compact(file, ctx_io, adapter: adapter, logger: logger) |
89 | | - expect(jld).to produce_jsonld(JSON.parse(File.read(compacted)), logger) |
90 | | - end |
91 | | - end |
| 96 | + jld = described_class.compact(@file, @ctx_io, adapter: adapter, logger: logger) |
| 97 | + expect(jld).to produce_jsonld(JSON.parse(File.read(compacted)), logger) |
92 | 98 | end |
93 | 99 |
|
94 | 100 | it "compacts with serializer" do |
95 | | - File.open(context) do |ctx_io| |
96 | | - File.open(filename) do |file| |
97 | | - jld = described_class.compact(file, ctx_io, serializer: JSON::LD::API.method(:serializer), adapter: adapter, logger: logger) |
98 | | - expect(jld).to be_a(String) |
99 | | - expect(JSON.load(jld)).to produce_jsonld(JSON.parse(File.read(compacted)), logger) |
100 | | - end |
101 | | - end |
| 101 | + jld = described_class.compact(@file, @ctx_io, serializer: JSON::LD::API.method(:serializer), adapter: adapter, logger: logger) |
| 102 | + expect(jld).to be_a(String) |
| 103 | + expect(JSON.load(jld)).to produce_jsonld(JSON.parse(File.read(compacted)), logger) |
102 | 104 | end |
103 | 105 | end |
104 | 106 |
|
105 | 107 | if File.exist?(framed) && File.exist?(frame) |
106 | 108 | it "frames" do |
107 | 109 | File.open(frame) do |frame_io| |
108 | | - File.open(filename) do |file| |
109 | | - jld = described_class.frame(file, frame_io, adapter: adapter, logger: logger) |
110 | | - expect(jld).to produce_jsonld(JSON.parse(File.read(framed)), logger) |
111 | | - end |
| 110 | + jld = described_class.frame(@file, frame_io, adapter: adapter, logger: logger) |
| 111 | + expect(jld).to produce_jsonld(JSON.parse(File.read(framed)), logger) |
112 | 112 | end |
113 | 113 | end |
114 | 114 |
|
115 | 115 | it "frames with serializer" do |
116 | 116 | File.open(frame) do |frame_io| |
117 | | - File.open(filename) do |file| |
118 | | - jld = described_class.frame(file, frame_io, serializer: JSON::LD::API.method(:serializer), adapter: adapter, logger: logger) |
119 | | - expect(jld).to be_a(String) |
120 | | - expect(JSON.load(jld)).to produce_jsonld(JSON.parse(File.read(framed)), logger) |
121 | | - end |
| 117 | + jld = described_class.frame(@file, frame_io, serializer: JSON::LD::API.method(:serializer), adapter: adapter, logger: logger) |
| 118 | + expect(jld).to be_a(String) |
| 119 | + expect(JSON.load(jld)).to produce_jsonld(JSON.parse(File.read(framed)), logger) |
122 | 120 | end |
123 | 121 | end |
124 | 122 | end |
|
0 commit comments