1require File.expand_path '../xref_test_case', __FILE__ 2 3class TestRDocExtend < XrefTestCase 4 5 def setup 6 super 7 8 @ext = RDoc::Extend.new 'M1', 'comment' 9 @ext.parent = @m1 10 @ext.store = @store 11 end 12 13 def test_module 14 assert_equal @m1, @ext.module 15 assert_equal 'Unknown', RDoc::Extend.new('Unknown', 'comment').module 16 end 17 18 def test_module_extended 19 m1 = @xref_data.add_module RDoc::NormalModule, 'Mod1' 20 m1.add_module RDoc::NormalModule, 'Mod3' 21 m1_m2 = m1.add_module RDoc::NormalModule, 'Mod2' 22 m1_m2_m3 = m1_m2.add_module RDoc::NormalModule, 'Mod3' 23 m1_m2_m3.add_module RDoc::NormalModule, 'Mod4' 24 m1_m2.add_module RDoc::NormalModule, 'Mod4' 25 m1_m2_k0 = m1_m2.add_class RDoc::NormalClass, 'Klass0' 26 m1_m2_k0_m4 = m1_m2_k0.add_module RDoc::NormalModule, 'Mod4' 27 m1_m2_k0_m4.add_module RDoc::NormalModule, 'Mod6' 28 m1_m2_k0.add_module RDoc::NormalModule, 'Mod5' 29 30 e0_m4 = RDoc::Extend.new 'Mod4', nil 31 e0_m5 = RDoc::Extend.new 'Mod5', nil 32 e0_m6 = RDoc::Extend.new 'Mod6', nil 33 e0_m1 = RDoc::Extend.new 'Mod1', nil 34 e0_m2 = RDoc::Extend.new 'Mod2', nil 35 e0_m3 = RDoc::Extend.new 'Mod3', nil 36 37 m1_m2_k0.add_extend e0_m4 38 m1_m2_k0.add_extend e0_m5 39 m1_m2_k0.add_extend e0_m6 40 m1_m2_k0.add_extend e0_m1 41 m1_m2_k0.add_extend e0_m2 42 m1_m2_k0.add_extend e0_m3 43 44 assert_equal [e0_m4, e0_m5, e0_m6, e0_m1, e0_m2, e0_m3], m1_m2_k0.extends 45 assert_equal ['Object'], m1_m2_k0.ancestors 46 47 m1_k1 = m1.add_class RDoc::NormalClass, 'Klass1' 48 49 e1_m1 = RDoc::Extend.new 'Mod1', nil 50 e1_m2 = RDoc::Extend.new 'Mod2', nil 51 e1_m3 = RDoc::Extend.new 'Mod3', nil 52 e1_m4 = RDoc::Extend.new 'Mod4', nil 53 e1_k0_m4 = RDoc::Extend.new 'Klass0::Mod4', nil 54 55 m1_k1.add_extend e1_m1 56 m1_k1.add_extend e1_m2 57 m1_k1.add_extend e1_m3 58 m1_k1.add_extend e1_m4 59 m1_k1.add_extend e1_k0_m4 60 61 assert_equal [e1_m1, e1_m2, e1_m3, e1_m4, e1_k0_m4], m1_k1.extends 62 assert_equal ['Object'], m1_k1.ancestors 63 64 m1_k2 = m1.add_class RDoc::NormalClass, 'Klass2' 65 66 e2_m1 = RDoc::Extend.new 'Mod1', nil 67 e2_m2 = RDoc::Extend.new 'Mod2', nil 68 e2_m3 = RDoc::Extend.new 'Mod3', nil 69 e2_k0_m4 = RDoc::Extend.new 'Klass0::Mod4', nil 70 71 m1_k2.add_extend e2_m1 72 m1_k2.add_extend e2_m3 73 m1_k2.add_extend e2_m2 74 m1_k2.add_extend e2_k0_m4 75 76 assert_equal [e2_m1, e2_m3, e2_m2, e2_k0_m4], m1_k2.extends 77 assert_equal ['Object'], m1_k2.ancestors 78 79 m1_k3 = m1.add_class RDoc::NormalClass, 'Klass3' 80 81 e3_m1 = RDoc::Extend.new 'Mod1', nil 82 e3_m2 = RDoc::Extend.new 'Mod2', nil 83 e3_m4 = RDoc::Extend.new 'Mod4', nil 84 85 m1_k3.add_extend e3_m1 86 m1_k3.add_extend e3_m2 87 m1_k3.add_extend e3_m4 88 89 assert_equal [e3_m1, e3_m2, e3_m4], m1_k3.extends 90 assert_equal ['Object'], m1_k3.ancestors 91 end 92 93end 94 95