Sha256: 7be8d8ab9c0c1205c3ed402b7ab3253070c3e0b6f5cb0e6a6ca59bc8f06041c8

Contents?: true

Size: 1.8 KB

Versions: 65

Compression:

Stored size: 1.8 KB

Contents

require File.dirname(__FILE__) + '/../../../spec_helper'

describe 'SimpleDB.put_attributes' do
  describe 'success' do

    before(:each) do
      @domain_name = "fog_domain_#{Time.now.to_i}"
      AWS[:sdb].create_domain(@domain_name)
    end

    after(:each) do
      AWS[:sdb].delete_domain(@domain_name)
    end

    it 'should return proper attributes from put_attributes' do
      actual = AWS[:sdb].put_attributes(@domain_name, 'foo', { 'bar' => 'baz' })
      actual.body['RequestId'].should be_a(String)
      actual.body['BoxUsage'].should be_a(Float)
    end

    it 'conditional put should succeed' do
      AWS[:sdb].put_attributes(@domain_name, 'foo', { 'version' => '1' })
      AWS[:sdb].put_attributes(@domain_name, 'foo', { 'version' => '2' }, :expect => { 'version' => '1' }, :replace => ['version'])
      actual = AWS[:sdb].put_attributes(@domain_name, 'foo', { 'version' => '3' }, :expect => { 'version' => '2' }, :replace => ['version'])
      actual.body['RequestId'].should be_a(String)
      actual.body['BoxUsage'].should be_a(Float)
    end

    it 'conditional put should raise Conflict error' do
      actual = AWS[:sdb].put_attributes(@domain_name, 'foo', { 'version' => '2' }, :replace => ['version'])
      actual.body['RequestId'].should be_a(String)
      actual.body['BoxUsage'].should be_a(Float)

      lambda {
        actual = AWS[:sdb].put_attributes(@domain_name, 'foo', { 'version' => '2' }, :expect => { 'version' => '1' }, :replace => ['version'])
      }.should raise_error(Excon::Errors::Conflict)
    end

  end
  describe 'failure' do

    it 'should raise a BadRequest error if the domain does not exist' do
      lambda {
        AWS[:sdb].put_attributes(@domain_name, 'notadomain', { 'notanattribute' => 'value' })
      }.should raise_error(Excon::Errors::BadRequest)
    end

  end
end

Version data entries

65 entries across 65 versions & 2 rubygems

Version Path
fog-0.3.34 spec/aws/requests/simpledb/put_attributes_spec.rb
fog-0.3.33 spec/aws/requests/simpledb/put_attributes_spec.rb
fog-0.3.32 spec/aws/requests/simpledb/put_attributes_spec.rb
fog-0.3.31 spec/aws/requests/simpledb/put_attributes_spec.rb
fog-0.3.30 spec/aws/requests/simpledb/put_attributes_spec.rb
fog-0.3.29 spec/aws/requests/simpledb/put_attributes_spec.rb
fog-0.3.28 spec/aws/requests/simpledb/put_attributes_spec.rb
fog-0.3.27 spec/aws/requests/simpledb/put_attributes_spec.rb
fog-0.3.26 spec/aws/requests/simpledb/put_attributes_spec.rb
fog-0.3.25 spec/aws/requests/simpledb/put_attributes_spec.rb
fog-0.3.24 spec/aws/requests/simpledb/put_attributes_spec.rb
fog-0.3.23 spec/aws/requests/simpledb/put_attributes_spec.rb
fog-0.3.22 spec/aws/requests/simpledb/put_attributes_spec.rb
fog-0.3.21 spec/aws/requests/simpledb/put_attributes_spec.rb
fog-0.3.20 spec/aws/requests/simpledb/put_attributes_spec.rb
fog-0.3.19 spec/aws/requests/simpledb/put_attributes_spec.rb
fog-0.3.18 spec/aws/requests/simpledb/put_attributes_spec.rb
fog-0.3.17 spec/aws/requests/simpledb/put_attributes_spec.rb
fog-0.3.16 spec/aws/requests/simpledb/put_attributes_spec.rb
fog-0.3.15 spec/aws/requests/simpledb/put_attributes_spec.rb