aboutsummaryrefslogtreecommitdiffstats
path: root/activesupport/test/ordered_hash_test.rb
diff options
context:
space:
mode:
authorPaul Mucur <mudge@mudge.name>2010-06-11 23:38:18 +0100
committerXavier Noria <fxn@hashref.com>2010-06-13 04:19:35 +0200
commit58e21a4a0d4eefc395139e88c1f184b9eaf0b4c4 (patch)
treeb1af32b1a6f57366f6f916c4ffbf516f814483f5 /activesupport/test/ordered_hash_test.rb
parenta087bc85fd24e7261ce6a6f63ffa2dbd49db567d (diff)
downloadrails-58e21a4a0d4eefc395139e88c1f184b9eaf0b4c4.tar.gz
rails-58e21a4a0d4eefc395139e88c1f184b9eaf0b4c4.tar.bz2
rails-58e21a4a0d4eefc395139e88c1f184b9eaf0b4c4.zip
Support passing a block to ActiveSupport::OrderedHash's merge and merge! [#4838 state:committed]
For better consistency with Ruby's own Hash implementation. Signed-off-by: Xavier Noria <fxn@hashref.com>
Diffstat (limited to 'activesupport/test/ordered_hash_test.rb')
-rw-r--r--activesupport/test/ordered_hash_test.rb13
1 files changed, 13 insertions, 0 deletions
diff --git a/activesupport/test/ordered_hash_test.rb b/activesupport/test/ordered_hash_test.rb
index d070206d44..66e727007a 100644
--- a/activesupport/test/ordered_hash_test.rb
+++ b/activesupport/test/ordered_hash_test.rb
@@ -142,9 +142,22 @@ class OrderedHashTest < Test::Unit::TestCase
assert_equal merged.length, @ordered_hash.length + other_hash.length
assert_equal @keys + ['purple', 'violet'], merged.keys
+ another_hash = ActiveSupport::OrderedHash.new
+ another_hash['white'] = 'ff'
+ another_hash['black'] = '00'
+ merged_with_block = @ordered_hash.merge(another_hash) do |key, old_value, new_value|
+ new_value * 3
+ end
+ assert_equal 'ffffff', merged_with_block['white']
+ assert_equal '000000', merged_with_block['black']
+
@ordered_hash.merge! other_hash
assert_equal @ordered_hash, merged
assert_equal @ordered_hash.keys, merged.keys
+
+ @ordered_hash.merge! another_hash
+ assert_equal 'ffffff', merged_with_block['white']
+ assert_equal '000000', merged_with_block['black']
end
def test_shift