aboutsummaryrefslogblamecommitdiffstats
path: root/activesupport/test/core_ext/module/attr_accessor_with_default_test.rb
blob: 0ecd16b051d4fa63008ef00215b23d52081201e6 (plain) (tree)
1
2
3
4
5
6
7
8
9
                       
                                                                   
 
                                                           




                          
       

                           
 
                      


                                                   



                                     
 
                       


                                                              



                                         
 
                       




                                               
     
   
require 'abstract_unit'
require 'active_support/core_ext/module/attr_accessor_with_default'

class AttrAccessorWithDefaultTest < ActiveSupport::TestCase
  def setup
    @target = Class.new do
      def helper
        'helper'
      end
    end
    @instance = @target.new
  end

  def test_default_arg
    assert_deprecated do
      @target.attr_accessor_with_default :foo, :bar
    end
    assert_equal(:bar, @instance.foo)
    @instance.foo = nil
    assert_nil(@instance.foo)
  end

  def test_default_proc
    assert_deprecated do
      @target.attr_accessor_with_default(:foo) {helper.upcase}
    end
    assert_equal('HELPER', @instance.foo)
    @instance.foo = nil
    assert_nil(@instance.foo)
  end

  def test_invalid_args
    assert_raise(ArgumentError) do
      assert_deprecated do
        @target.attr_accessor_with_default :foo
      end
    end
  end
end