Sha256: f1387968c0f759b3cbaf8fb431c15830d5f72d27737d0a79f373f4e4cd1a1b78

Contents?: true

Size: 1.3 KB

Versions: 6

Compression:

Stored size: 1.3 KB

Contents

require File.dirname(__FILE__) + '/../unit_test_helper'
require 'deep_merge'


class DeepMergeFixTest < Test::Unit::TestCase

  def setup
  end

  def teardown
  end
  
  should "overwrite destination hash elements of type TrueClass and FalseClass with source elements" do
    # note: The deep_merge present in vendor is an altered version of that which is available online.
    #       The original relies on true/false checks to detect presence in hashes instead of .nil? checks.
    #       Thus, it does not properly merge hash elements of TrueClass and FalseClass; the corrected 
    #        version does.

    source = {
      :array => [1, 2, 3],
      :int => 9,
      :string => 'hello',
      :boolean1 => false,
      :boolean2 => true,
      :boolean3 => false,
      :boolean4 => true,
    }
    
    destination = {
      :array => [3, 4, 5],
      :int => 1,
      :string => 'world',
      :boolean1 => true,
      :boolean2 => false,
      :boolean3 => false,
      :boolean4 => true,
    }

    merged  = {
      :array => [1, 2, 3, 4, 5],
      :int => 9,
      :string => 'hello',
      :boolean1 => false,
      :boolean2 => true,
      :boolean3 => false,
      :boolean4 => true,
    }

    destination.deep_merge!(source)
    destination[:array].sort!

    assert_equal(merged, destination)
  end

end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
ceedling-0.25.0 test_graveyard/unit/busted/deep_merge_fix_test.rb
ceedling-0.24.0 test_graveyard/unit/busted/deep_merge_fix_test.rb
ceedling-0.22.0 test_graveyard/unit/busted/deep_merge_fix_test.rb
ceedling-0.21.0 test_graveyard/unit/busted/deep_merge_fix_test.rb
ceedling-0.20.3 test_graveyard/unit/busted/deep_merge_fix_test.rb
ceedling-0.20.2 test_graveyard/unit/busted/deep_merge_fix_test.rb