Sha256: 11ca87478eceecd9d93011050dc2ea4d1e4accc90cc6619d159ba7060ac6b7b5

Contents?: true

Size: 1.52 KB

Versions: 83

Compression:

Stored size: 1.52 KB

Contents

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

describe "Kernel#Array" do
  it "is a private method" do
    Kernel.should have_private_instance_method(:Array)
  end
  
  it "does not call #to_ary on an Array" do
    obj = [1,2,3]
    obj.should_not_receive(:to_ary)

    Array(obj).should == [1, 2, 3]
  end

  it "tries to call #to_ary on the given argument if it's not an Array" do
    (obj = mock('[1,2,3]')).should_receive(:to_ary).and_return([1, 2, 3])
    obj.should_not_receive(:to_a)

    Array(obj).should == [1, 2, 3]
  end

  it "does not call #to_a on an Array" do
    obj = [1,2,3]
    obj.should_not_receive(:to_a)

    Array(obj).should == [1, 2, 3]
  end

  it "tries to call #to_a on the given argument if #to_ary is not provided" do
    (obj = mock('[4,5,6]')).should_receive(:to_a).and_return([4, 5, 6])
    Array(obj).should == [4, 5, 6]
  end
  
  it "returns an array with the given argument if neither #to_ary nor #to_a are provided" do
    obj = mock('x')
    Array(obj).should == [obj]
  end
  
  it "returns an empty array if the given argument is nil" do
    Array(nil).should == []
  end
  
  it "raises a TypeError if #to_ary / #to_a do not return an array" do
    (obj = mock('ha!')).should_receive(:to_a).and_return("ha!")
    lambda { Array(obj) }.should raise_error(TypeError)

    obj.should_receive(:to_ary).and_return("ha!")
    lambda { Array(obj) }.should raise_error(TypeError)
  end
end

Version data entries

83 entries across 83 versions & 1 rubygems

Version Path
rhodes-3.1.1 spec/framework_spec/app/spec/core/kernel/Array_spec.rb
rhodes-3.1.1.beta spec/framework_spec/app/spec/core/kernel/Array_spec.rb
rhodes-3.1.0 spec/framework_spec/app/spec/core/kernel/Array_spec.rb
rhodes-3.1.0.beta.5 spec/framework_spec/app/spec/core/kernel/Array_spec.rb
rhodes-3.1.0.beta.4 spec/framework_spec/app/spec/core/kernel/Array_spec.rb
rhodes-3.1.0.beta.3 spec/framework_spec/app/spec/core/kernel/Array_spec.rb
rhodes-3.1.0.beta.2 spec/framework_spec/app/spec/core/kernel/Array_spec.rb
rhodes-3.1.0.beta.1 spec/framework_spec/app/spec/core/kernel/Array_spec.rb
rhodes-3.0.2 spec/framework_spec/app/spec/core/kernel/Array_spec.rb
rhodes-3.0.2.beta.1 spec/framework_spec/app/spec/core/kernel/Array_spec.rb
rhodes-3.0.1 spec/framework_spec/app/spec/core/kernel/Array_spec.rb
rhodes-3.0.1.beta.8 spec/framework_spec/app/spec/core/kernel/Array_spec.rb
rhodes-3.0.1.beta.7 spec/framework_spec/app/spec/core/kernel/Array_spec.rb
rhodes-3.0.1.beta.6 spec/framework_spec/app/spec/core/kernel/Array_spec.rb
rhodes-3.0.1.beta.5 spec/framework_spec/app/spec/core/kernel/Array_spec.rb
rhodes-3.0.1.beta.4 spec/framework_spec/app/spec/core/kernel/Array_spec.rb
rhodes-3.0.1.beta.3 spec/framework_spec/app/spec/core/kernel/Array_spec.rb
rhodes-3.0.1.beta.2 spec/framework_spec/app/spec/core/kernel/Array_spec.rb
rhodes-3.0.0 spec/framework_spec/app/spec/core/kernel/Array_spec.rb
rhodes-3.0.0.beta.7 spec/framework_spec/app/spec/core/kernel/Array_spec.rb