Sha256: 167961a262257f791503bd7e0b0a14b87f7339720ec370686fb0d5a135f21ba8

Contents?: true

Size: 1.25 KB

Versions: 3

Compression:

Stored size: 1.25 KB

Contents

require 'test_helper'

class Address
  include MongoMapper::EmbeddedDocument
  
  key :address, String
  key :city,    String
  key :state,   String
  key :zip,     Integer
end

class AssociationsTest < Test::Unit::TestCase
  def setup
    @document = Class.new do
      include MongoMapper::Document
    end
  end
  
  context "Many embedded documents" do
    setup do
      @document.class_eval do
        many :addresses
      end
    end

    should "default reader to empty array" do
      instance = @document.new
      instance.addresses.should == []
    end
  
    should "allow adding to association like it was an array" do
      instance = @document.new
      instance.addresses << Address.new
      instance.addresses.push Address.new
      instance.addresses.size.should == 2
    end
  
    should "be embedded in document on save" do
      sb = Address.new(:city => 'South Bend', :state => 'IN')
      chi = Address.new(:city => 'Chicago', :state => 'IL')
      instance = @document.new
      instance.addresses << sb
      instance.addresses << chi
      instance.save
    
      from_db = @document.find(instance.id)
      from_db.addresses.size.should == 2
      from_db.addresses[0].should == sb
      from_db.addresses[1].should == chi
    end    
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
jnunemaker-mongomapper-0.1.0 test/test_associations.rb
jnunemaker-mongomapper-0.1.1 test/test_associations.rb
jnunemaker-mongomapper-0.1.2 test/test_associations.rb