rdf-spec 1.0.7 → 1.0.9

Sign up to get free protection for your applications and to get access to all the features.
@@ -15,11 +15,11 @@ module RDF_Indexable
15
15
  it {should respond_to(:index!)}
16
16
 
17
17
  it "does not raise error on #index! if #indexed?" do
18
- lambda {subject.index!}.should_not raise_error if subject.indexed?
18
+ expect {subject.index!}.not_to raise_error if subject.indexed?
19
19
  end
20
20
 
21
21
  it "raises error on #index! if not #indexed?" do
22
- lambda {subject.index!}.should raise_error unless subject.indexed?
22
+ expect {subject.index!}.to raise_error unless subject.indexed?
23
23
  end
24
24
  end
25
25
  end
@@ -8,113 +8,113 @@ module RDF; module Spec
8
8
  module Matchers
9
9
  RSpec::Matchers.define :be_countable do
10
10
  match do |countable|
11
- countable.should be_a_kind_of(RDF::Countable)
11
+ expect(countable).to be_a_kind_of(RDF::Countable)
12
12
  true
13
13
  end
14
14
  end
15
15
 
16
16
  RSpec::Matchers.define :be_enumerable do
17
17
  match do |enumerable|
18
- enumerable.should be_a_kind_of(RDF::Enumerable)
18
+ expect(enumerable).to be_a_kind_of(RDF::Enumerable)
19
19
  true
20
20
  end
21
21
  end
22
22
 
23
23
  RSpec::Matchers.define :be_an_enumerator do
24
24
  match do |enumerator|
25
- enumerator.should be_a_kind_of(RDF::Enumerator)
25
+ expect(enumerator).to be_a_kind_of(RDF::Enumerator)
26
26
  true
27
27
  end
28
28
  end
29
29
 
30
30
  RSpec::Matchers.define :be_queryable do
31
31
  match do |enumerable|
32
- enumerable.should be_a_kind_of(RDF::Queryable)
32
+ expect(enumerable).to be_a_kind_of(RDF::Queryable)
33
33
  true
34
34
  end
35
35
  end
36
36
 
37
37
  RSpec::Matchers.define :be_mutable do
38
38
  match do |enumerable|
39
- enumerable.should be_a_kind_of(RDF::Mutable)
39
+ expect(enumerable).to be_a_kind_of(RDF::Mutable)
40
40
  true
41
41
  end
42
42
  end
43
43
 
44
44
  RSpec::Matchers.define :be_a_statement do
45
45
  match do |statement|
46
- statement.should be_instance_of(RDF::Statement)
47
- statement.subject.should be_a_kind_of(RDF::Resource)
48
- statement.predicate.should be_a_kind_of(RDF::URI)
49
- statement.object.should be_a_kind_of(RDF::Value)
46
+ expect(statement).to be_instance_of(RDF::Statement)
47
+ expect(statement.subject).to be_a_kind_of(RDF::Resource)
48
+ expect(statement.predicate).to be_a_kind_of(RDF::URI)
49
+ expect(statement.object).to be_a_kind_of(RDF::Value)
50
50
  true
51
51
  end
52
52
  end
53
53
 
54
54
  RSpec::Matchers.define :be_a_triple do
55
55
  match do |triple|
56
- triple.should be_instance_of(Array)
57
- triple.size.should == 3
58
- triple[0].should be_a_kind_of(RDF::Resource)
59
- triple[1].should be_a_kind_of(RDF::URI)
60
- triple[2].should be_a_kind_of(RDF::Value)
56
+ expect(triple).to be_instance_of(Array)
57
+ expect(triple.size).to eq 3
58
+ expect(triple[0]).to be_a_kind_of(RDF::Resource)
59
+ expect(triple[1]).to be_a_kind_of(RDF::URI)
60
+ expect(triple[2]).to be_a_kind_of(RDF::Value)
61
61
  true
62
62
  end
63
63
  end
64
64
 
65
65
  RSpec::Matchers.define :be_a_quad do
66
66
  match do |quad|
67
- quad.should be_instance_of(Array)
68
- quad.size.should == 4
69
- quad[0].should be_a_kind_of(RDF::Resource)
70
- quad[1].should be_a_kind_of(RDF::URI)
71
- quad[2].should be_a_kind_of(RDF::Value)
72
- quad[3].should be_a_kind_of(RDF::Resource) unless quad[3].nil?
67
+ expect(quad).to be_instance_of(Array)
68
+ expect(quad.size).to eq 4
69
+ expect(quad[0]).to be_a_kind_of(RDF::Resource)
70
+ expect(quad[1]).to be_a_kind_of(RDF::URI)
71
+ expect(quad[2]).to be_a_kind_of(RDF::Value)
72
+ expect(quad[3]).to be_a_kind_of(RDF::Resource) unless quad[3].nil?
73
73
  true
74
74
  end
75
75
  end
76
76
 
77
77
  RSpec::Matchers.define :be_a_resource do
78
78
  match do |value|
