@@ -117,7 +117,11 @@ module RDF_Enumerable
117117 its ( :enum_statement ) { should be_queryable }
118118 context "#enum_statement" do
119119 it "should enumerate all statements" do
120- expect ( subject . enum_statement . to_a ) . to include ( *@enumerable . each_statement . to_a )
120+ expect ( subject . enum_statement . count ) . to eq @enumerable . each_statement . count
121+ subject . enum_statement . each do |s |
122+ expect ( s ) . to be_a_statement
123+ expect ( @enumerable . each_statement . to_a ) . to include ( s ) unless s . has_blank_nodes?
124+ end
121125 end
122126 end
123127 end
@@ -145,13 +149,23 @@ module RDF_Enumerable
145149 its ( :each_triple ) { should be_an_enumerator }
146150 context "#each_triple" do
147151 specify { subject . each_triple { |*triple | expect ( triple ) . to be_a_triple } }
152+ it "should iterate over all triples" do
153+ subject . each_triple do |*triple |
154+ triple . each { |r | expect ( r ) . to be_a_term }
155+ expect ( @enumerable ) . to have_triple ( triple ) unless triple . any? ( &:node? )
156+ end
157+ end
148158 end
149159
150160 its ( :enum_triple ) { should be_an_enumerator }
151161 its ( :enum_triple ) { should be_countable }
152162 context "#enum_triple" do
153163 it "should enumerate all triples" do
154- expect ( subject . enum_triple . to_a ) . to include ( *@enumerable . each_triple . to_a )
164+ expect ( subject . enum_triple . count ) . to eq @enumerable . each_triple . count
165+ subject . enum_triple . each do |s , p , o |
166+ [ s , p , o ] . each { |r | expect ( r ) . to be_a_term }
167+ expect ( @enumerable ) . to have_triple ( [ s , p , o ] ) unless [ s , p , o ] . any? ( &:node? )
168+ end
155169 end
156170 end
157171 end
@@ -181,13 +195,23 @@ module RDF_Enumerable
181195 its ( :each_quad ) { should be_an_enumerator }
182196 context "#each_quad" do
183197 specify { subject . each_quad { |*quad | expect ( quad ) . to be_a_quad } }
198+ it "should iterate over all quads" do
199+ subject . each_quad do |*quad |
200+ quad . compact . each { |r | expect ( r ) . to be_a_term }
201+ expect ( @enumerable ) . to have_quad ( quad ) unless quad . compact . any? ( &:node? )
202+ end
203+ end
184204 end
185205
186206 its ( :enum_quad ) { should be_an_enumerator }
187207 its ( :enum_quad ) { should be_countable }
188208 context "#enum_quad" do
189209 it "should enumerate all quads" do
190- expect ( subject . enum_quad . to_a ) . to include ( *@enumerable . each_quad . to_a )
210+ expect ( subject . enum_quad . count ) . to eq @enumerable . each_quad . count
211+ subject . enum_quad . each do |s , p , o , c |
212+ [ s , p , o , c ] . compact . each { |r | expect ( r ) . to be_a_term }
213+ expect ( @enumerable ) . to have_quad ( [ s , p , o , c ] ) unless [ s , p , o ] . any? ( &:node? )
214+ end
191215 end
192216 end
193217 end
@@ -225,16 +249,20 @@ module RDF_Enumerable
225249
226250 its ( :each_subject ) { should be_an_enumerator }
227251 context "#each_subject" do
228- specify { expect ( subject . each_subject . reject ( &:node? ) . size ) . to eq subjects . size }
252+ specify { expect ( subject . each_subject . reject ( &:node? ) . size ) . to eq subjects . reject ( & :node? ) . size }
229253 specify { subject . each_subject { |value | expect ( value ) . to be_a_resource } }
230254 specify { subject . each_subject { |value | expect ( subjects ) . to include ( value ) unless value . node? } }
231255 end
232256
233257 its ( :enum_subject ) { should be_an_enumerator }
234258 its ( :enum_subject ) { should be_countable }
235259 context "#enum_subject" do
260+ specify { expect ( subject . enum_subject . to_a . reject ( &:node? ) . size ) . to eq subjects . reject ( &:node? ) . size }
236261 it "should enumerate all subjects" do
237- expect ( subject . enum_subject . reject ( &:node? ) ) . to include ( *subjects )
262+ subject . enum_subject . each do |s |
263+ expect ( s ) . to be_a_resource
264+ expect ( subjects . to_a ) . to include ( s ) unless s . node?
265+ end
238266 end
239267 end
240268 end
@@ -328,7 +356,10 @@ module RDF_Enumerable
328356 its ( :enum_object ) { should be_countable }
329357 context "#enum_object" do
330358 it "should enumerate all objects" do
331- expect ( subject . enum_object . reject ( &:node? ) ) . to include ( *objects )
359+ subject . enum_object . each do |o |
360+ expect ( o ) . to be_a_term
361+ expect ( objects . to_a ) . to include ( o ) unless o . node?
362+ end
332363 end
333364 end
334365 end
0 commit comments