Sha256: fae952a2469eca33f89aa9ecf2d40eddfc8a39bc0ca61913fa147e485fb7732d

Contents?: true

Size: 1.04 KB

Versions: 8

Compression:

Stored size: 1.04 KB

Contents

require File.dirname(__FILE__) + '/../abstract_unit'

class A
end

module X
  class B
  end
end

module Y
  module Z
    class C
    end
  end
end

class ClassTest < Test::Unit::TestCase
  def test_removing_class_in_root_namespace
    assert A.is_a?(Class)
    Class.remove_class(A)
    assert_raises(NameError) { A.is_a?(Class) }
  end

  def test_removing_class_in_one_level_namespace
    assert X::B.is_a?(Class)
    Class.remove_class(X::B)
    assert_raises(NameError) { X::B.is_a?(Class) }
  end

  def test_removing_class_in_two_level_namespace
    assert Y::Z::C.is_a?(Class)
    Class.remove_class(Y::Z::C)
    assert_raises(NameError) { Y::Z::C.is_a?(Class) }
  end
  
  def test_retrieving_subclasses
    @parent   = eval("class D; end; D")
    @sub      = eval("class E < D; end; E")
    @subofsub = eval("class F < E; end; F")
    assert @parent.subclasses.all? { |i| [@sub.to_s, @subofsub.to_s].include?(i) }
    assert_equal 2, @parent.subclasses.size
    assert_equal [@subofsub.to_s], @sub.subclasses
    assert_equal [], @subofsub.subclasses
  end
end

Version data entries

8 entries across 8 versions & 2 rubygems

Version Path
radiant-0.6.5.1 vendor/rails/activesupport/test/core_ext/class_test.rb
radiant-0.6.5 vendor/rails/activesupport/test/core_ext/class_test.rb
radiant-0.6.7 vendor/rails/activesupport/test/core_ext/class_test.rb
radiant-0.6.6 vendor/rails/activesupport/test/core_ext/class_test.rb
radiant-0.6.8 vendor/rails/activesupport/test/core_ext/class_test.rb
radiant-0.6.9 vendor/rails/activesupport/test/core_ext/class_test.rb
spree-0.0.9 vendor/rails/activesupport/test/core_ext/class_test.rb
spree-0.2.0 vendor/rails/activesupport/test/core_ext/class_test.rb