Sha256: 5c39d86bdffb3ba98b7e4bb47f3f628ccf3b4739e6d8edc70223d5e70dea03cc

Contents?: true

Size: 1.08 KB

Versions: 83

Compression:

Stored size: 1.08 KB

Contents

require File.dirname(File.join(__rhoGetCurrentDir(), __FILE__)) + '/../../spec_helper'
require File.dirname(File.join(__rhoGetCurrentDir(), __FILE__)) + '/fixtures/classes'

describe "Kernel#freeze" do
  it "prevents self from being further modified" do
    o = mock('o')
    o.frozen?.should == false
    o.freeze
    o.frozen?.should == true
  end

  it "has no effect on immediate values" do
    a = nil
    b = true
    c = false
    d = 1
    a.freeze
    b.freeze
    c.freeze
    d.freeze
    a.frozen?.should == false
    b.frozen?.should == false
    c.frozen?.should == false
    d.frozen?.should == false
  end

  ruby_version_is "" ... "1.9" do
    it "causes mutative calls to raise TypeError" do
      o = Class.new do
        def mutate; @foo = 1; end
      end.new
      o.freeze
      lambda {o.mutate}.should raise_error(TypeError)
    end
  end

  ruby_version_is "1.9" do
    it "causes mutative calls to raise RuntimeError" do
      o = Class.new do
        def mutate; @foo = 1; end
      end.new
      o.freeze
      lambda {o.mutate}.should raise_error(RuntimeError)
    end
  end
end

Version data entries

83 entries across 83 versions & 1 rubygems

Version Path
rhodes-2.2.6 spec/framework_spec/app/spec/core/kernel/freeze_spec.rb
rhodes-2.2.6.beta.1 spec/framework_spec/app/spec/core/kernel/freeze_spec.rb
rhodes-2.2.5 spec/framework_spec/app/spec/core/kernel/freeze_spec.rb
rhodes-2.2.5.beta.3 spec/framework_spec/app/spec/core/kernel/freeze_spec.rb
rhodes-2.2.5.beta.2 spec/framework_spec/app/spec/core/kernel/freeze_spec.rb
rhodes-2.2.5.beta.1 spec/framework_spec/app/spec/core/kernel/freeze_spec.rb
rhodes-2.2.4.beta.1 spec/framework_spec/app/spec/core/kernel/freeze_spec.rb
rhodes-2.2.3 spec/framework_spec/app/spec/core/kernel/freeze_spec.rb
rhodes-2.2.3.beta.1 spec/framework_spec/app/spec/core/kernel/freeze_spec.rb
rhodes-2.2.2 spec/framework_spec/app/spec/core/kernel/freeze_spec.rb
rhodes-2.2.2.beta.1 spec/framework_spec/app/spec/core/kernel/freeze_spec.rb
rhodes-2.2.1 spec/framework_spec/app/spec/core/kernel/freeze_spec.rb
rhodes-2.2.1.beta.2 spec/framework_spec/app/spec/core/kernel/freeze_spec.rb
rhodes-2.2.1.beta.1 spec/framework_spec/app/spec/core/kernel/freeze_spec.rb
rhodes-2.2.0 spec/framework_spec/app/spec/core/kernel/freeze_spec.rb
rhodes-2.2.0.beta.3 spec/framework_spec/app/spec/core/kernel/freeze_spec.rb
rhodes-2.2.0.beta.2 spec/framework_spec/app/spec/core/kernel/freeze_spec.rb
rhodes-2.2.0.beta.1 spec/framework_spec/app/spec/core/kernel/freeze_spec.rb
rhodes-2.1.0 spec/framework_spec/app/spec/core/kernel/freeze_spec.rb
rhodes-2.0.3 spec/framework_spec/app/spec/core/kernel/freeze_spec.rb