rdf-spec 1.1.5 → 1.1.13

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.
@@ -1,16 +1,39 @@
1
1
  require 'rdf/spec'
2
2
 
3
+ RSpec.shared_examples 'an RDF::Readable' do
4
+ include RDF::Spec::Matchers
5
+
6
+ before do
7
+ raise 'readable must be defined in with let(:readable)' unless
8
+ defined? readable
9
+ end
10
+
11
+ describe RDF::Readable do
12
+ subject { readable }
13
+ it { is_expected.to respond_to :readable? }
14
+ it { is_expected.to respond_to :readable? }
15
+ its(:readable?) { is_expected.to eq subject.readable? }
16
+ end
17
+ end
18
+
19
+ ##
20
+ # @deprecated use `it_behaves_like "an RDF::Readable"` instead
3
21
  module RDF_Readable
4
22
  extend RSpec::SharedContext
5
23
  include RDF::Spec::Matchers
6
24
 
7
- before :each do
8
- raise '+@readable+ must be defined in a before(:each) block' unless instance_variable_get('@readable')
25
+ def self.included(mod)
26
+ warn "[DEPRECATION] `RDF_Readable` is deprecated. "\
27
+ "Please use `it_behaves_like 'an RDF::Readable'`"
9
28
  end
10
29
 
11
- describe RDF::Readable do
12
- subject {@readable}
13
- it {should respond_to(:readable?)}
14
- its(:readable?) {should == subject.readable?}
30
+ describe 'examples for' do
31
+ include_examples 'an RDF::Readable' do
32
+ let(:readable) { @readable }
33
+
34
+ before do
35
+ raise '@readable must be defined' unless defined?(readable)
36
+ end
37
+ end
15
38
  end
16
39
  end
@@ -1,208 +1,234 @@
1
1
  require 'rdf/spec'
2
2
 
3
- module RDF_Reader
3
+ RSpec.shared_examples 'an RDF::Reader' do
4
4
  extend RSpec::SharedContext
5
- include RDF::Spec::Matchers
6
5
 
7
6
  before(:each) do
8
- raise '+@reader+ must be defined in a before(:each) block' unless instance_variable_get('@reader')
9
- raise '+@reader_input+ must be defined in a before(:each) block' unless instance_variable_get('@reader_input')
10
- raise '+@reader_count+ must be defined in a before(:each) block' unless instance_variable_get('@reader_count')
11
- @reader_class = @reader.class
7
+ raise 'reader must be defined with let(:reader)' unless defined? reader
8
+ raise 'reader_input must be defined with let(:reader_input)' unless defined? reader_input
9
+ raise 'reader_count must be defined with let(:reader_count)' unless defined? reader_count
12
10
  end
13
11
 
14
- describe RDF::Reader do
15
- describe ".each" do
16
- it "yields each reader" do
17
- @reader_class.each do |r|
18
- expect(r).not_to be_nil
19
- end
12
+ let(:reader_class) { reader.class }
13
+
14
+ describe ".each" do
15
+ it "yields each reader" do
16
+ reader_class.each do |r|
17
+ expect(r).not_to be_nil
20
18
  end
21
19
  end
20
+ end
22
21
 
23
- describe ".open" do
24
- before(:each) do
25
- allow(RDF::Util::File).to receive(:open_file).and_yield(StringIO.new(@reader_input))
26
- end
22
+ describe ".open" do
23
+ before(:each) do
24
+ allow(RDF::Util::File).to receive(:open_file).and_yield(StringIO.new(reader_input))
25
+ end
27
26
 
28
- it "yields reader given file_name" do
29
- @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
37
- end
27
+ it "yields reader given file_name" do
28
+ reader_class.format.each do |f|
29
+ f.file_extensions.each_pair do |sym, content_type|
30
+ reader_mock = double("reader")
31
+ expect(reader_mock).to receive(:got_here)
32
+ expect(reader_class).to receive(:for).with(:file_name => "foo.#{sym}").and_return(reader_class)
33
+ reader_class.open("foo.#{sym}") do |r|
34
+ expect(r).to be_a(RDF::Reader)
35
+ reader_mock.got_here
38
36
  end
39
37
  end
40
38
  end
39
+ end
41
40
 
