Upgraded Rails and RSpec
[monkeycharger.git] / vendor / rails / activesupport / test / core_ext / module / attr_internal_test.rb
blob1bf831e4908061d7d90df27da9359a428131428e
1 require File.dirname(__FILE__) + '/../../abstract_unit'
3 class AttrInternalTest < Test::Unit::TestCase
4   def setup
5     @target = Class.new
6     @instance = @target.new
7   end
9   def test_reader
10     assert_nothing_raised { @target.attr_internal_reader :foo }
12     assert !@instance.instance_variable_defined?('@_foo')
13     assert_raise(NoMethodError) { @instance.foo = 1 }
15     @instance.instance_variable_set('@_foo', 1)
16     assert_nothing_raised { assert_equal 1, @instance.foo }
17   end
19   def test_writer
20     assert_nothing_raised { @target.attr_internal_writer :foo }
22     assert !@instance.instance_variable_defined?('@_foo')
23     assert_nothing_raised { assert_equal 1, @instance.foo = 1 }
25     assert_equal 1, @instance.instance_variable_get('@_foo')
26     assert_raise(NoMethodError) { @instance.foo }
27   end
29   def test_accessor
30     assert_nothing_raised { @target.attr_internal :foo }
32     assert !@instance.instance_variable_defined?('@_foo')
33     assert_nothing_raised { assert_equal 1, @instance.foo = 1 }
35     assert_equal 1, @instance.instance_variable_get('@_foo')
36     assert_nothing_raised { assert_equal 1, @instance.foo }
37   end
39   def test_naming_format
40     assert_equal '@_%s', @target.attr_internal_naming_format
41     assert_nothing_raised { @target.attr_internal_naming_format = '@abc%sdef' }
42     @target.attr_internal :foo
44     assert !@instance.instance_variable_defined?('@_foo')
45     assert !@instance.instance_variable_defined?('@abcfoodef')
46     assert_nothing_raised { @instance.foo = 1 }
47     assert !@instance.instance_variable_defined?('@_foo')
48     assert @instance.instance_variable_defined?('@abcfoodef')
49   ensure
50     @target.attr_internal_naming_format = '@_%s'
51   end
52 end