aboutsummaryrefslogtreecommitdiffstats
path: root/activesupport/test
diff options
context:
space:
mode:
authorMark McSpadden <markmcspadden@gmail.com>2012-05-10 16:05:19 -0500
committerMark McSpadden <markmcspadden@gmail.com>2012-05-23 09:08:04 -0500
commit6ff887321b930197a8d62ddd0fc1dcb965ccda29 (patch)
treed27cdae39be7aa69ecaf9e918ecff176a51be268 /activesupport/test
parenta6d0e3795790c85dded4f2c396277214508dbc89 (diff)
downloadrails-6ff887321b930197a8d62ddd0fc1dcb965ccda29.tar.gz
rails-6ff887321b930197a8d62ddd0fc1dcb965ccda29.tar.bz2
rails-6ff887321b930197a8d62ddd0fc1dcb965ccda29.zip
Add Hash#transform_keys and Hash#transform_keys! and refactor *_keys methods to use them.
Diffstat (limited to 'activesupport/test')
-rw-r--r--activesupport/test/core_ext/hash_ext_test.rb15
1 files changed, 15 insertions, 0 deletions
diff --git a/activesupport/test/core_ext/hash_ext_test.rb b/activesupport/test/core_ext/hash_ext_test.rb
index 0b0e7da4a5..b13ee4c9ff 100644
--- a/activesupport/test/core_ext/hash_ext_test.rb
+++ b/activesupport/test/core_ext/hash_ext_test.rb
@@ -28,10 +28,13 @@ class HashExtTest < ActiveSupport::TestCase
@mixed = { :a => 1, 'b' => 2 }
@fixnums = { 0 => 1, 1 => 2 }
@illegal_symbols = { [] => 3 }
+ @upcase_strings = { 'A' => 1, 'B' => 2 }
end
def test_methods
h = {}
+ assert_respond_to h, :transform_keys
+ assert_respond_to h, :transform_keys!
assert_respond_to h, :symbolize_keys
assert_respond_to h, :symbolize_keys!
assert_respond_to h, :stringify_keys
@@ -40,6 +43,18 @@ class HashExtTest < ActiveSupport::TestCase
assert_respond_to h, :to_options!
end
+ def test_transform_keys
+ assert_equal @upcase_strings, @strings.transform_keys{ |key| key.to_s.upcase }
+ assert_equal @upcase_strings, @symbols.transform_keys{ |key| key.to_s.upcase }
+ assert_equal @upcase_strings, @mixed.transform_keys{ |key| key.to_s.upcase }
+ end
+
+ def test_transform_keys!
+ assert_equal @upcase_strings, @symbols.dup.transform_keys!{ |key| key.to_s.upcase }
+ assert_equal @upcase_strings, @strings.dup.transform_keys!{ |key| key.to_s.upcase }
+ assert_equal @upcase_strings, @mixed.dup.transform_keys!{ |key| key.to_s.upcase }
+ end
+
def test_symbolize_keys
assert_equal @symbols, @symbols.symbolize_keys
assert_equal @symbols, @strings.symbolize_keys