Sha256: ecd033ecdabe5085669f2903b20fb4861bdcc7af01b148c975afc090e7d3ee64

Contents?: true

Size: 1.58 KB

Versions: 19

Compression:

Stored size: 1.58 KB

Contents

require 'test_helper'

class CloneTest < Test::Unit::TestCase
  context "Document" do
    setup do
      @document = Doc()
      @embedded = EDoc()
      @document.many :widgets, :class => @embedded
      @tags = ['red', 'green', 'blue']
      @doc = @document.create({
        :name    => "foo",
        :age     => 27,
        :tags    => @tags,
        :widgets => [@embedded.new, @embedded.new],
      })
    end

    context "#clone" do
      should "be new" do
        @doc.clone.should be_new
      end

      should "copy the attributes" do
        clone = @doc.clone
        clone.name.should == "foo"
        clone.age.should == 27
      end

      should "clone duplicable attributes" do
        @doc.clone.tags.should_not equal(@tags)
      end

      should "clone many embedded documents" do
        @doc.clone.widgets.object_id.should_not equal(@doc.widgets.object_id)
      end

      should "not be destroyed" do
        @doc.destroy
        @doc.clone.should_not be_destroyed
      end
    end
  end

  context "EmbeddedDocument" do
    setup do
      @document = EDoc do
        key :name, String
        key :age, Integer
      end
    end

    context "#clone" do
      should "regenerate the id" do
        doc = @document.new(:name => "foo", :age => 27)
        doc_id = doc.id
        clone = doc.clone
        clone_id = clone.id
        clone_id.should_not == doc_id
      end

      should "copy the attributes" do
        doc = @document.new(:name => "foo", :age => 27)
        clone = doc.clone
        clone.name.should == "foo"
        clone.age.should == 27
      end
    end
  end
end

Version data entries

19 entries across 19 versions & 7 rubygems

Version Path
mongo_mapper-0.12.0 test/unit/test_clone.rb
lookout-mongo_mapper-0.11.3 test/unit/test_clone.rb
mongo_mapper-0.11.2 test/unit/test_clone.rb
jamieorc-mongo_mapper-0.11.1.1 test/unit/test_clone.rb
mongo_mapper-0.11.1 test/unit/test_clone.rb
mongo_mapper-0.11.0 test/unit/test_clone.rb
mongo_mapper-0.10.1 test/unit/test_clone.rb
mongo_mapper-0.10.0 test/unit/test_clone.rb
mongo_mapper-0.9.2 test/unit/test_clone.rb
jonbell-mongo_mapper-0.8.6 test/unit/test_clone.rb
mongo_mapper-0.9.1 test/unit/test_clone.rb
mongo_mapper-0.9.0 test/unit/test_clone.rb
ign-mongo_mapper-0.8.6.2 test/unit/test_clone.rb
ign-mongo_mapper-0.8.6.1 test/unit/test_clone.rb
ssherman-mongo_mapper-0.8.6 test/unit/test_clone.rb
mongo_mapper-0.8.6 test/unit/test_clone.rb
mongo_mapper-0.8.5 test/unit/test_clone.rb
honkster-mongo_mapper-0.8.4 test/unit/test_clone.rb
mongo_mapper-0.8.4 test/unit/test_clone.rb