@@ -18,11 +18,11 @@ module RDF_Queryable
1818 end
1919 end
2020 end
21- let ( :resource ) { RDF ::URI ( 'http://rubygems.org/gems/rdf' ) }
22- let ( :literal ) { RDF ::Literal . new ( 'J. Random Hacker' ) }
2321
2422 describe RDF ::Queryable do
2523 subject { @queryable }
24+ let ( :resource ) { RDF ::URI ( 'http://rubygems.org/gems/rdf' ) }
25+ let ( :literal ) { RDF ::Literal . new ( 'J. Random Hacker' ) }
2626 let ( :query ) { RDF ::Query . new { pattern [ :s , :p , :o ] } }
2727
2828 ##
@@ -86,6 +86,7 @@ module RDF_Queryable
8686 subject . query ( [ :s , :p , :o ] ) { }
8787 end
8888 end
89+
8990 context "with a Query argument" do
9091 it "yields statements" do
9192 subject . query ( query ) do |solution |
@@ -103,49 +104,69 @@ module RDF_Queryable
103104 end
104105
105106 context "without a block" do
106- it "returns an enumerator" do
107- expect ( subject . query ( [ nil , nil , nil ] ) ) . to be_an_enumerator
108- end
107+ context "with a triple argument" do
108+ it "returns an enumerator" do
109+ expect ( subject . query ( [ nil , nil , nil ] ) ) . to be_an_enumerator
110+ end
109111
110- it "returns an enumerable enumerator" do
111- expect ( subject . query ( [ nil , nil , nil ] ) ) . to be_enumerable
112- end
112+ it "returns an enumerable enumerator" do
113+ expect ( subject . query ( [ nil , nil , nil ] ) ) . to be_enumerable
114+ end
113115
114- it "returns a queryable enumerator" do
115- expect ( subject . query ( [ nil , nil , nil ] ) ) . to be_queryable
116- end
116+ it "returns a queryable enumerator" do
117+ expect ( subject . query ( [ nil , nil , nil ] ) ) . to be_queryable
118+ end
117119
118- it "returns statements given a triple" do
119- subject . query ( [ nil , nil , nil ] ) . each do |statement |
120- expect ( statement ) . to be_a_statement
121- expect ( statement ) . not_to be_a RDF ::Query ::Solution
120+ it "returns statements given a triple" do
121+ subject . query ( [ nil , nil , nil ] ) . each do |statement |
122+ expect ( statement ) . to be_a_statement
123+ expect ( statement ) . not_to be_a RDF ::Query ::Solution
124+ end
122125 end
123126 end
124127
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
128+ context "with a Query argument" do
129+ it "returns an enumerator" do
130+ expect ( subject . query ( query ) ) . to be_an_enumerator
129131 end
130- end
131132
132- it "returns the correct number of results for array queries" do
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
138- end
133+ it "returns solutions" do
134+ expect ( subject . query ( query ) ) . to be_a ( RDF ::Query ::Solutions )
135+ end
139136
140- it "returns the correct number of results for hash queries" do
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
137+ it "does not return an enumerable enumerator" do
138+ expect ( subject . query ( query ) ) . not_to be_enumerable
139+ end
140+
141+ it "does not return a queryable enumerator" do
142+ expect ( subject . query ( query ) ) . not_to be_queryable
143+ end
144+
145+ it "returns solutions given a query" do
146+ subject . query ( query ) . each do |solution |
147+ expect ( solution ) . not_to be_a_statement
148+ expect ( solution ) . to be_a RDF ::Query ::Solution
149+ end
150+ end
151+
152+ it "returns the correct number of results for array queries" do
153+ expect ( subject . query ( [ nil , nil , nil ] ) . size ) . to eq @statements . size
154+ expect ( subject . query ( [ resource , nil , nil ] ) . size ) . to eq File . readlines ( @doap ) . grep ( /^<http:\/ \/ rubygems\. org\/ gems\/ rdf>/ ) . size
155+ expect ( subject . query ( [ RDF ::URI ( "http://ar.to/#self" ) , nil , nil ] ) . size ) . to eq File . readlines ( @doap ) . grep ( /^<http:\/ \/ ar.to\/ \# self>/ ) . size
156+ expect ( subject . query ( [ resource , RDF ::DOAP . name , nil ] ) . size ) . to eq 1
157+ expect ( subject . query ( [ nil , nil , RDF ::DOAP . Project ] ) . size ) . to eq 1
158+ end
146159
147- it "returns the correct number of results for query queries" do
148- expect ( subject . query ( query ) . size ) . to eq @statements . size
160+ it "returns the correct number of results for hash queries" do
161+ expect ( subject . query ( { } ) . size ) . to eq @statements . size
162+ expect ( subject . query ( :subject => resource ) . size ) . to eq File . readlines ( @doap ) . grep ( /^<http:\/ \/ rubygems\. org\/ gems\/ rdf>/ ) . size
163+ expect ( subject . query ( :subject => resource , :predicate => RDF ::DOAP . name ) . size ) . to eq 1
164+ expect ( subject . query ( :object => RDF ::DOAP . Project ) . size ) . to eq 1
165+ end
166+
167+ it "returns the correct number of results for query queries" do
168+ expect ( subject . query ( query ) . size ) . to eq @statements . size
169+ end
149170 end
150171 end
151172
0 commit comments