spec/lib/mocrata/dataset_spec.rb in mocrata-0.0.1 vs spec/lib/mocrata/dataset_spec.rb in mocrata-0.1.0
- old
+ new
@@ -29,14 +29,16 @@
end
end
describe '#each_page' do
it 'yields pages' do
- expect(dataset).to receive(:json).and_return(*pages)
+ response = double(:response)
+ expect(response).to receive(:body).and_return(*pages)
+ expect(dataset).to receive(:get).and_return(response).at_least(:once)
expect { |b|
- dataset.each_page(:json, 4, &b)
+ dataset.each_page(:json, :per_page => 4, &b)
}.to yield_successive_args(*pages)
end
end
describe '#get' do
@@ -51,17 +53,63 @@
expect(dataset.send(:get, :csv)).to eq(response)
end
end
+ describe '#name' do
+ it 'fetches name from odata' do
+ dataset = Mocrata::Dataset.new(
+ 'https://data.sfgov.org/resource/dataset-identifier')
+
+ xml = %{<feed>
+ <title type="text">Test name</title>
+ <id>http://opendata.socrata.com/OData.svc/dataset-identifier</id>
+ <updated>2012-06-15T18:15:19Z</updated>
+ </feed>}
+
+ expect(dataset).to receive(:odata).and_return(REXML::Document.new(xml))
+ expect(dataset.name).to eq('Test name')
+ end
+ end
+
+ describe '#odata' do
+ it 'returns odata xml document' do
+ dataset = Mocrata::Dataset.new(
+ 'https://data.sfgov.org/resource/funx-qxxn')
+
+ response = Mocrata::Response.new(true)
+ expect(response).to receive(:content_type).and_return(:xml)
+ expect(response).to receive(:http_response).and_return(
+ double(:http_response, :body => ''))
+ expect_any_instance_of(Mocrata::Request).to receive(
+ :response).and_return(response)
+
+ expect(dataset.odata).to be_an_instance_of(REXML::Document)
+ end
+ end
+
describe '#csv' do
it 'returns csv body' do
response = Mocrata::Response.new(true)
expect(response).to receive(:body).and_return([])
expect(dataset).to receive(:get).and_return(response)
expect(dataset.csv).to eq([])
+ end
+ end
+
+ describe '#csv_header' do
+ it 'returns csv header' do
+ dataset = Mocrata::Dataset.new(
+ 'https://data.sfgov.org/resource/funx-qxxn')
+
+ response = double(:response, :body => [['foo', 'bar']])
+
+ expect_any_instance_of(Mocrata::Request).to receive(
+ :response).and_return(response)
+
+ expect(dataset.csv_header).to eq(['foo', 'bar'])
end
end
describe '#json' do
it 'returns json body' do