42
- it "yields reader given symbol" do
43
- @reader_class.format.each do |f|
44
- sym = f.to_sym # Like RDF::NTriples::Format => :ntriples
41
+ it "yields reader given symbol" do
42
+ reader_class.format.each do |f|
43
+ sym = f.to_sym # Like RDF::NTriples::Format => :ntriples
44
+ reader_mock = double("reader")
45
+ expect(reader_mock).to receive(:got_here)
46
+ expect(reader_class).to receive(:for).with(sym).and_return(reader_class)
47
+ reader_class.open("foo.#{sym}", :format => sym) do |r|
48
+ expect(r).to be_a(RDF::Reader)
49
+ reader_mock.got_here
50
+ end
51
+ end
52
+ end
53
+
54
+ it "yields reader given {:file_name => file_name}" do
55
+ reader_class.format.each do |f|
56
+ f.file_extensions.each_pair do |sym, content_type|
45
57
  reader_mock = double("reader")
46
58
  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|
59
+ expect(reader_class).to receive(:for).with(:file_name => "foo.#{sym}").and_return(reader_class)
60
+ reader_class.open("foo.#{sym}", :file_name => "foo.#{sym}") do |r|
49
61
  expect(r).to be_a(RDF::Reader)
50
62
  reader_mock.got_here
51
63
  end
52
64
  end
53
65
  end
66
+ end
54
67
 
55
- 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
68
+ it "yields reader given {:content_type => 'a/b'}" do
69
+ reader_class.format.each do |f|
70
+ f.content_types.each_pair do |content_type, formats|
71
+ reader_mock = double("reader")
72
+ expect(reader_mock).to receive(:got_here)
73
+ expect(reader_class).to receive(:for).with(:content_type => content_type, :file_name => "foo").and_return(reader_class)
74
+ reader_class.open("foo", :content_type => content_type) do |r|
75
+ expect(r).to be_a(RDF::Reader)
76
+ reader_mock.got_here
65
77
  end
66
78
  end
67
79
  end
80
+ end
81
+ end
68
82
 
69
- 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
79
- end
80
- end
81
- end
83
+ describe ".format" do
84
+ it "returns itself even if given explicit format" do
85
+ other_format = reader_class == RDF::NTriples::Reader ? :nquads : :ntriples
86
+ expect(reader_class.for(other_format)).to eq reader_class
82
87
  end
88
+ end
83
89
 
84
- describe ".format" do
85
- it "returns itself even if given explicit format" do
86
- other_format = @reader_class == RDF::NTriples::Reader ? :nquads : :ntriples
87
- expect(@reader_class.for(other_format)).to eq @reader_class
90
+ describe ".new" do
91
+ it "sets @input to StringIO given a string" do
92
+ reader_mock = double("reader")
93
+ expect(reader_mock).to receive(:got_here)
94
+ reader_class.new(reader_input) do |r|
95
+ reader_mock.got_here
96
+ expect(r.instance_variable_get(:@input)).to be_a(StringIO)
88
97
  end
89
98
  end
90
99
 
91
- describe ".new" do
92
- it "sets @input to StringIO given a string" do
93
- reader_mock = double("reader")
94
- expect(reader_mock).to receive(:got_here)
95
- @reader_class.new(@reader_input) do |r|
96
- reader_mock.got_here
97
- expect(r.instance_variable_get(:@input)).to be_a(StringIO)
98
- end
100
+ it "sets @input to input given something other than a string" do
101
+ reader_mock = double("reader")
102
+ expect(reader_mock).to receive(:got_here)
103
+ file = StringIO.new(reader_input)
104
+ reader_class.new(file) do |r|
105
+ reader_mock.got_here
106
+ expect(r.instance_variable_get(:@input)).to eq file
99
107
  end
108
+ end
100
109
 
101
- it "sets @input to input given something other than a string" do
102
- reader_mock = double("reader")
103
- expect(reader_mock).to receive(:got_here)
104
- file = StringIO.new(@reader_input)
105
- @reader_class.new(file) do |r|
106
- reader_mock.got_here
107
- expect(r.instance_variable_get(:@input)).to eq file
108
- end
110
+ it "sets validate given :validate => true" do
111
+ reader_class.new(reader_input, :validate => true) do |r|
112
+ expect(r).to be_valid
109
113
  end
