diff options
author | Rafael Mendonça França <rafaelmfranca@gmail.com> | 2012-10-12 14:29:11 -0700 |
---|---|---|
committer | Rafael Mendonça França <rafaelmfranca@gmail.com> | 2012-10-12 14:29:11 -0700 |
commit | e68b97a4b65787711e50aa1565b4dd0077a00d6d (patch) | |
tree | 229a43700512aed4a8713c09afac293622951f89 /activesupport/test/core_ext | |
parent | 3e75369b7263a0ec09c45dd1371b1641797e9604 (diff) | |
parent | a4b11961630febd556c962b788b11c0ed5bedb45 (diff) | |
download | rails-e68b97a4b65787711e50aa1565b4dd0077a00d6d.tar.gz rails-e68b97a4b65787711e50aa1565b4dd0077a00d6d.tar.bz2 rails-e68b97a4b65787711e50aa1565b4dd0077a00d6d.zip |
Merge pull request #7007 from Mik-die/hash_extract
make Hash#extract! more symmetric with Hash#slice
Diffstat (limited to 'activesupport/test/core_ext')
-rw-r--r-- | activesupport/test/core_ext/hash_ext_test.rb | 26 |
1 files changed, 25 insertions, 1 deletions
diff --git a/activesupport/test/core_ext/hash_ext_test.rb b/activesupport/test/core_ext/hash_ext_test.rb index 53ea2aad16..b208767490 100644 --- a/activesupport/test/core_ext/hash_ext_test.rb +++ b/activesupport/test/core_ext/hash_ext_test.rb @@ -723,8 +723,32 @@ class HashExtTest < ActiveSupport::TestCase def test_extract original = {:a => 1, :b => 2, :c => 3, :d => 4} expected = {:a => 1, :b => 2} + remaining = {:c => 3, :d => 4} - assert_equal expected, original.extract!(:a, :b) + assert_equal expected, original.extract!(:a, :b, :x) + assert_equal remaining, original + end + + def test_extract_nils + original = {:a => nil, :b => nil} + expected = {:a => nil} + extracted = original.extract!(:a, :x) + + assert_equal expected, extracted + assert_equal nil, extracted[:a] + assert_equal nil, extracted[:x] + end + + def test_indifferent_extract + original = {:a => 1, 'b' => 2, :c => 3, 'd' => 4}.with_indifferent_access + expected = {:a => 1, :b => 2}.with_indifferent_access + remaining = {:c => 3, :d => 4}.with_indifferent_access + + [['a', 'b'], [:a, :b]].each do |keys| + copy = original.dup + assert_equal expected, copy.extract!(*keys) + assert_equal remaining, copy + end end def test_except |