79
- value.should be_a_kind_of(RDF::Resource)
79
+ expect(value).to be_a_kind_of(RDF::Resource)
80
80
  true
81
81
  end
82
82
  end
83
83
 
84
84
  RSpec::Matchers.define :be_a_node do
85
85
  match do |value|
86
- value.should be_a_kind_of(RDF::Node)
86
+ expect(value).to be_a_kind_of(RDF::Node)
87
87
  true
88
88
  end
89
89
  end
90
90
 
91
91
  RSpec::Matchers.define :be_a_uri do
92
92
  match do |value|
93
- value.should be_a_kind_of(RDF::URI)
93
+ expect(value).to be_a_kind_of(RDF::URI)
94
94
  true
95
95
  end
96
96
  end
97
97
 
98
98
  RSpec::Matchers.define :be_a_value do
99
99
  match do |value|
100
- value.should be_a_kind_of(RDF::Value)
100
+ expect(value).to be_a_kind_of(RDF::Value)
101
101
  true
102
102
  end
103
103
  end
104
104
 
105
105
  RSpec::Matchers.define :be_a_list do
106
106
  match do |value|
107
- value.should be_an(RDF::List)
107
+ expect(value).to be_an(RDF::List)
108
108
  true
109
109
  end
110
110
  end
111
111
 
112
112
  RSpec::Matchers.define :be_a_vocabulary do |base_uri|
113
113
  match do |vocabulary|
114
- vocabulary.should be_a_kind_of(Module)
115
- vocabulary.should respond_to(:to_uri)
116
- vocabulary.to_uri.to_s.should == base_uri
117
- vocabulary.should respond_to(:[])
114
+ expect(vocabulary).to be_a_kind_of(Module)
115
+ expect(vocabulary).to respond_to(:to_uri)
116
+ expect(vocabulary.to_uri.to_s).to eq base_uri
117
+ expect(vocabulary).to respond_to(:[])
118
118
  true
119
119
  end
120
120
  end
@@ -122,13 +122,13 @@ module RDF; module Spec
122
122
  RSpec::Matchers.define :have_properties do |base_uri, properties|
123
123
  match do |vocabulary|
124
124
  properties.map { |p| p.to_sym }.each do |property|
125
- vocabulary[property].should be_a_uri
126
- vocabulary[property].to_s.should == "#{base_uri}#{property}"
127
- vocabulary.should respond_to(property)
128
- lambda { vocabulary.send(property) }.should_not raise_error
129
- vocabulary.send(property).should be_a_uri
130
- vocabulary.send(property.to_s).should be_a_uri
131
- vocabulary.send(property).to_s.should == "#{base_uri}#{property}"
125
+ expect(vocabulary[property]).to be_a_uri
126
+ expect(vocabulary[property].to_s).to eq "#{base_uri}#{property}"
127
+ expect(vocabulary).to respond_to(property)
128
+ expect { vocabulary.send(property) }.not_to raise_error
129
+ expect(vocabulary.send(property)).to be_a_uri
130
+ expect(vocabulary.send(property.to_s)).to be_a_uri
131
+ expect(vocabulary.send(property).to_s).to eq "#{base_uri}#{property}"
132
132
  end
133
133
  true
134
134
  end
@@ -145,14 +145,14 @@ module RDF; module Spec
145
145
 
146
146
  RSpec::Matchers.define :be_a_repository do
147
147
  match do |repository|
148
- repository.should be_a_kind_of(RDF::Repository)
148
+ expect(repository).to be_a_kind_of(RDF::Repository)
149
149
  true
150
150
  end
151
151
  end
152
152
 
153
153
  RSpec::Matchers.define :be_a_repository_of_size do |size|
154
154
  match do |repository|
155
- repository.should be_a_repository
155
+ expect(repository).to be_a_repository
156
156
  repository.size == size
157
157
  end
158
158
  end
@@ -49,43 +49,43 @@ module RDF_Mutable
49
49
 
50
50
  context "#load" do
51
51
  it "should require an argument" do
52
- lambda { subject.load }.should raise_error(ArgumentError)
52
+ expect { subject.load }.to raise_error(ArgumentError)
53
53
  end
54
54
 
55
55
  it "should accept a string filename argument" do
56
56
  pending("mutability", :unless => subject.mutable?) do
57
- lambda { subject.load(RDF::Spec::TRIPLES_FILE) }.should_not raise_error(ArgumentError)
57
+ expect { subject.load(RDF::Spec::TRIPLES_FILE) }.not_to raise_error
58
58
  end
59
59
  end
60
60
 
61
61
  it "should accept an optional hash argument" do
62
62
  pending("mutability", :unless => subject.mutable?) do
63
- lambda { subject.load(RDF::Spec::TRIPLES_FILE, {}) }.should_not raise_error(ArgumentError)
63
+ expect { subject.load(RDF::Spec::TRIPLES_FILE, {}) }.not_to raise_error
64
64
  end
65
65
  end
66
66
 
67
67
  it "should load statements" do
