aboutsummaryrefslogtreecommitdiffstats
path: root/activesupport/test/core_ext/module/attr_accessor_with_default.rb
blob: 8ae52ad17a141b1bc77ead2e6c186e5f3494bffa (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
require File.dirname(__FILE__) + '/../../abstract_unit'

class AttrWithDefaultTest < Test::Unit::TestCase
  def setup
    @target = Class.new do
      def helper
        'helper'
      end
    end  
    @instance = @target.new
  end
  
  def test_default_arg
    @target.attr_accessor_with_default :foo, :bar
    assert_equal(:bar, @instance.foo)
    @instance.foo = nil
    assert_nil(@instance.foo)
  end
  
  def test_default_proc
    @target.attr_accessor_with_default(:foo) {helper.upcase}
    assert_equal('HELPER', @instance.foo)
    @instance.foo = nil
    assert_nil(@instance.foo)
  end
  
  def test_invalid_args
    assert_raise(RuntimeError) {@target.attr_accessor_with_default :foo}
  end
end