114
+ end
110
115
 
111
- it "sets validate given :validate => true" do
112
- @reader_class.new(@reader_input, :validate => true) do |r|
113
- expect(r).to be_valid
114
- end
115
- end
116
-
117
- it "sets canonicalize given :canonicalize => true" do
118
- reader_mock = double("reader")
119
- expect(reader_mock).to receive(:got_here)
120
- @reader_class.new(@reader_input, :canonicalize => true) do |r|
121
- reader_mock.got_here
122
- expect(r).to be_canonicalize
123
- end
124
- end
125
-
126
- it "sets intern given :intern => true" do
127
- reader_mock = double("reader")
128
- expect(reader_mock).to receive(:got_here)
129
- @reader_class.new(@reader_input, :intern => true) do |r|
130
- reader_mock.got_here
131
- expect(r).to be_intern
132
- end
133
- end
134
-
135
- it "sets prefixes given :prefixes => {}" do
136
- reader_mock = double("reader")
137
- expect(reader_mock).to receive(:got_here)
138
- @reader_class.new(@reader_input, :prefixes => {:a => "b"}) do |r|
139
- reader_mock.got_here
140
- expect(r.prefixes).to eq({:a => "b"})
141
- end
116
+ it "sets canonicalize given :canonicalize => true" do
117
+ reader_mock = double("reader")
118
+ expect(reader_mock).to receive(:got_here)
119
+ reader_class.new(reader_input, :canonicalize => true) do |r|
120
+ reader_mock.got_here
121
+ expect(r).to be_canonicalize
142
122
  end
143
123
  end
144
-
145
- describe "#prefixes=" do
146
- it "sets prefixes from hash" do
147
- @reader.prefixes = {:a => "b"}
148
- expect(@reader.prefixes).to eq({:a => "b"})
124
+
125
+ it "sets intern given :intern => true" do
126
+ reader_mock = double("reader")
127
+ expect(reader_mock).to receive(:got_here)
128
+ reader_class.new(reader_input, :intern => true) do |r|
129
+ reader_mock.got_here
130
+ expect(r).to be_intern
149
131
  end
150
132
  end
151
-
152
- describe "#prefix" do
153
- {
154
- nil => "nil",
155
- :a => "b",
156
- "foo" => "bar",
157
- }.each_pair do |pfx, uri|
158
- it "sets prefix(#{pfx}) to #{uri}" do
159
- expect(@reader.prefix(pfx, uri)).to eq uri
160
- expect(@reader.prefix(pfx)).to eq uri
161
- end
133
+
134
+ it "sets prefixes given :prefixes => {}" do
135
+ reader_mock = double("reader")
136
+ expect(reader_mock).to receive(:got_here)
137
+ reader_class.new(reader_input, :prefixes => {:a => "b"}) do |r|
138
+ reader_mock.got_here
139
+ expect(r.prefixes).to eq({:a => "b"})
162
140
  end
163
141
  end
142
+ end
164
143
 
165
- context RDF::Enumerable do
166
- it "#count" do
167
- @reader_class.new(@reader_input) {|r| expect(r.count).to eq @reader_count}
168
- end
169
- it "#empty?" do
170
- @reader_class.new(@reader_input) {|r| expect(r).not_to be_empty}
171
- end
144
+ describe "#prefixes=" do
145
+ it "sets prefixes from hash" do
146
+ reader.prefixes = {:a => "b"}
147
+ expect(reader.prefixes).to eq({:a => "b"})
148
+ end
149
+ end
172
150
 
173
- it "#statements" do
174
- @reader_class.new(@reader_input) {|r| expect(r.statements.count).to eq @reader_count}
175
- end
176
- it "#has_statement?" do
177
- @reader_class.new(@reader_input) {|r| expect(r).to respond_to(:has_statement?)}
178
- end
179
- it "#each_statement" do
180
- @reader_class.new(@reader_input) {|r| expect(r.each_statement.count).to eq @reader_count}
181
- end
182
- it "#enum_statement" do
183
- @reader_class.new(@reader_input) {|r| expect(r.enum_statement.count).to eq @reader_count}
151
+ describe "#prefix" do
152
+ {
153
+ nil => "nil",
154
+ :a => "b",
155
+ "foo" => "bar",
156
+ }.each_pair do |pfx, uri|
157
+ it "sets prefix(#{pfx}) to #{uri}" do
158
+ expect(reader.prefix(pfx, uri)).to eq uri
159
+ expect(reader.prefix(pfx)).to eq uri
184
160
  end
