Skip to content

Commit 9a7ace3

Browse files
committed
Don't run reader open tests over all readers, just that being tested.
1 parent 0488e30 commit 9a7ace3

1 file changed

Lines changed: 33 additions & 35 deletions

File tree

lib/rdf/spec/reader.rb

Lines changed: 33 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
end
1212

1313
let(:reader_class) { reader.class }
14+
let(:format_class) { reader_class.format }
1415

1516
describe ".each" do
1617
it "yields each reader" do
@@ -21,61 +22,58 @@
2122
end
2223

2324
describe ".open" do
24-
before(:each) do
25+
it "yields reader given file_name" do
2526
allow(RDF::Util::File).to receive(:open_file).and_yield(StringIO.new(reader_input))
2627
end
2728

2829
it "yields reader given file_name" do
2930
reader_class.format.each do |f|
30-
f.file_extensions.each_pair do |sym, content_type|
31-
reader_mock = double("reader")
32-
expect(reader_mock).to receive(:got_here)
33-
expect(reader_class).to receive(:for).with(file_name: "foo.#{sym}").and_return(reader_class)
34-
reader_class.open("foo.#{sym}") do |r|
35-
expect(r).to be_a(RDF::Reader)
36-
reader_mock.got_here
31+
format_class.file_extensions.each_pair do |sym, content_type|
32+
reader_mock = double("reader")
33+
expect(reader_mock).to receive(:got_here)
34+
expect(RDF::Reader).to receive(:for).with(file_name: "foo.#{sym}").and_return(reader_class)
35+
RDF::Reader.open("foo.#{sym}") do |r|
36+
expect(r).to be_a(reader_class)
37+
reader_mock.got_here
3738
end
3839
end
3940
end
4041
end
4142

4243
it "yields reader given symbol" do
43-
reader_class.format.each do |f|
44-
sym = f.to_sym # Like RDF::NTriples::Format => :ntriples
45-
reader_mock = double("reader")
46-
expect(reader_mock).to receive(:got_here)
47-
expect(reader_class).to receive(:for).with(sym).and_return(reader_class)
48-
reader_class.open("foo.#{sym}", format: sym) do |r|
49-
expect(r).to be_a(RDF::Reader)
50-
reader_mock.got_here
51-
end
44+
allow(RDF::Util::File).to receive(:open_file).and_yield(StringIO.new(reader_input))
45+
sym = format_class.to_sym # Like RDF::NTriples::Format => :ntriples
46+
reader_mock = double("reader")
47+
expect(reader_mock).to receive(:got_here)
48+
expect(RDF::Reader).to receive(:for).with(sym).and_return(reader_class)
49+
RDF::Reader.open("foo.#{sym}", format: sym) do |r|
50+
expect(r).to be_a(reader_class)
51+
reader_mock.got_here
5252
end
5353
end
5454

5555
it "yields reader given {file_name: file_name}" do
56-
reader_class.format.each do |f|
57-
f.file_extensions.each_pair do |sym, content_type|
58-
reader_mock = double("reader")
59-
expect(reader_mock).to receive(:got_here)
60-
expect(reader_class).to receive(:for).with(file_name: "foo.#{sym}").and_return(reader_class)
61-
reader_class.open("foo.#{sym}", file_name: "foo.#{sym}") do |r|
62-
expect(r).to be_a(RDF::Reader)
63-
reader_mock.got_here
64-
end
56+
allow(RDF::Util::File).to receive(:open_file).and_yield(StringIO.new(reader_input))
57+
format_class.file_extensions.each_pair do |sym, content_type|
58+
reader_mock = double("reader")
59+
expect(reader_mock).to receive(:got_here)
60+
expect(RDF::Reader).to receive(:for).with(file_name: "foo.#{sym}").and_return(reader_class)
61+
RDF::Reader.open("foo.#{sym}", file_name: "foo.#{sym}") do |r|
62+
expect(r).to be_a(reader_class)
63+
reader_mock.got_here
6564
end
6665
end
6766
end
6867

6968
it "yields reader given {content_type: 'a/b'}" do
70-
reader_class.format.each do |f|
71-
f.content_types.each_pair do |content_type, formats|
72-
reader_mock = double("reader")
73-
expect(reader_mock).to receive(:got_here)
74-
expect(reader_class).to receive(:for).with(content_type: content_type, file_name: "foo").and_return(reader_class)
75-
reader_class.open("foo", content_type: content_type) do |r|
76-
expect(r).to be_a(RDF::Reader)
77-
reader_mock.got_here
78-
end
69+
allow(RDF::Util::File).to receive(:open_file).and_yield(StringIO.new(reader_input))
70+
format_class.content_types.each_pair do |content_type, formats|
71+
reader_mock = double("reader")
72+
expect(reader_mock).to receive(:got_here)
73+
expect(RDF::Reader).to receive(:for).with(content_type: content_type, file_name: "foo").and_return(reader_class)
74+
RDF::Reader.open("foo", content_type: content_type) do |r|
75+
expect(r).to be_a(reader_class)
76+
reader_mock.got_here
7977
end
8078
end
8179
end

0 commit comments

Comments
 (0)