Sha256: 18007e549b436c871a10e572efe65177db8125808cd7c085ab41c0f684a3ab6a

Contents?: true

Size: 1.35 KB

Versions: 15

Compression:

Stored size: 1.35 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

15 entries across 15 versions & 1 rubygems

Version Path
ceedling-0.19.0 test_graveyard/unit/busted/deep_merge_fix_test.rb
ceedling-0.18.0 test_graveyard/unit/busted/deep_merge_fix_test.rb
ceedling-0.17.0 test_graveyard/unit/busted/deep_merge_fix_test.rb
ceedling-0.16.0 test_graveyard/unit/busted/deep_merge_fix_test.rb
ceedling-0.15.6 test_graveyard/unit/busted/deep_merge_fix_test.rb
ceedling-0.15.5 test_graveyard/unit/busted/deep_merge_fix_test.rb
ceedling-0.15.4 test_graveyard/unit/busted/deep_merge_fix_test.rb
ceedling-0.15.3 test_graveyard/unit/busted/deep_merge_fix_test.rb
ceedling-0.15.2 test_graveyard/unit/busted/deep_merge_fix_test.rb
ceedling-0.15.1 test_graveyard/unit/busted/deep_merge_fix_test.rb
ceedling-0.15.0 test_graveyard/unit/busted/deep_merge_fix_test.rb
ceedling-0.13.0 test_graveyard/unit/busted/deep_merge_fix_test.rb
ceedling-0.13.0.rc1 test_graveyard/unit/busted/deep_merge_fix_test.rb
ceedling-0.0.2 new_project_template/vendor/ceedling/test/unit/busted/deep_merge_fix_test.rb
ceedling-0.0.1 new_project_template/vendor/ceedling/test/unit/busted/deep_merge_fix_test.rb