161
+ end
162
+ end
185
163
 
186
- it "#triples" do
187
- @reader_class.new(@reader_input) {|r| expect(r.triples.count).to eq @reader_count}
188
- end
189
- it "#each_triple" do
190
- @reader_class.new(@reader_input) {|r| expect(r.each_triple.count).to eq @reader_count}
191
- end
192
- it "#enum_triple" do
193
- @reader_class.new(@reader_input) {|r| expect(r.enum_triple.count).to eq @reader_count}
194
- end
164
+ context RDF::Enumerable do
165
+ it "#count" do
166
+ reader_class.new(reader_input) {|r| expect(r.count).to eq reader_count}
167
+ end
168
+ it "#empty?" do
169
+ reader_class.new(reader_input) {|r| expect(r).not_to be_empty}
170
+ end
195
171
 
196
- it "#quads" do
197
- @reader_class.new(@reader_input) {|r| expect(r.quads.count).to eq @reader_count}
198
- end
199
- it "#each_quad" do
200
- @reader_class.new(@reader_input) {|r| expect(r.each_quad.count).to eq @reader_count}
201
- end
202
- it "#enum_quad" do
203
- @reader_class.new(@reader_input) {|r| expect(r.enum_quad.count).to eq @reader_count}
204
- end
172
+ it "#statements" do
173
+ reader_class.new(reader_input) {|r| expect(r.statements.count).to eq reader_count}
174
+ end
175
+ it "#has_statement?" do
176
+ reader_class.new(reader_input) {|r| expect(r).to respond_to(:has_statement?)}
177
+ end
178
+ it "#each_statement" do
179
+ reader_class.new(reader_input) {|r| expect(r.each_statement.count).to eq reader_count}
180
+ end
181
+ it "#enum_statement" do
182
+ reader_class.new(reader_input) {|r| expect(r.enum_statement.count).to eq reader_count}
183
+ end
205
184
 
185
+ it "#triples" do
186
+ reader_class.new(reader_input) {|r| expect(r.triples.count).to eq reader_count}
187
+ end
188
+ it "#each_triple" do
189
+ reader_class.new(reader_input) {|r| expect(r.each_triple.count).to eq reader_count}
190
+ end
191
+ it "#enum_triple" do
192
+ reader_class.new(reader_input) {|r| expect(r.enum_triple.count).to eq reader_count}
193
+ end
194
+
195
+ it "#quads" do
196
+ reader_class.new(reader_input) {|r| expect(r.quads.count).to eq reader_count}
197
+ end
198
+ it "#each_quad" do
199
+ reader_class.new(reader_input) {|r| expect(r.each_quad.count).to eq reader_count}
200
+ end
201
+ it "#enum_quad" do
202
+ reader_class.new(reader_input) {|r| expect(r.enum_quad.count).to eq reader_count}
203
+ end
204
+
205
+ end
206
+ end
207
+
208
+ ##
209
+ # @deprecated use `it_behaves_like "an RDF::Reader"` instead
210
+ module RDF_Reader
211
+ extend RSpec::SharedContext
212
+ include RDF::Spec::Matchers
213
+
214
+ def self.included(mod)
215
+ warn "[DEPRECATION] `RDF_Reader` is deprecated. "\
216
+ "Please use `it_behaves_like 'an RDF::Reader'`"
217
+ end
218
+
219
+ describe 'examples for' do
220
+ include_examples 'an RDF::Reader' do
221
+ let(:reader) { @reader }
222
+ let(:reader_input) { @reader_input }
223
+ let(:reader_count) { @reader_count }
224
+ let(:reader_class) { @reader_class }
225
+
226
+ before do
227
+ raise '@reader must be defined' unless defined?(reader)
228
+ raise '@reader_input must be defined' unless defined?(reader_input)
229
+ raise '@reader_count must be defined' unless defined?(reader_count)
230
+ raise '@reader_class must be defined' unless defined?(reader_class)
231
+ end
206
232
  end