68
68
  pending("mutability", :unless => subject.mutable?) do
69
69
  subject.load RDF::Spec::TRIPLES_FILE
70
- subject.size.should == File.readlines(RDF::Spec::TRIPLES_FILE).size
71
- subject.should have_subject(resource)
70
+ expect(subject.size).to eq File.readlines(RDF::Spec::TRIPLES_FILE).size
71
+ expect(subject).to have_subject(resource)
72
72
  end
73
73
  end
74
74
 
75
75
  it "should load statements with a context override" do
76
76
  pending("mutability and contextuality", :unless => (subject.mutable? && @supports_context)) do
77
77
  subject.load RDF::Spec::TRIPLES_FILE, :context => context
78
- subject.should have_context(context)
79
- subject.query(:context => context).size.should == subject.size
78
+ expect(subject).to have_context(context)
79
+ expect(subject.query(:context => context).size).to eq subject.size
80
80
  end
81
81
  end
82
82
  end
83
83
 
84
84
  context "#from_{reader}" do
85
85
  it "should instantiate a reader" do
86
- reader = mock("reader")
87
- reader.should_receive(:new).and_return(RDF::NTriples::Reader.new(""))
88
- RDF::Reader.should_receive(:for).with(:a_reader).and_return(reader)
86
+ reader = double("reader")
87
+ expect(reader).to receive(:new).and_return(RDF::NTriples::Reader.new(""))
88
+ expect(RDF::Reader).to receive(:for).with(:a_reader).and_return(reader)
89
89
  subject.send(:from_a_reader)
90
90
  end
91
91
  end
@@ -98,21 +98,21 @@ module RDF_Mutable
98
98
 
99
99
  it "should not raise errors" do
100
100
  pending("mutability", :unless => subject.mutable?) do
101
- lambda { subject.delete(@statements.first) }.should_not raise_error
101
+ expect { subject.delete(@statements.first) }.not_to raise_error
102
102
  end
103
103
  end
104
104
 
105
105
  it "should support deleting one statement at a time" do
106
106
  pending("mutability", :unless => subject.mutable?) do
107
107
  subject.delete(@statements.first)
108
- subject.should_not have_statement(@statements.first)
108
+ expect(subject).not_to have_statement(@statements.first)
109
109
  end
110
110
  end
111
111
 
112
112
  it "should support deleting multiple statements at a time" do
113
113
  pending("mutability", :unless => subject.mutable?) do
114
114
  subject.delete(*@statements)
115
- subject.find { |s| subject.has_statement?(s) }.should be_false
115
+ expect(subject.find { |s| subject.has_statement?(s) }).to be_false
116
116
  end
117
117
  end
118
118
 
@@ -122,12 +122,12 @@ module RDF_Mutable
122
122
  require 'digest/sha1'
123
123
  count = subject.count
124
124
  subject.delete([nil, nil, random = Digest::SHA1.hexdigest(File.read(__FILE__))])
125
- subject.should_not be_empty
126
- subject.count.should == count
125
+ expect(subject).not_to be_empty
126
+ expect(subject.count).to eq count
127
127
 
128
128
  # everything deleted
129
129
  subject.delete([nil, nil, nil])
130
- subject.should be_empty
130
+ expect(subject).to be_empty
131
131
  end
132
132
  end
133
133
 
@@ -143,15 +143,15 @@ module RDF_Mutable
143
143
  subject.insert(s1)
144
144
  subject.insert(s2)
145
145
  subject.insert(s3)
146
- subject.count.should == count
146
+ expect(subject.count).to eq count
147
147
 
148
148
  # Delete one by one
149
149
  subject.delete(s1)
150
- subject.count.should == count - (@supports_context ? 1 : 1)
150
+ expect(subject.count).to eq count - (@supports_context ? 1 : 1)
151
151
  subject.delete(s2)
152
- subject.count.should == count - (@supports_context ? 2 : 1)
152
+ expect(subject.count).to eq count - (@supports_context ? 2 : 1)
153
153
  subject.delete(s3)
154
- subject.count.should == count - (@supports_context ? 3 : 1)
154
+ expect(subject.count).to eq count - (@supports_context ? 3 : 1)
155
155
  end
156
156
  end
157
157
  end
@@ -23,6 +23,8 @@ module RDF_Queryable
23
23
 
24
24
  describe RDF::Queryable do
25
25
  subject {@queryable}
26
+ let(:query) {RDF::Query.new {pattern [:s, :p, :o]}}
27
+
26
28
  ##
27
29
  # @see RDF::Queryable#query
28
30
  describe "#query" do
@@ -30,94 +32,135 @@ module RDF_Queryable
30
32
 
31
33
  context "when called" do
32
34
  it "requires an argument" do
33
- lambda { subject.query }.should raise_error(ArgumentError)
35
+ expect { subject.query }.to raise_error(ArgumentError)
34
36
  end
35
37
 
36
38
  it "accepts a pattern argument" do
