diff options
Diffstat (limited to 'spec/ruby/core/array/rassoc_spec.rb')
| -rw-r--r-- | spec/ruby/core/array/rassoc_spec.rb | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/spec/ruby/core/array/rassoc_spec.rb b/spec/ruby/core/array/rassoc_spec.rb index decdaae098..95e4ed1892 100644 --- a/spec/ruby/core/array/rassoc_spec.rb +++ b/spec/ruby/core/array/rassoc_spec.rb @@ -12,11 +12,11 @@ describe "Array#rassoc" do it "properly handles recursive arrays" do empty = ArraySpecs.empty_recursive_array - empty.rassoc([]).should be_nil + empty.rassoc([]).should == nil [[empty, empty]].rassoc(empty).should == [empty, empty] array = ArraySpecs.recursive_array - array.rassoc(array).should be_nil + array.rassoc(array).should == nil [[empty, array]].rassoc(array).should == [empty, array] end @@ -28,11 +28,23 @@ describe "Array#rassoc" do [[1, :foobar], [2, o], [3, mock('foo')]].rassoc(key).should == [2, o] end - it "does not check the last element in each contained but speficically the second" do + it "does not check the last element in each contained but specifically the second" do key = 'foobar' o = mock('foobar') def o.==(other); other == 'foobar'; end [[1, :foobar, o], [2, o, 1], [3, mock('foo')]].rassoc(key).should == [2, o, 1] end + + it "calls to_ary on non-array elements" do + s1 = [1, 2] + s2 = ArraySpecs::ArrayConvertible.new(2, 3) + a = [s1, s2] + + s1.should_not_receive(:to_ary) + a.rassoc(2).should.equal?(s1) + + a.rassoc(3).should == [2, 3] + s2.called.should.equal?(:to_ary) + end end |
