summaryrefslogtreecommitdiff
path: root/spec/ruby/core/kernel/initialize_clone_spec.rb
blob: 21a90c19f0e4a752ec6e12b9bc10b08d37b00051 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
require_relative '../../spec_helper'

describe "Kernel#initialize_clone" do
  it "is a private instance method" do
    Kernel.should have_private_instance_method(:initialize_clone)
  end

  it "returns the receiver" do
    a = Object.new
    b = Object.new
    a.send(:initialize_clone, b).should == a
  end

  it "calls #initialize_copy" do
    a = Object.new
    b = Object.new
    a.should_receive(:initialize_copy).with(b)
    a.send(:initialize_clone, b)
  end

  it "accepts a :freeze keyword argument for obj.clone(freeze: value)" do
    a = Object.new
    b = Object.new
    a.send(:initialize_clone, b, freeze: true).should == a
  end
end