spec/unit/attachment_spec.rb in couchrest_model-2.1.0.rc1 vs spec/unit/attachment_spec.rb in couchrest_model-2.2.0.beta1

- old
+ new

@@ -4,173 +4,173 @@ describe "#has_attachment?" do before(:each) do reset_test_db! @obj = Basic.new - @obj.save.should be_true + expect(@obj.save).to be_truthy @file = File.open(FIXTURE_PATH + '/attachments/test.html') @attachment_name = 'my_attachment' @obj.create_attachment(:file => @file, :name => @attachment_name) end it 'should return false if there is no attachment' do - @obj.has_attachment?('bogus').should be_false + expect(@obj.has_attachment?('bogus')).to be_falsey end it 'should return true if there is an attachment' do - @obj.has_attachment?(@attachment_name).should be_true + expect(@obj.has_attachment?(@attachment_name)).to be_truthy end it 'should return true if an object with an attachment is reloaded' do - @obj.save.should be_true + expect(@obj.save).to be_truthy reloaded_obj = Basic.get(@obj.id) - reloaded_obj.has_attachment?(@attachment_name).should be_true + expect(reloaded_obj.has_attachment?(@attachment_name)).to be_truthy end it 'should return false if an attachment has been removed' do @obj.delete_attachment(@attachment_name) - @obj.has_attachment?(@attachment_name).should be_false + expect(@obj.has_attachment?(@attachment_name)).to be_falsey end it 'should return false if an attachment has been removed and reloaded' do @obj.delete_attachment(@attachment_name) reloaded_obj = Basic.get(@obj.id) - reloaded_obj.has_attachment?(@attachment_name).should be_false + expect(reloaded_obj.has_attachment?(@attachment_name)).to be_falsey end end describe "creating an attachment" do before(:each) do @obj = Basic.new - @obj.save.should be_true + expect(@obj.save).to be_truthy @file_ext = File.open(FIXTURE_PATH + '/attachments/test.html') @file_no_ext = File.open(FIXTURE_PATH + '/attachments/README') @attachment_name = 'my_attachment' @content_type = 'media/mp3' end it "should create an attachment from file with an extension" do @obj.create_attachment(:file => @file_ext, :name => @attachment_name) - @obj.save.should be_true + expect(@obj.save).to be_truthy reloaded_obj = Basic.get(@obj.id) - reloaded_obj.attachments[@attachment_name].should_not be_nil + expect(reloaded_obj.attachments[@attachment_name]).not_to be_nil end it "should create an attachment from file without an extension" do @obj.create_attachment(:file => @file_no_ext, :name => @attachment_name) - @obj.save.should be_true + expect(@obj.save).to be_truthy reloaded_obj = Basic.get(@obj.id) - reloaded_obj.attachments[@attachment_name].should_not be_nil + expect(reloaded_obj.attachments[@attachment_name]).not_to be_nil end it 'should raise ArgumentError if :file is missing' do - lambda{ @obj.create_attachment(:name => @attachment_name) }.should raise_error + expect{ @obj.create_attachment(:name => @attachment_name) }.to raise_error(ArgumentError, /:file/) end it 'should raise ArgumentError if :name is missing' do - lambda{ @obj.create_attachment(:file => @file_ext) }.should raise_error + expect{ @obj.create_attachment(:file => @file_ext) }.to raise_error(ArgumentError, /:name/) end it 'should set the content-type if passed' do @obj.create_attachment(:file => @file_ext, :name => @attachment_name, :content_type => @content_type) - @obj.attachments[@attachment_name]['content_type'].should == @content_type + expect(@obj.attachments[@attachment_name]['content_type']).to eq(@content_type) end it "should detect the content-type automatically" do @obj.create_attachment(:file => File.open(FIXTURE_PATH + '/attachments/couchdb.png'), :name => "couchdb.png") - @obj.attachments['couchdb.png']['content_type'].should == "image/png" + expect(@obj.attachments['couchdb.png']['content_type']).to eq("image/png") end it "should use name to detect the content-type automatically if no file" do file = File.open(FIXTURE_PATH + '/attachments/couchdb.png') - file.stub(:path).and_return("badfilname") + allow(file).to receive(:path).and_return("badfilname") @obj.create_attachment(:file => File.open(FIXTURE_PATH + '/attachments/couchdb.png'), :name => "couchdb.png") - @obj.attachments['couchdb.png']['content_type'].should == "image/png" + expect(@obj.attachments['couchdb.png']['content_type']).to eq("image/png") end end describe 'reading, updating, and deleting an attachment' do before(:each) do @obj = Basic.new @file = File.open(FIXTURE_PATH + '/attachments/test.html') @attachment_name = 'my_attachment' @obj.create_attachment(:file => @file, :name => @attachment_name) - @obj.save.should be_true + expect(@obj.save).to be_truthy @file.rewind @content_type = 'media/mp3' end it 'should read an attachment that exists' do - @obj.read_attachment(@attachment_name).should == @file.read + expect(@obj.read_attachment(@attachment_name)).to eq(@file.read) end it 'should update an attachment that exists' do file = File.open(FIXTURE_PATH + '/attachments/README') - @file.should_not == file + expect(@file).not_to eq(file) @obj.update_attachment(:file => file, :name => @attachment_name) @obj.save reloaded_obj = Basic.get(@obj.id) file.rewind - reloaded_obj.read_attachment(@attachment_name).should_not == @file.read - reloaded_obj.read_attachment(@attachment_name).should == file.read + expect(reloaded_obj.read_attachment(@attachment_name)).not_to eq(@file.read) + expect(reloaded_obj.read_attachment(@attachment_name)).to eq(file.read) end it 'should set the content-type if passed' do file = File.open(FIXTURE_PATH + '/attachments/README') - @file.should_not == file + expect(@file).not_to eq(file) @obj.update_attachment(:file => file, :name => @attachment_name, :content_type => @content_type) - @obj.attachments[@attachment_name]['content_type'].should == @content_type + expect(@obj.attachments[@attachment_name]['content_type']).to eq(@content_type) end it 'should delete an attachment that exists' do @obj.delete_attachment(@attachment_name) @obj.save - lambda{Basic.get(@obj.id).read_attachment(@attachment_name)}.should raise_error + expect{Basic.get(@obj.id).read_attachment(@attachment_name)}.to raise_error(/404 Not Found/) end end describe "#attachment_url" do before(:each) do @obj = Basic.new @file = File.open(FIXTURE_PATH + '/attachments/test.html') @attachment_name = 'my_attachment' @obj.create_attachment(:file => @file, :name => @attachment_name) - @obj.save.should be_true + expect(@obj.save).to be_truthy end it 'should return nil if attachment does not exist' do - @obj.attachment_url('bogus').should be_nil + expect(@obj.attachment_url('bogus')).to be_nil end it 'should return the attachment URL as specified by CouchDB HttpDocumentApi' do - @obj.attachment_url(@attachment_name).should == "#{Basic.database}/#{@obj.id}/#{@attachment_name}" + expect(@obj.attachment_url(@attachment_name)).to eq("#{Basic.database}/#{@obj.id}/#{@attachment_name}") end it 'should return the attachment URI' do - @obj.attachment_uri(@attachment_name).should == "#{Basic.database.uri}/#{@obj.id}/#{@attachment_name}" + expect(@obj.attachment_uri(@attachment_name)).to eq("#{Basic.database.uri}/#{@obj.id}/#{@attachment_name}") end end describe "#attachments" do before(:each) do @obj = Basic.new @file = File.open(FIXTURE_PATH + '/attachments/test.html') @attachment_name = 'my_attachment' @obj.create_attachment(:file => @file, :name => @attachment_name) - @obj.save.should be_true + expect(@obj.save).to be_truthy end it 'should return an empty Hash when document does not have any attachment' do new_obj = Basic.new - new_obj.save.should be_true - new_obj.attachments.should == {} + expect(new_obj.save).to be_truthy + expect(new_obj.attachments).to eq({}) end it 'should return a Hash with all attachments' do @file.rewind - @obj.attachments.should == { @attachment_name =>{ "data" => "PCFET0NUWVBFIGh0bWw+CjxodG1sPgogIDxoZWFkPgogICAgPHRpdGxlPlRlc3Q8L3RpdGxlPgogIDwvaGVhZD4KICA8Ym9keT4KICAgIDxwPgogICAgICBUZXN0CiAgICA8L3A+CiAgPC9ib2R5Pgo8L2h0bWw+Cg==", "content_type" => "text/html"}} + expect(@obj.attachments).to eq({ @attachment_name =>{ "data" => "PCFET0NUWVBFIGh0bWw+CjxodG1sPgogIDxoZWFkPgogICAgPHRpdGxlPlRlc3Q8L3RpdGxlPgogIDwvaGVhZD4KICA8Ym9keT4KICAgIDxwPgogICAgICBUZXN0CiAgICA8L3A+CiAgPC9ib2R5Pgo8L2h0bWw+Cg==", "content_type" => "text/html"}}) end end end