aboutsummaryrefslogtreecommitdiffstats
path: root/activesupport/test/ordered_hash_test.rb
diff options
context:
space:
mode:
authorJoshua Peek <josh@joshpeek.com>2008-05-14 12:48:37 -0500
committerJoshua Peek <josh@joshpeek.com>2008-05-14 12:48:37 -0500
commit49846f85864f4b59d5593c30ee3c59b584d2975d (patch)
tree7f746da60755000b4281ce2b2969508c116c7d3b /activesupport/test/ordered_hash_test.rb
parent7708650f73ddb4db300ea2059c60c1d907a4384e (diff)
downloadrails-49846f85864f4b59d5593c30ee3c59b584d2975d.tar.gz
rails-49846f85864f4b59d5593c30ee3c59b584d2975d.tar.bz2
rails-49846f85864f4b59d5593c30ee3c59b584d2975d.zip
Create a seperate file for ActiveSupport::OrderedHash.
Diffstat (limited to 'activesupport/test/ordered_hash_test.rb')
-rw-r--r--activesupport/test/ordered_hash_test.rb45
1 files changed, 45 insertions, 0 deletions
diff --git a/activesupport/test/ordered_hash_test.rb b/activesupport/test/ordered_hash_test.rb
new file mode 100644
index 0000000000..14be48724e
--- /dev/null
+++ b/activesupport/test/ordered_hash_test.rb
@@ -0,0 +1,45 @@
+require 'abstract_unit'
+
+class OrderedHashTest < Test::Unit::TestCase
+ def setup
+ @keys = %w( blue green red pink orange )
+ @values = %w( 000099 009900 aa0000 cc0066 cc6633 )
+ @ordered_hash = ActiveSupport::OrderedHash.new
+
+ @keys.each_with_index do |key, index|
+ @ordered_hash[key] = @values[index]
+ end
+ end
+
+ def test_order
+ assert_equal @keys, @ordered_hash.keys
+ assert_equal @values, @ordered_hash.values
+ end
+
+ def test_access
+ assert @keys.zip(@values).all? { |k, v| @ordered_hash[k] == v }
+ end
+
+ def test_assignment
+ key, value = 'purple', '5422a8'
+
+ @ordered_hash[key] = value
+ assert_equal @keys.length + 1, @ordered_hash.length
+ assert_equal key, @ordered_hash.keys.last
+ assert_equal value, @ordered_hash.values.last
+ assert_equal value, @ordered_hash[key]
+ end
+
+ def test_delete
+ key, value = 'white', 'ffffff'
+ bad_key = 'black'
+
+ @ordered_hash[key] = value
+ assert_equal @keys.length + 1, @ordered_hash.length
+
+ assert_equal value, @ordered_hash.delete(key)
+ assert_equal @keys.length, @ordered_hash.length
+
+ assert_nil @ordered_hash.delete(bad_key)
+ end
+end