spec/gems/client_spec.rb in gems-0.0.3 vs spec/gems/client_spec.rb in gems-0.0.4

- old
+ new

@@ -1,67 +1,85 @@ require 'helper' describe Gems::Client do - before do - @client = Gems::Client.new - end + %w(json xml).each do |format| + context ".new(:format => '#{format}')" do + before do + @client = Gems::Client.new(:format => format) + end - describe "#info" do - before do - stub_get("/api/v1/gems/rails.json").to_return(:body => fixture("rails.json")) - end + describe ".info" do + before do + stub_get("/api/v1/gems/rails.#{format}"). + to_return(:body => fixture("rails.#{format}")) + end - it "should return some basic information about the given gem" do - info = @client.info 'rails' - a_get("/api/v1/gems/rails.json").should have_been_made - info.name.should == 'rails' - end - end + it "should return some basic information about the given gem" do + info = @client.info 'rails' + a_get("/api/v1/gems/rails.#{format}"). + should have_been_made + info.name.should == 'rails' + end + end - describe "#search" do - before do - stub_get("/api/v1/search.json?query=cucumber").to_return(:body => fixture("search.json")) - end + describe ".search" do + before do + stub_get("/api/v1/search.#{format}"). + with(:query => {"query" => "cucumber"}). + to_return(:body => fixture("search.#{format}")) + end - it "should return an array of active gems that match the query" do - search = @client.search 'cucumber' - a_get("/api/v1/search.json?query=cucumber").should have_been_made - search.first.name.should == 'cucumber' - end - end + it "should return an array of active gems that match the query" do + search = @client.search 'cucumber' + a_get("/api/v1/search.#{format}"). + with(:query => {"query" => "cucumber"}). + should have_been_made + search.first.name.should == 'cucumber' + end + end - describe "#versions" do - before do - stub_get("/api/v1/versions/coulda.json").to_return(:body => fixture("coulda.json")) - end + describe ".versions" do + before do + stub_get("/api/v1/versions/coulda.json"). + to_return(:body => fixture("coulda.json")) + end - it "should return an array of gem version details" do - versions = @client.versions 'coulda' - a_get("/api/v1/versions/coulda.json").should have_been_made - versions.first.number.should == '0.6.3' - end - end + it "should return an array of gem version details" do + versions = @client.versions 'coulda' + a_get("/api/v1/versions/coulda.json"). + should have_been_made + versions.first.number.should == '0.6.3' + end + end - describe "#downloads" do - before do - stub_get("/api/v1/versions/coulda-0.6.3/downloads.json").to_return(:body => fixture("downloads.json")) - end + describe ".downloads" do + before do + stub_get("/api/v1/versions/coulda-0.6.3/downloads.json"). + to_return(:body => fixture("downloads.json")) + end - it "should return the number of downloads by day for a particular gem version" do - downloads = @client.downloads 'coulda', '0.6.3' - a_get("/api/v1/versions/coulda-0.6.3/downloads.json").should have_been_made - downloads["2011-11-01"].should == 0 - end - end + it "should return the number of downloads by day for a particular gem version" do + downloads = @client.downloads 'coulda', '0.6.3' + a_get("/api/v1/versions/coulda-0.6.3/downloads.json"). + should have_been_made + downloads["2011-06-22"].should == 8 + end + end - describe "#dependencies" do - before do - stub_get("/api/v1/dependencies?gems=rails,thor").to_return(:body => fixture("dependencies.json")) - end + describe ".dependencies" do + before do + stub_get("/api/v1/dependencies"). + with(:query => {"gems" => "rails,thor"}). + to_return(:body => fixture("dependencies")) + end - it "should return an array of hashes for all versions of given gems" do - dependencies = @client.dependencies 'rails', 'thor' - a_get("/api/v1/dependencies?gems=rails,thor").should have_been_made - dependencies.first.number.should == "3.0.9" + it "should return an array of hashes for all versions of given gems" do + dependencies = @client.dependencies 'rails', 'thor' + a_get("/api/v1/dependencies"). + with(:query => {"gems" => "rails,thor"}). + should have_been_made + dependencies.first.number.should == "3.0.9" + end + end end end end