Sha256: 7e0b87f3b59f1d2a86b68b6628d03e17c8f101267e20f1d5e3c39560b66931d5

Contents?: true

Size: 1.81 KB

Versions: 15

Compression:

Stored size: 1.81 KB

Contents

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

describe "Dynamoid::Associations::BelongsTo" do
  
  context 'has many' do
    before do
      @subscription = Subscription.create
      @camel_case = CamelCase.create
    end
  
    it 'determines nil if it has no associated record' do
      @subscription.magazine.should be_nil
    end

    it 'determines target association correctly' do
      @camel_case.magazine.send(:target_association).should == :camel_cases
    end

  
    it 'delegates equality to its source record' do
      @magazine = @subscription.magazine.create

      @subscription.magazine.should == @magazine
    end
  
    it 'associates has_many automatically' do
      @magazine = @subscription.magazine.create
    
      @magazine.subscriptions.should include @subscription

      @magazine = Magazine.create
      @user = @magazine.owner.create
      @user.books.size.should == 1
      @user.books.should include @magazine
    end
    
    it 'behaves like the object it is trying to be' do
      @magazine = @subscription.magazine.create

      @subscription.magazine.update_attribute(:title, 'Test Title')

      Magazine.first.title.should == 'Test Title'
    end
  end
  
  context 'has one' do
    before do
      @sponsor = Sponsor.create
      @subscription = Subscription.create
    end
    
    it 'determins nil if it has no associated record' do
      @sponsor.magazine.should be_nil
    end
  
    it 'delegates equality to its source record' do
      @magazine = @sponsor.magazine.create
    
      @sponsor.magazine.should == @magazine
    end
  
    it 'associates has_one automatically' do
      @magazine = @sponsor.magazine.create
      
      @magazine.sponsor.should == @sponsor

      @user = @subscription.customer.create
      @user.monthly.should == @subscription
    end
  end
end

Version data entries

15 entries across 15 versions & 3 rubygems

Version Path
dynamoid-moda-0.7.2 spec/dynamoid/associations/belongs_to_spec.rb
dynamoid-moda-0.7.1 spec/dynamoid/associations/belongs_to_spec.rb
dynamoid-0.7.1 spec/dynamoid/associations/belongs_to_spec.rb
dynamoid-0.7.0 spec/dynamoid/associations/belongs_to_spec.rb
dynamoid-0.6.1 spec/dynamoid/associations/belongs_to_spec.rb
dynamoid-0.6.0 spec/dynamoid/associations/belongs_to_spec.rb
adept_dynamoid-0.6.0 spec/dynamoid/associations/belongs_to_spec.rb
adept_dynamoid-0.5.0.8 spec/dynamoid/associations/belongs_to_spec.rb
adept_dynamoid-0.5.0.7 spec/dynamoid/associations/belongs_to_spec.rb
adept_dynamoid-0.5.0.6 spec/dynamoid/associations/belongs_to_spec.rb
dynamoid-0.5.0 spec/dynamoid/associations/belongs_to_spec.rb
dynamoid-0.4.1 spec/dynamoid/associations/belongs_to_spec.rb
dynamoid-0.4.0 spec/dynamoid/associations/belongs_to_spec.rb
dynamoid-0.3.2 spec/dynamoid/associations/belongs_to_spec.rb
dynamoid-0.3.1 spec/dynamoid/associations/belongs_to_spec.rb