207
233
  end
208
234
  end
@@ -1,59 +1,80 @@
1
1
  require 'rdf/spec'
2
2
 
3
- module RDF_Repository
4
- extend RSpec::SharedContext
3
+ RSpec.shared_examples 'an RDF::Repository' do
5
4
  include RDF::Spec::Matchers
6
5
 
7
6
  before :each do
8
- raise '+@repository+ must be defined in a before(:each) block' unless instance_variable_get('@repository')
7
+ raise 'repository must be set with `let(:repository)' unless
8
+ defined? repository
9
+
9
10
  @statements = RDF::Spec.quads
10
- if @repository.empty? && @repository.writable?
11
- @repository.insert(*@statements)
12
- elsif @repository.empty?
11
+ if repository.empty? && repository.writable?
12
+ repository.insert(*@statements)
13
+ elsif repository.empty?
13
14
  raise "+@repository+ must respond to #<< or be pre-populated with the statements in #{RDF::Spec::TRIPLES_FILE} in a before(:each) block"
14
15
  end
15
- @countable = @repository
16
- @enumerable = @repository
17
- @queryable = @repository
18
- @mutable = @repository
19
16
  end
20
17
 
21
- describe RDF::Repository do
18
+ let(:countable) { repository }
19
+ let(:enumerable) { repository }
20
+ let(:queryable) { repository }
21
+ let(:mutable) { repository }
22
22
 
23
- context "when counting statements" do
24
- require 'rdf/spec/countable'
25
- include RDF_Countable
26
- end
23
+ context "when counting statements" do
24
+ require 'rdf/spec/countable'
25
+ it_behaves_like 'an RDF::Countable'
26
+ end
27
27
 
28
- context "when enumerating statements" do
29
- require 'rdf/spec/enumerable'
30
- include RDF_Enumerable
31
- end
28
+ context "when enumerating statements" do
29
+ require 'rdf/spec/enumerable'
30
+ it_behaves_like 'an RDF::Enumerable'
31
+ end
32
32
 
33
- context "when querying statements" do
34
- require 'rdf/spec/queryable'
35
- include RDF_Queryable
36
- end
33
+ context "when querying statements" do
34
+ require 'rdf/spec/queryable'
35
+ it_behaves_like 'an RDF::Queryable'
36
+ end
37
37
 
38
- # FIXME: This should be condition on the repository being mutable
39
- context "when updating" do
40
- require 'rdf/spec/mutable'
41
- before(:each) do
42
- @mutable.clear
43
- end
44
- include RDF_Mutable
38
+ # FIXME: This should be condition on the repository being mutable
39
+ context "when updating" do
40
+ require 'rdf/spec/mutable'
41
+
42
+ before { mutable.clear }
43
+
44
+ it_behaves_like 'an RDF::Mutable'
45
+ end
46
+
47
+ # FIXME: This should be condition on the repository being mutable
48
+ context "as a durable repository" do
49
+ require 'rdf/spec/durable'
50
+
51
+ before :each do
52
+ repository.clear
53
+ @load_durable ||= lambda { repository }
45
54
  end
46
55
 
47
- # FIXME: This should be condition on the repository being mutable
48
- context "as a durable repository" do
49
- require 'rdf/spec/durable'
56
+ it_behaves_like 'an RDF::Durable'
57
+ end
58
+ end
50
59
 
51
- before :each do
52
- @repository.clear
53
- @load_durable ||= lambda { @repository }
54
- end
60
+ ##
61
+ # @deprecated use `it_behaves_like "an RDF::Repository"` instead
62
+ module RDF_Repository
63
+ extend RSpec::SharedContext
64
+ include RDF::Spec::Matchers
65
+
66
+ def self.included(mod)
67
+ warn "[DEPRECATION] `RDF_Repository` is deprecated. "\
68
+ "Please use `it_behaves_like 'an RDF::Repository'`"
69
+ end
70
+
71
+ describe 'examples for' do
72
+ include_examples 'an RDF::Repository' do
73
+ let(:repository) { @repository }
55
74
 
56
- include RDF_Durable
75
+ before do
76
+ raise '@repository must be defined' unless defined?(repository)
77
+ end
57
78
  end
58
79
  end
59
80
  end