spec/grendel/document_manager_spec.rb in grendel-ruby-0.1.1 vs spec/grendel/document_manager_spec.rb in grendel-ruby-0.1.2

- old
+ new

@@ -6,22 +6,22 @@ @user_id = "alice" @password = "s3kret" @user = Grendel::User.new(@client, :id => @user_id, :password => @password) @base_uri = "#{@user_id}:#{@password}@grendel/users/#{@user_id}/documents" end - + describe "list" do before do stub_json_request(:get, @base_uri, %{{ "documents":[ {"name":"document1.txt", "uri":"http://grendel/users/#{@user_id}/documents/document1.txt"}, {"name":"document2.txt", "uri":"http://grendel/users/#{@user_id}/documents/document2.txt"} ]}}) end - + it "should return an array of all documents" do docs = @user.documents.list docs.length.should == 2 docs[0].name.should == "document1.txt" docs[0].uri.should == "/users/#{@user_id}/documents/document1.txt" @@ -31,69 +31,69 @@ end describe "find" do before do stub_json_request(:get, @base_uri + "/document1.txt", "yay for me", :content_type => "text/plain") - stub_json_request(:get, @base_uri + "/notfound.txt", "", :status => "404 Not Found") + stub_json_request(:get, @base_uri + "/notfound.txt", "", :status => [404, "Not Found"]) end - + it "should return the document" do doc = @user.documents.find("document1.txt") doc.name.should == "document1.txt" doc.content_type.should == "text/plain" doc.data.should == "yay for me" end - + it "should raise an exception if the document is not found" do lambda { @user.documents.find("notfound.txt") - }.should raise_error(Grendel::Client::HTTPException) {|error| error.message.should match("404")} # change to should == "404 Not Found" once WebMock supports status messages + }.should raise_error(Grendel::Client::HTTPException) {|error| error.message.should == "404 Not Found"} end end describe "store" do describe "a successful request" do before do - stub_json_request(:put, @base_uri + "/new_document.txt", "", :status => "204 No Content") + stub_json_request(:put, @base_uri + "/new_document.txt", "", :status => [204, "No Content"]) end - + it "should send a properly-formatted request" do @user.documents.store("new_document.txt", "top secret stuff", "text/plain") params = { "id" => @user_id, "password" => @password } request(:put, @base_uri + "/new_document.txt"). with(:body => "top secret stuff", :headers => {"Content-Type" => "text/plain"}). should have_been_made.once end - + it "should guess the content type if not provided" do @user.documents.store("new_document.txt", "top secret stuff") params = { "id" => @user_id, "password" => @password } request(:put, @base_uri + "/new_document.txt"). with(:body => "top secret stuff", :headers => {"Content-Type" => "text/plain"}). should have_been_made.once end it "should default the content type to 'application/octet-stream' if unknown" do - stub_json_request(:put, @base_uri + "/new_document.-wtf-", "", :status => "204 No Content") + stub_json_request(:put, @base_uri + "/new_document.-wtf-", "", :status => [204, "No Content"]) @user.documents.store("new_document.-wtf-", "top secret stuff") params = { "id" => @user_id, "password" => @password } request(:put, @base_uri + "/new_document.-wtf-"). with(:body => "top secret stuff", :headers => {"Content-Type" => "application/octet-stream"}). should have_been_made.once end - + it "should return a document" do doc = @user.documents.store("new_document.txt", "top secret stuff") doc.name.should == "new_document.txt" doc.data.should == "top secret stuff" doc.content_type.should == "text/plain" end end end - + describe "delete" do before do - stub_json_request(:delete, @base_uri + "/document.txt", "", :status => "204 No Content") + stub_json_request(:delete, @base_uri + "/document.txt", "", :status => [204, "No Content"]) @document = Grendel::Document.new(@user, :name => "document.txt") end it "should send a properly-formatted request" do @user.documents.delete("document.txt")