From 4db4f8c6244f017def5668d44a62bdad231f4c18 Mon Sep 17 00:00:00 2001
From: Ben Orenstein <ben.orenstein@gmail.com>
Date: Fri, 25 Mar 2011 15:48:52 -0400
Subject: Add tests for InheritableOptions.

[#6625 state:committed]

Signed-off-by: Santiago Pastorino <santiago@wyeworks.com>
---
 activesupport/test/ordered_options_test.rb | 26 ++++++++++++++++++++++++++
 1 file changed, 26 insertions(+)

(limited to 'activesupport/test')

diff --git a/activesupport/test/ordered_options_test.rb b/activesupport/test/ordered_options_test.rb
index e48425ca25..b215b60df3 100644
--- a/activesupport/test/ordered_options_test.rb
+++ b/activesupport/test/ordered_options_test.rb
@@ -50,4 +50,30 @@ class OrderedOptionsTest < Test::Unit::TestCase
     assert_equal 2, a.size
     assert_equal 56, a.else_where
   end
+
+  def test_inheritable_options_continues_lookup_in_parent
+    parent = ActiveSupport::OrderedOptions.new
+    parent[:foo] = true
+
+    child = ActiveSupport::InheritableOptions.new(parent)
+    assert child.foo
+  end
+
+  def test_inheritable_options_can_override_parent
+    parent = ActiveSupport::OrderedOptions.new
+    parent[:foo] = :bar
+
+    child = ActiveSupport::InheritableOptions.new(parent)
+    child[:foo] = :baz
+
+    assert_equal :baz, child.foo
+  end
+
+  def test_inheritable_options_inheritable_copy
+    original = ActiveSupport::InheritableOptions.new
+    copy     = original.inheritable_copy
+
+    assert copy.kind_of?(original.class)
+    assert_not_equal copy.object_id, original.object_id
+  end
 end
-- 
cgit v1.2.3