Sha256: 0d62e572e6ad348593af0d88808b85c2071ce391b0c8b93ef72daba6fa61c704

Contents?: true

Size: 1.4 KB

Versions: 10

Compression:

Stored size: 1.4 KB

Contents

# encoding: utf-8

describe 'Array#symbolize_keys_recursively' do

  it 'should convert keys to symbols' do
    array_old = [ :abc, 'xyz', { 'foo' => 'bar', :baz => :qux } ]
    array_new = [ :abc, 'xyz', { :foo  => 'bar', :baz => :qux } ]
    array_old.symbolize_keys_recursively.must_equal array_new
  end

end

describe 'Array#stringify_keys_recursively' do

  it 'should convert keys to strings' do
    array_old = [ :abc, 'xyz', { :foo  => 'bar', 'baz' => :qux } ]
    array_new = [ :abc, 'xyz', { 'foo' => 'bar', 'baz' => :qux } ]
    array_old.stringify_keys_recursively.must_equal array_new
  end

end

describe 'Array#freeze_recursively' do

  include Nanoc::TestHelpers

  it 'should prevent first-level elements from being modified' do
    array = [ :a, [ :b, :c ], :d ]
    array.freeze_recursively

    assert_raises_frozen_error do
      array[0] = 123
    end
  end

  it 'should prevent second-level elements from being modified' do
    array = [ :a, [ :b, :c ], :d ]
    array.freeze_recursively

    assert_raises_frozen_error do
      array[1][0] = 123
    end
  end

  it 'should not freeze infinitely' do
    a = []
    a << a

    a.freeze_recursively

    assert a.frozen?
    assert a[0].frozen?
    assert_equal a, a[0]
  end

end

describe 'Array#checksum' do

  it 'should work' do
    expectation = '78468f950645150238a26f5b8f2dde39a75a7028'
    [ [ :foo, 123 ]].checksum.must_equal expectation
  end

end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
nanoc-3.6.9 test/base/core_ext/array_spec.rb
nanoc-3.6.8 test/base/core_ext/array_spec.rb
nanoc-3.6.7 test/base/core_ext/array_spec.rb
nanoc-3.6.6 test/base/core_ext/array_spec.rb
nanoc-3.6.5 test/base/core_ext/array_spec.rb
nanoc-3.6.4 test/base/core_ext/array_spec.rb
nanoc-3.6.3 test/base/core_ext/array_spec.rb
nanoc-3.6.2 test/base/core_ext/array_spec.rb
nanoc-3.6.1 test/base/core_ext/array_spec.rb
nanoc-3.6.0 test/base/core_ext/array_spec.rb