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.14 spec/aws/requests/simpledb/put_attributes_spec.rb
fog-0.3.13 spec/aws/requests/simpledb/put_attributes_spec.rb
fog-0.3.12 spec/aws/requests/simpledb/put_attributes_spec.rb
fog-0.3.11 spec/aws/requests/simpledb/put_attributes_spec.rb
fog-0.3.10 spec/aws/requests/simpledb/put_attributes_spec.rb
fog-0.3.9 spec/aws/requests/simpledb/put_attributes_spec.rb
fog-0.3.8 spec/aws/requests/simpledb/put_attributes_spec.rb
fog-0.3.7 spec/aws/requests/simpledb/put_attributes_spec.rb
fog-0.3.6 spec/aws/requests/simpledb/put_attributes_spec.rb
fog-0.3.5 spec/aws/requests/simpledb/put_attributes_spec.rb
fog-0.3.4 spec/aws/requests/simpledb/put_attributes_spec.rb
fog-0.3.3 spec/aws/requests/simpledb/put_attributes_spec.rb
fog-0.3.2 spec/aws/requests/simpledb/put_attributes_spec.rb
fog-0.3.1 spec/aws/requests/simpledb/put_attributes_spec.rb
fog-0.3.0 spec/aws/requests/simpledb/put_attributes_spec.rb
fog-0.2.30 spec/aws/requests/simpledb/put_attributes_spec.rb
fog-0.2.28 spec/aws/requests/simpledb/put_attributes_spec.rb
fog-0.2.27 spec/aws/requests/simpledb/put_attributes_spec.rb
fog-0.2.26 spec/aws/requests/simpledb/put_attributes_spec.rb
fog-0.2.25 spec/aws/requests/simpledb/put_attributes_spec.rb