@@ -6,6 +6,8 @@ module RDF_Reader
66
77 before ( :each ) do
88 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' )
911 @reader_class = @reader . class
1012 end
1113
@@ -20,12 +22,11 @@ module RDF_Reader
2022
2123 describe ".open" do
2224 before ( :each ) do
23- RDF ::Util ::File . stub ( :open_file ) . and_yield ( StringIO . new ( "foo" ) )
25+ RDF ::Util ::File . stub ( :open_file ) . and_yield ( StringIO . new ( @reader_input ) )
2426 end
2527
2628 it "yields reader given file_name" do
2729 @reader_class . format . each do |f |
28- RDF ::Util ::File . stub ( :open_file ) . and_yield ( StringIO . new ( "foo" ) )
2930 f . file_extensions . each_pair do |sym , content_type |
3031 reader_mock = double ( "reader" )
3132 expect ( reader_mock ) . to receive ( :got_here )
@@ -40,7 +41,6 @@ module RDF_Reader
4041
4142 it "yields reader given symbol" do
4243 @reader_class . format . each do |f |
43- RDF ::Util ::File . stub ( :open_file ) . and_yield ( StringIO . new ( "foo" ) )
4444 sym = f . to_sym # Like RDF::NTriples::Format => :ntriples
4545 reader_mock = double ( "reader" )
4646 expect ( reader_mock ) . to receive ( :got_here )
@@ -54,7 +54,6 @@ module RDF_Reader
5454
5555 it "yields reader given {:file_name => file_name}" do
5656 @reader_class . format . each do |f |
57- RDF ::Util ::File . stub ( :open_file ) . and_yield ( StringIO . new ( "foo" ) )
5857 f . file_extensions . each_pair do |sym , content_type |
5958 reader_mock = double ( "reader" )
6059 expect ( reader_mock ) . to receive ( :got_here )
@@ -69,7 +68,6 @@ module RDF_Reader
6968
7069 it "yields reader given {:content_type => 'a/b'}" do
7170 @reader_class . format . each do |f |
72- RDF ::Util ::File . stub ( :open_file ) . and_yield ( StringIO . new ( "foo" ) )
7371 f . content_types . each_pair do |content_type , formats |
7472 reader_mock = double ( "reader" )
7573 expect ( reader_mock ) . to receive ( :got_here )
@@ -94,37 +92,32 @@ module RDF_Reader
9492 it "sets @input to StringIO given a string" do
9593 reader_mock = double ( "reader" )
9694 expect ( reader_mock ) . to receive ( :got_here )
97- @reader_class . new ( "string" ) do |r |
95+ @reader_class . new ( @reader_input ) do |r |
9896 reader_mock . got_here
9997 expect ( r . instance_variable_get ( :@input ) ) . to be_a ( StringIO )
10098 end
10199 end
102-
100+
103101 it "sets @input to input given something other than a string" do
104102 reader_mock = double ( "reader" )
105103 expect ( reader_mock ) . to receive ( :got_here )
106- file = StringIO . new ( "" )
104+ file = StringIO . new ( @reader_input )
107105 @reader_class . new ( file ) do |r |
108106 reader_mock . got_here
109107 expect ( r . instance_variable_get ( :@input ) ) . to eq file
110108 end
111109 end
112-
110+
113111 it "sets validate given :validate => true" do
114- # Either set validate, or through error, due to invalid input (null input may be invalid)
115- begin
116- @reader_class . new ( "string" , :validate => true ) do |r |
117- expect ( r ) . to be_valid
118- end
119- rescue
120- expect ( $!) . to be_a ( RDF ::ReaderError ) # An error is acceptable
112+ @reader_class . new ( @reader_input , :validate => true ) do |r |
113+ expect ( r ) . to be_valid
121114 end
122115 end
123116
124117 it "sets canonicalize given :canonicalize => true" do
125118 reader_mock = double ( "reader" )
126119 expect ( reader_mock ) . to receive ( :got_here )
127- @reader_class . new ( "string" , :canonicalize => true ) do |r |
120+ @reader_class . new ( @reader_input , :canonicalize => true ) do |r |
128121 reader_mock . got_here
129122 expect ( r ) . to be_canonicalize
130123 end
@@ -133,7 +126,7 @@ module RDF_Reader
133126 it "sets intern given :intern => true" do
134127 reader_mock = double ( "reader" )
135128 expect ( reader_mock ) . to receive ( :got_here )
136- @reader_class . new ( "string" , :intern => true ) do |r |
129+ @reader_class . new ( @reader_input , :intern => true ) do |r |
137130 reader_mock . got_here
138131 expect ( r ) . to be_intern
139132 end
@@ -142,7 +135,7 @@ module RDF_Reader
142135 it "sets prefixes given :prefixes => {}" do
143136 reader_mock = double ( "reader" )
144137 expect ( reader_mock ) . to receive ( :got_here )
145- @reader_class . new ( "string" , :prefixes => { :a => "b" } ) do |r |
138+ @reader_class . new ( @reader_input , :prefixes => { :a => "b" } ) do |r |
146139 reader_mock . got_here
147140 expect ( r . prefixes ) . to eq ( { :a => "b" } )
148141 end
@@ -168,5 +161,48 @@ module RDF_Reader
168161 end
169162 end
170163 end
164+
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
172+
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 }
184+ end
185+
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
195+
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
205+
206+ end
171207 end
172208end
0 commit comments