aboutsummaryrefslogtreecommitdiffstats
path: root/activesupport/test/core_ext/module_test.rb
blob: 3d11f1001fad4f8fdc0567491cd0354de73ca63c (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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
require 'test/unit'
require File.dirname(__FILE__) + '/../../lib/active_support/core_ext/class'
require File.dirname(__FILE__) + '/../../lib/active_support/core_ext/module'

module One
end

class Ab
  include One
end

module Xy
  class Bc
    include One
  end
end

module Yz
  module Zy
    class Cd
      include One
    end
  end
end

class De
end

class ModuleTest < Test::Unit::TestCase
  def test_included_in_classes
    assert One.included_in_classes.include?(Ab)
    assert One.included_in_classes.include?(Xy::Bc)
    assert One.included_in_classes.include?(Yz::Zy::Cd)
    assert !One.included_in_classes.include?(De)
  end

  def test_remove_classes_including
    assert Ab.is_a?(Class)
    assert Xy::Bc.is_a?(Class)
    assert Yz::Zy::Cd.is_a?(Class)
    assert De.is_a?(Class)

    One.remove_classes_including

    assert_raises(NameError) { Ae.is_a?(Class) }
    assert_raises(NameError) { Xy::Bc.is_a?(Class) }
    assert_raises(NameError) { Yz::Zy::Cd.is_a?(Class) }
    
    assert De.is_a?(Class)
  end
end