37
- lambda { subject.query(RDF::Query::Pattern.new(nil, nil, nil)) }.should_not raise_error(ArgumentError)
38
- lambda { subject.query(RDF::Query::Pattern.new(:s, :p, :o)) }.should_not raise_error(ArgumentError)
39
+ expect { subject.query(RDF::Query::Pattern.new(nil, nil, nil)) }.not_to raise_error
40
+ expect { subject.query(RDF::Query::Pattern.new(:s, :p, :o)) }.not_to raise_error
39
41
  end
40
42
 
41
43
  it "accepts a statement argument" do
42
- lambda { subject.query(RDF::Statement.new(nil, nil, nil)) }.should_not raise_error(ArgumentError)
44
+ expect { subject.query(RDF::Statement.new(nil, nil, nil)) }.not_to raise_error
43
45
  end
44
46
 
45
47
  it "accepts a triple argument" do
46
- lambda { subject.query([nil, nil, nil]) }.should_not raise_error(ArgumentError)
48
+ expect { subject.query([nil, nil, nil]) }.not_to raise_error
47
49
  end
48
50
 
49
51
  it "accepts a quad argument" do
50
- lambda { subject.query([nil, nil, nil, nil]) }.should_not raise_error(ArgumentError)
52
+ expect { subject.query([nil, nil, nil, nil]) }.not_to raise_error
51
53
  end
52
54
 
53
55
  it "accepts a hash argument" do
54
- lambda { subject.query({}) }.should_not raise_error(ArgumentError)
56
+ expect { subject.query({}) }.not_to raise_error
57
+ end
58
+
59
+ it "accepts an RDF::Query argument" do
60
+ expect { subject.query(RDF::Query.new) }.not_to raise_error
55
61
  end
56
62
 
57
63
  it "does not alter a given hash argument" do
58
64
  query = {:subject => resource, :predicate => RDF::DOAP.name, :object => RDF::FOAF.Person}
59
65
  original_query = query.dup
60
66
  subject.query(query)
61
- query.should == original_query
67
+ expect(query).to eq original_query
62
68
  end
63
69
 
64
70
  it "rejects other kinds of arguments" do
65
- lambda { subject.query(nil) }.should raise_error(ArgumentError)
71
+ expect { subject.query(nil) }.to raise_error(ArgumentError)
66
72
  end
67
73
 
68
74
  context "with a block" do
69
- it "yields statements" do
70
- subject.query([nil, nil, nil]) do |statement|
71
- statement.should be_a_statement
75
+ context "with a triple argument" do
76
+ it "yields statements" do
77
+ subject.query([nil, nil, nil]) do |statement|
78
+ expect(statement).to be_a_statement
79
+ expect(statement).not_to be_a RDF::Query::Solution
80
+ end
81
+ end
82
+
83
+ it "calls #query_pattern" do
84
+ expect(subject).to receive(:query_pattern)
85
+ expect(subject).not_to receive(:query_execute)
86
+ subject.query([:s, :p, :o]) {}
87
+ end
88
+ end
89
+ context "with a Query argument" do
90
+ it "yields statements" do
91
+ subject.query(query) do |solution|
92
+ expect(solution).not_to be_a_statement
93
+ expect(solution).to be_a RDF::Query::Solution
94
+ end
95
+ end
96
+
97
+ it "calls #query_execute" do
98
+ expect(subject).to receive(:query_execute)
99
+ expect(subject).not_to receive(:query_pattern)
100
+ subject.query(query) {}
72
101
  end
73
102
  end
74
103
  end
75
104
 
76
105
  context "without a block" do
77
106
  it "returns an enumerator" do
78
- subject.query([nil, nil, nil]).should be_an_enumerator
107
+ expect(subject.query([nil, nil, nil])).to be_an_enumerator
79
108
  end
80
109
 
81
110
  it "returns an enumerable enumerator" do
82
- subject.query([nil, nil, nil]).should be_enumerable
111
+ expect(subject.query([nil, nil, nil])).to be_enumerable
83
112
  end
84
113
 
85
114
  it "returns a queryable enumerator" do
86
- subject.query([nil, nil, nil]).should be_queryable
115
+ expect(subject.query([nil, nil, nil])).to be_queryable
87
116
  end
88
117
 
89
- it "returns statements" do
118
+ it "returns statements given a triple" do
90
119
  subject.query([nil, nil, nil]).each do |statement|
91
- statement.should be_a_statement
120
+ expect(statement).to be_a_statement
121
+ expect(statement).not_to be_a RDF::Query::Solution
122
+ end
123
+ end
124
+
125
+ it "returns solutions given a query" do
126
+ subject.query(query).each do |solution|
127
+ expect(solution).not_to be_a_statement
128
+ expect(solution).to be_a RDF::Query::Solution
92
129
  end
93
130
  end
94
131
 
95
132
  it "returns the correct number of results for array queries" do
