Sha256: 48ce286ee87a5f302c8cbec2110effabd2073cee118c0ed741456bf21cf2e530

Contents?: true

Size: 781 Bytes

Versions: 7

Compression:

Stored size: 781 Bytes

Contents

describe "duplicable?" do
  before do
    @raise_dup = [nil, false, true, :symbol, 1, 2.3, 5.seconds]
    @yes = ['1', Object.new, /foo/, [], {}, Time.now, Class.new, Module.new, BigDecimal.new('4.56')]
    @no = []
  end
  
  it "should return false for non-duplicable objects" do
    (@raise_dup + @no).each do |v|
      v.should.not.be.duplicable
    end
  end
  
  it "should return true for duplicable objects" do
    @yes.each do |v|
      v.should.be.duplicable
    end
  end
  
  it "should not raise when dupping duplicable objects" do
    (@yes + @no).each do |v|
      lambda { v.dup }.should.not.raise
    end
  end
  
  it "should raise when dupping non-duplicable objects" do
    @raise_dup.each do |v|
      lambda { v.dup }.should.raise TypeError
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
motion-support-0.3.0 spec/motion-support/core_ext/object/duplicable_spec.rb
motion-support-0.2.6 spec/motion-support/core_ext/object/duplicable_spec.rb
motion-support-0.2.5 spec/motion-support/core_ext/object/duplicable_spec.rb
motion-support-0.2.4 spec/motion-support/core_ext/object/duplicable_spec.rb
motion-support-0.2.3 spec/motion-support/core_ext/object/duplicable_spec.rb
motion-support-0.2.2 spec/motion-support/core_ext/object/duplicable_spec.rb
motion-support-0.2.0 spec/motion-support/core_ext/object/duplicable_spec.rb