Sha256: b829244cc2d3bf6c666c7d3cea26449601fabcc04c15b33c28b3e5015e32c51a

Contents?: true

Size: 1.86 KB

Versions: 9

Compression:

Stored size: 1.86 KB

Contents

require 'test/unit'

require 'nano/module/attr'
require 'nano/module/attr_reader'
require 'nano/module/attr_writer'
require 'nano/module/attr_accessor'
require 'nano/module/attr_setter'
require 'nano/module/attr_checker'
require 'nano/module/attr_key'
require 'nano/module/attr_sort'
# TODO
require 'nano/module/iattr'
require 'nano/module/iattr_reader'
require 'nano/module/iattr_writer'
require 'nano/module/iattr_accessor'
require 'nano/module/iattr_setter'
require 'nano/module/iattr_checker'

# fixture

class C
  attr :a, :a=
  attr :b?, :b=
  attr :c, true
  attr :d, :e, true

  @@ar = attr_reader( :ar )
  @@aw = attr_writer( :aw )
  @@aa = attr_accessor( :aa )

  def self.ar ; @@ar ; end
  def self.aw ; @@aw ; end
  def self.aa ; @@aa ; end

  attr_checker :t
  attr_setter :s
end

# test

class TC_Attr < Test::Unit::TestCase

  def setup
    @c = C.new
  end

  # attr

  def test_attr_1
    assert_nothing_raised{ @c.a = 10 }
    assert_equal( 10, @c.a )
  end

  def test_attr_2
    assert_nothing_raised{ @c.b = "1" }
    assert( @c.b? )
  end

  def test_attr_3
    assert_nothing_raised{ @c.c = 20 }
    assert_equal( 20, @c.c )
  end

  def test_attr_4
    assert_nothing_raised{ @c.d = 30 }
    assert_equal( 30, @c.d )
    assert_nothing_raised{ @c.e = 40 }
    assert_equal( 40, @c.e )
  end

  # attr_checker

  def test_attr_checker
    assert_equal( nil, @c.t? )
    @c.instance_eval { @t = false }
    assert_equal( false, @c.t? )
    @c.instance_eval { @t = true }
    assert_equal( true, @c.t? )
  end

  # attr_setter

  def test_attr_setter
    assert_equal( @c, @c.s(10) )
    assert_equal( 10, @c.s )
  end

  # attr_reader

  def test_attr_reader
    assert_equal( [ :ar ], C.ar )
  end

  # attr_writer

  def test_attr_writer
    assert_equal( [ :aw= ], C.aw )
  end

  # attr_accessor

  def test_attr_accessor
    assert_equal( [ :aa, :aa= ], C.aa )
  end

end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
facets-1.4.1 forge/core/module/tc_attr.rb
facets-1.4.2 forge/core/module/tc_attr.rb
facets-1.4.3 forge/core/module/tc_attr.rb
facets-1.4.5 snip/core/module/tc_attr.rb
facets-1.4.4 forge/core/module/tc_attr.rb
facets-1.8.20 work/core/module/tc_attr.rb
facets-1.8.49 work/core/module/tc_attr.rb
facets-1.8.0 work/core/module/tc_attr.rb
facets-1.8.8 work/core/module/tc_attr.rb