96
- subject.query([nil, nil, nil]).size.should == @statements.size
97
- subject.query([resource, nil, nil]).size.should == File.readlines(@doap).grep(/^<http:\/\/rubygems\.org\/gems\/rdf>/).size
98
- subject.query([RDF::URI("http://ar.to/#self"), nil, nil]).size.should == File.readlines(@doap).grep(/^<http:\/\/ar.to\/\#self>/).size
99
- subject.query([resource, RDF::DOAP.name, nil]).size.should == 1
100
- subject.query([nil, nil, RDF::DOAP.Project]).size.should == 1
133
+ expect(subject.query([nil, nil, nil]).size).to eq @statements.size
134
+ expect(subject.query([resource, nil, nil]).size).to eq File.readlines(@doap).grep(/^<http:\/\/rubygems\.org\/gems\/rdf>/).size
135
+ expect(subject.query([RDF::URI("http://ar.to/#self"), nil, nil]).size).to eq File.readlines(@doap).grep(/^<http:\/\/ar.to\/\#self>/).size
136
+ expect(subject.query([resource, RDF::DOAP.name, nil]).size).to eq 1
137
+ expect(subject.query([nil, nil, RDF::DOAP.Project]).size).to eq 1
101
138
  end
102
139
 
103
140
  it "returns the correct number of results for hash queries" do
104
- subject.query({}).size.should == @statements.size
105
- subject.query(:subject => resource) .size.should == File.readlines(@doap).grep(/^<http:\/\/rubygems\.org\/gems\/rdf>/).size
106
- subject.query(:subject => resource, :predicate => RDF::DOAP.name).size.should == 1
107
- subject.query(:object => RDF::DOAP.Project).size.should == 1
141
+ expect(subject.query({}).size).to eq @statements.size
142
+ expect(subject.query(:subject => resource).size).to eq File.readlines(@doap).grep(/^<http:\/\/rubygems\.org\/gems\/rdf>/).size
143
+ expect(subject.query(:subject => resource, :predicate => RDF::DOAP.name).size).to eq 1
144
+ expect(subject.query(:object => RDF::DOAP.Project).size).to eq 1
145
+ end
146
+
147
+ it "returns the correct number of results for query queries" do
148
+ expect(subject.query(query).size).to eq @statements.size
108
149
  end
109
150
  end
110
151
 
111
152
  context "with specific patterns from SPARQL" do
112
153
  context "triple pattern combinations" do
113
154
  it "?s p o" do
114
- subject.query(:predicate => RDF::URI("http://example.org/p"), :object => RDF::Literal.new(1)).to_a.should ==
115
- [RDF::Statement.new(RDF::URI("http://example.org/xi1"), RDF::URI("http://example.org/p"), 1), RDF::Statement.new(RDF::URI("http://example.org/xi2"), RDF::URI("http://example.org/p"), 1)]
155
+ expect(subject.query(:predicate => RDF::URI("http://example.org/p"), :object => RDF::Literal.new(1)).to_a).to(
156
+ include *[RDF::Statement.new(RDF::URI("http://example.org/xi1"), RDF::URI("http://example.org/p"), 1), RDF::Statement.new(RDF::URI("http://example.org/xi2"), RDF::URI("http://example.org/p"), 1)]
157
+ )
116
158
  end
117
159
 
118
160
  it "s ?p o" do
119
- subject.query(:subject => RDF::URI("http://example.org/xi2"), :object => RDF::Literal.new(1)).to_a.should ==
120
- [RDF::Statement.new(RDF::URI("http://example.org/xi2"), RDF::URI("http://example.org/p"), 1)]
161
+ expect(subject.query(:subject => RDF::URI("http://example.org/xi2"), :object => RDF::Literal.new(1)).to_a).to(
162
+ include *[RDF::Statement.new(RDF::URI("http://example.org/xi2"), RDF::URI("http://example.org/p"), 1)]
163
+ )
121
164
  end
122
165
  end
123
166
 
@@ -128,11 +171,11 @@ module RDF_Queryable
128
171
  its(:count) {should == 2}
129
172
 
130
173
  it "has two solutions" do
131
- subject.any? {|s| s.subject == RDF::URI("http://example.org/xi1")}.should be_true
174
+ expect(subject.any? {|s| s.subject == RDF::URI("http://example.org/xi1")}).to be_true
132
175
  end
133
176
 
134
177
  it "has xi2 as a solution" do
135
- subject.any? {|s| s.subject == RDF::URI("http://example.org/xi2")}.should be_true
178
+ expect(subject.any? {|s| s.subject == RDF::URI("http://example.org/xi2")}).to be_true
136
179
  end
137
180
  end
138
181
 
@@ -141,7 +184,7 @@ module RDF_Queryable
141
184
  its(:count) {should == 1}
142
185
 
143
186
  it "has xd1 as a solution" do
144
- subject.any? {|s| s.subject == RDF::URI("http://example.org/xd1")}.should be_true
187
+ expect(subject.any? {|s| s.subject == RDF::URI("http://example.org/xd1")}).to be_true
145
188
  end
146
189
  end
147
190
  end
@@ -149,30 +192,49 @@ module RDF_Queryable
149
192
  end
150
193
  end
151
194
 
195
+ ##
196
+ # @see RDF::Queryable#query_execute
197
+ describe "#query_execute" do
198
+ it "defines a protected #query_execute method" do
199
+ expect(subject.class.protected_method_defined?(:query_execute)).to be_true
200
+ end
201
+
202
+ context "when called" do
203
+ it "requires an argument" do
204
+ expect { subject.send(:query_execute) }.to raise_error(ArgumentError)
205
+ end
206
+
207
+ it "yields to the given block" do
208
+ expect {|b| subject.send(:query_execute, query, &b)}.to yield_control.exactly(@queryable.count).times
209
+ end
210
+
211
+ it "yields solutions" do
212
+ subject.send(:query_execute, query) do |solution|
213
+ expect(solution).to be_a RDF::Query::Solution
214
+ end
215
+ end
216
+ end
217
+ end
218
+
152
219
  ##
153
220
  # @see RDF::Queryable#query_pattern
154
221
  describe "#query_pattern" do
155
222
  it "defines a protected #query_pattern method" do
156
- subject.class.protected_method_defined?(:query_pattern).should be_true
223
+ expect(subject.class.protected_method_defined?(:query_pattern)).to be_true
157
224
  end
158
225
 
159
226
  context "when called" do
160
227
  it "requires an argument" do
161
- lambda { subject.send(:query_pattern) }.should raise_error(ArgumentError)
228
+ expect { subject.send(:query_pattern) }.to raise_error(ArgumentError)
162
229
  end
163
230
 
164
231
  it "yields to the given block" do
165
- called = false
166
- subject.send(:query_pattern, RDF::Query::Pattern.new) do |statement|
167
- called = true
168
- break
169
- end
170
- called.should be_true
232
+ expect {|b| subject.send(:query_pattern, RDF::Query::Pattern.new, &b)}.to yield_control.exactly(@queryable.count).times
171
233
  end
172
234
 
173
235
  it "yields statements" do
174
236
  subject.send(:query_pattern, RDF::Query::Pattern.new) do |statement|
175
- statement.should be_a_statement
237
+ expect(statement).to be_a_statement
176
238
  end
177
239
  end
178
240
 
@@ -190,7 +252,7 @@ module RDF_Queryable
190
252
  it "returns #{result.inspect} given #{pattern.inspect}" do
191
253
  solutions = []
192
254
  subject.send(:query_pattern, pattern) {|s| solutions << s}
193
- solutions.should == result
255
+ expect(solutions).to eq result
194
256
  end
195
257
  end
196
258
  end
@@ -200,7 +262,7 @@ module RDF_Queryable
200
262
  pattern = RDF::Query::Pattern.new(nil, nil, nil, :context => nil)
201
263
  solutions = []
202
264
  subject.send(:query_pattern, pattern) {|s| solutions << s}
203
- solutions.size.should == @statements.size
265
+ expect(solutions.size).to eq @statements.size
204
266
  end
205
267
 
206
268
  it "returns statements from unnamed contexts with false context" do
@@ -208,7 +270,7 @@ module RDF_Queryable
208
270
  solutions = []
209
271
  subject.send(:query_pattern, pattern) {|s| solutions << s}
210
272
  context_statements = subject.statements.reject {|st| st.has_context?}.length
211
- solutions.size.should == context_statements
273
+ expect(solutions.size).to eq context_statements
212
274
  end
213
275
 
214
276
  it "returns statements from named contexts with variable context" do
@@ -217,7 +279,7 @@ module RDF_Queryable
217
279
  solutions = []
218
280
  subject.send(:query_pattern, pattern) {|s| solutions << s}
219
281
  context_statements = subject.statements.select {|st| st.has_context?}.length
220
- solutions.size.should == context_statements
282
+ expect(solutions.size).to eq context_statements
221
283
  end
222
284
  end
223
285
 
@@ -226,7 +288,7 @@ module RDF_Queryable
226
288
  pattern = RDF::Query::Pattern.new(nil, nil, nil, :context => RDF::URI("http://ar.to/#self"))
227
289
  solutions = []
228
290
  subject.send(:query_pattern, pattern) {|s| solutions << s}
229
- solutions.size.should == File.readlines(@doap).grep(/^<http:\/\/ar.to\/\#self>/).size
291
+ expect(solutions.size).to eq File.readlines(@doap).grep(/^<http:\/\/ar.to\/\#self>/).size
230
292
  end
231
293
  end
232
294
  end
@@ -239,29 +301,29 @@ module RDF_Queryable
239
301
  let(:failing_pattern) {[RDF::Node.new] * 3}
240
302
 
241
303
  it "should respond to #first" do
242
- subject.should respond_to(:first)
304
+ expect(subject).to respond_to(:first)
243
305
  end
244
306
 
245
307
  it "returns enumerator without a pattern" do
246
- lambda { subject.first }.should_not raise_error(ArgumentError)
247
- subject.first.should == subject.each.first # uses an Enumerator
308
+ expect { subject.first }.not_to raise_error
309
+ expect(subject.first).to eq subject.each.first # uses an Enumerator
248
310
  end
249
311
 
250
312
  it "returns the correct value when the pattern matches", :pending => (defined?(RUBY_PLATFORM) && RUBY_PLATFORM == 'java') do
251
313
  matching_patterns = [[nil, nil, nil], subject.each.first]
252
314
  matching_patterns.each do |matching_pattern|
253
- subject.first(matching_pattern).should == subject.query(matching_pattern).each.first
315
+ expect(subject.first(matching_pattern)).to eq subject.query(matching_pattern).each.first
254
316
  end
255
317
  end
256
318
 
257
319
  it "returns nil when the pattern fails to match anything" do
258
- subject.first(failing_pattern).should be_nil
320
+ expect(subject.first(failing_pattern)).to be_nil
259
321
  end
260
322
 
261
323
  it "returns nil when self is empty" do
262
324
  queryable = [].extend(RDF::Queryable)
263
- queryable.first.should be_nil
264
- queryable.first(failing_pattern).should be_nil
325
+ expect(queryable.first).to be_nil
326
+ expect(queryable.first(failing_pattern)).to be_nil
265
327
  end
266
328
  end
267
329
 
@@ -271,29 +333,29 @@ module RDF_Queryable
271
333
  let(:failing_pattern) {[RDF::Node.new, nil, nil]}
272
334
 
273
335
  it "should respond to #first_subject" do
274
- subject.should respond_to(:first_subject)
336
+ expect(subject).to respond_to(:first_subject)
275
337
  end
276
338
 
277
339
  it "returns enumerator without a pattern", :pending => (defined?(RUBY_PLATFORM) && RUBY_PLATFORM == 'java') do
278
- lambda { subject.first_subject }.should_not raise_error(ArgumentError)
279
- subject.first_subject.should == subject.first.subject
340
+ expect { subject.first_subject }.not_to raise_error
341
+ expect(subject.first_subject).to eq subject.first.subject
280
342
  end
281
343
 
282
344
  it "returns the correct value when the pattern matches", :pending => (defined?(RUBY_PLATFORM) && RUBY_PLATFORM == 'java') do
283
345
  matching_patterns = [[nil, nil, nil], [subject.first.subject, nil, nil]]
284
346
  matching_patterns.each do |matching_pattern|
285
- subject.first_subject(matching_pattern).should == subject.query(matching_pattern).first.subject
347
+ expect(subject.first_subject(matching_pattern)).to eq subject.query(matching_pattern).first.subject
286
348
  end
287
349
  end
288
350
 
289
351
  it "returns nil when the pattern fails to match anything" do
290
- subject.first_subject(failing_pattern).should be_nil
352
+ expect(subject.first_subject(failing_pattern)).to be_nil
291
353
  end
292
354
 
293
355
  it "returns nil when self is empty" do
294
356
  queryable = [].extend(RDF::Queryable)
295
- queryable.first_subject.should be_nil
296
- queryable.first_subject(failing_pattern).should be_nil
357
+ expect(queryable.first_subject).to be_nil
358
+ expect(queryable.first_subject(failing_pattern)).to be_nil
297
359
  end
298
360
  end
299
361
 
@@ -306,25 +368,25 @@ module RDF_Queryable
306
368
  it {should respond_to(:first_predicate)}
307
369
 
308
370
  it "returns enumerator without a pattern", :pending => (defined?(RUBY_PLATFORM) && RUBY_PLATFORM == 'java') do
309
- lambda { subject.first_predicate }.should_not raise_error(ArgumentError)
310
- subject.first_predicate.should == subject.first.predicate
371
+ expect { subject.first_predicate }.not_to raise_error
372
+ expect(subject.first_predicate).to eq subject.first.predicate
311
373
  end
312
374
 
313
375
  it "returns the correct value when the pattern matches", :pending => (defined?(RUBY_PLATFORM) && RUBY_PLATFORM == 'java') do
314
376
  matching_patterns = [[nil, nil, nil], [nil, subject.first.predicate, nil]]
315
377
  matching_patterns.each do |matching_pattern|
316
- subject.first_predicate(matching_pattern).should == subject.query(matching_pattern).first.predicate
378
+ expect(subject.first_predicate(matching_pattern)).to eq subject.query(matching_pattern).first.predicate
317
379
  end
318
380
  end
319
381
 
320
382
  it "returns nil when the pattern fails to match anything" do
321
- subject.first_predicate(failing_pattern).should be_nil
383
+ expect(subject.first_predicate(failing_pattern)).to be_nil
322
384
  end
323
385
 
324
386
  it "returns nil when self is empty" do
325
387
  queryable = [].extend(RDF::Queryable)
326
- queryable.first_predicate.should be_nil
327
- queryable.first_predicate(failing_pattern).should be_nil
388
+ expect(queryable.first_predicate).to be_nil
389
+ expect(queryable.first_predicate(failing_pattern)).to be_nil
328
390
  end
329
391
  end
330
392
 
@@ -336,25 +398,25 @@ module RDF_Queryable
336
398
  it {should respond_to(:first_object)}
337
399
 
338
400
  it "returns enurator without a pattern", :pending => (defined?(RUBY_PLATFORM) && RUBY_PLATFORM == 'java') do
339
- lambda { subject.first_object }.should_not raise_error(ArgumentError)
340
- subject.first_object.should == subject.first.object
401
+ expect { subject.first_object }.not_to raise_error
402
+ expect(subject.first_object).to eq subject.first.object
341
403
  end
342
404
 
343
405
  it "returns the correct value when the pattern matches", :pending => (defined?(RUBY_PLATFORM) && RUBY_PLATFORM == 'java') do
344
406
  matching_patterns = [[nil, nil, nil], [nil, nil, subject.first.object]]
345
407
  matching_patterns.each do |matching_pattern|
346
- subject.first_object(matching_pattern).should == subject.query(matching_pattern).first.object
408
+ expect(subject.first_object(matching_pattern)).to eq subject.query(matching_pattern).first.object
347
409
  end
348
410
  end
349
411
 
350
412
  it "returns nil when the pattern fails to match anything" do
351
- subject.first_object(failing_pattern).should be_nil
413
+ expect(subject.first_object(failing_pattern)).to be_nil
352
414
  end
353
415
 
354
416
  it "returns nil when self is empty" do
355
417
  queryable = [].extend(RDF::Queryable)
356
- queryable.first_object.should be_nil
357
- queryable.first_object(failing_pattern).should be_nil
418
+ expect(queryable.first_object).to be_nil
419
+ expect(queryable.first_object(failing_pattern)).to be_nil
358
420
  end
359
421
  end
360
422
 
@@ -374,25 +436,25 @@ module RDF_Queryable
374
436
  it {should respond_to(:first_literal)}
375
437
 
376
438
  it "returns a literal without a pattern" do
377
- lambda { subject.first_literal }.should_not raise_error(ArgumentError)
378
- subject.first_literal.should == literal
439
+ expect { subject.first_literal }.not_to raise_error
440
+ expect(subject.first_literal).to eq literal
379
441
  end
380
442
 
381
443
  it "returns the correct value when the pattern matches" do
382
444
  matching_patterns = [[nil, nil, nil], [resource, nil, nil], [nil, RDF::DC.creator, nil], [nil, nil, literal]]
383
445
  matching_patterns.each do |matching_pattern|
384
- subject.first_literal(matching_pattern).should == literal
446
+ expect(subject.first_literal(matching_pattern)).to eq literal
385
447
  end
386
448
  end
387
449
 
388
450
  it "returns nil when the pattern fails to match anything" do
389
- subject.first_literal(failing_pattern).should be_nil
451
+ expect(subject.first_literal(failing_pattern)).to be_nil
390
452
  end
391
453
 
392
454
  it "returns nil when self is empty" do
393
455
  queryable = [].extend(RDF::Queryable)
394
- queryable.first_literal.should be_nil
395
- queryable.first_literal(failing_pattern).should be_nil
456
+ expect(queryable.first_literal).to be_nil
457
+ expect(queryable.first_literal(failing_pattern)).to be_nil
396
458
  end
397
459
  end
398
460
 
@@ -404,8 +466,8 @@ module RDF_Queryable
404
466
  it {should respond_to(:first_value)}
405
467
 
406
468
  it "returns first literal without a pattern" do
407
- lambda { subject.first_value }.should_not raise_error(ArgumentError)
408
- subject.first_value.should == subject.first_literal.value
469
+ expect { subject.first_value }.not_to raise_error
470
+ expect(subject.first_value).to eq subject.first_literal.value
409
471
  end
410
472
 
411
473
  it "returns the correct value when the pattern matches" do
@@ -415,20 +477,20 @@ module RDF_Queryable
415
477
  matching_pattern = [statement.subject, statement.predicate, nil]
416
478
  unless matching_patterns.include?(matching_pattern)
417
479
  matching_patterns << matching_pattern
418
- subject.first_value(matching_pattern).should == subject.first_literal(matching_pattern).value
480
+ expect(subject.first_value(matching_pattern)).to eq subject.first_literal(matching_pattern).value
419
481
  end
420
482
  end
421
483
  end
422
484
  end
423
485
 
424
486
  it "returns nil when the pattern fails to match anything" do
425
- subject.first_value(failing_pattern).should be_nil
487
+ expect(subject.first_value(failing_pattern)).to be_nil
426
488
  end
427
489
 
428
490
  it "returns nil when self is empty" do
429
491
  queryable = [].extend(RDF::Queryable)
430
- queryable.first_value.should be_nil
431
- queryable.first_value(failing_pattern).should be_nil
492
+ expect(queryable.first_value).to be_nil
493
+ expect(queryable.first_value(failing_pattern)).to be_nil
432
494
  end
433
495
  end
434
496
  end