2004-11-23 20:04:44 -05:00
|
|
|
require 'test/unit'
|
2005-10-19 18:53:55 -04:00
|
|
|
require 'abstract_unit'
|
2006-01-28 19:37:39 -05:00
|
|
|
require 'active_support/core_ext/class/inheritable_attributes'
|
2004-11-23 20:04:44 -05:00
|
|
|
|
|
|
|
class A
|
|
|
|
include ClassInheritableAttributes
|
|
|
|
end
|
|
|
|
|
|
|
|
class B < A
|
|
|
|
write_inheritable_array "first", [ :one, :two ]
|
|
|
|
end
|
|
|
|
|
|
|
|
class C < A
|
|
|
|
write_inheritable_array "first", [ :three ]
|
|
|
|
end
|
|
|
|
|
|
|
|
class D < B
|
|
|
|
write_inheritable_array "first", [ :four ]
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
class ClassInheritableAttributesTest < Test::Unit::TestCase
|
|
|
|
def test_first_level
|
|
|
|
assert_equal [ :one, :two ], B.read_inheritable_attribute("first")
|
|
|
|
assert_equal [ :three ], C.read_inheritable_attribute("first")
|
|
|
|
end
|
|
|
|
|
|
|
|
def test_second_level
|
|
|
|
assert_equal [ :one, :two, :four ], D.read_inheritable_attribute("first")
|
|
|
|
assert_equal [ :one, :two ], B.read_inheritable_attribute("first")
|
|
|
|
end
|
2005-10-19 18:53:55 -04:00
|
|
|
end
|