Sha256: efa8869c34946284b7d980f86e96c291fa3673529a0b8fbee62336c5d72f4299

Contents?: true

Size: 1.08 KB

Versions: 8

Compression:

Stored size: 1.08 KB

Contents

require File.dirname(__FILE__) + '/../test_helper'
require 'inheritable_class_attributes'

class InheritableClassAttributesTest < Test::Unit::TestCase
  class A
    include InheritableClassAttributes
    
    cattr_inheritable_reader :reader
    @reader = :test
    
    cattr_inheritable_writer :writer
    @writer = :test
    
    cattr_inheritable_accessor :accessor
    @accessor = :test
  end
  
  def test_inheritable_reader
    assert_equal :test, A.reader
  end
  
  def test_inheritable_writer
    A.writer = :changed
    assert_equal :changed, A.module_eval(%{@writer})
  end
  
  def test_inheritable_accessor
    A.accessor = :changed
    assert_equal :changed, A.accessor
  end
  
  def test_inheritance
    A.accessor = :unchanged
    Kernel.module_eval %{ class B < A; end }
    B.accessor = :changed
    assert_equal :changed, B.accessor
    assert_equal :unchanged, A.accessor
  end
  
  def test_array_inheritance
    A.accessor = [1,2,3]
    Kernel.module_eval %{ class C < A; end }
    C.accessor << 4
    assert_equal [1,2,3,4], C.accessor
    assert_equal [1,2,3], A.accessor
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
radiant-0.5.1 test/unit/inheritable_class_attributes_test.rb
radiant-0.5.0 test/unit/inheritable_class_attributes_test.rb
radiant-0.6.0 test/unit/inheritable_class_attributes_test.rb
radiant-0.6.1 test/unit/inheritable_class_attributes_test.rb
radiant-0.5.2 test/unit/inheritable_class_attributes_test.rb
radiant-0.6.3 test/unit/inheritable_class_attributes_test.rb
radiant-0.6.2 test/unit/inheritable_class_attributes_test.rb
radiant-0.6.4 test/unit/inheritable_class_attributes_test.rb