diff options
Diffstat (limited to 'test/t/module.rb')
| -rw-r--r-- | test/t/module.rb | 101 |
1 files changed, 99 insertions, 2 deletions
diff --git a/test/t/module.rb b/test/t/module.rb index 854be75a5..5b847e8b7 100644 --- a/test/t/module.rb +++ b/test/t/module.rb @@ -5,6 +5,103 @@ assert('Module', '15.2.2') do Module.class == Class end -# TODO not implemented ATM assert('Module.constants', '15.2.2') do +assert('Module superclass', '15.2.2.2') do + Module.superclass == Object +end + +# TODO not implemented ATM assert('Module.constants', '15.2.2.3.1') do + +# TODO not implemented ATM assert('Module.nesting', '15.2.2.3.2') do + +assert('Module#ancestors', '15.2.2.4.9') do + r = String.ancestors + r.class == Array and r.include?(String) and r.include?(Object) +end + +assert('Module#append_features', '15.2.2.4.10') do + module Test4AppendFeatures + def self.append_features(mod) + Test4AppendFeatures2.const_set(:Const4AppendFeatures2, mod) + end + end + module Test4AppendFeatures2 + include Test4AppendFeatures + end + + Test4AppendFeatures2.const_get(:Const4AppendFeatures2) == Test4AppendFeatures2 +end + +assert('Module#const_defined?', '15.2.2.4.20') do + module Test4ConstDefined + Const4Test4ConstDefined = true + end + + Test4ConstDefined.const_defined?(:Const4Test4ConstDefined) and + not Test4ConstDefined.const_defined?(:NotExisting) +end + +assert('Module#const_get', '15.2.2.4.21') do + module Test4ConstGet + Const4Test4ConstGet = 42 + end + + Test4ConstGet.const_get(:Const4Test4ConstGet) == 42 +end + +assert('Module.const_missing', '15.2.2.4.22') do + e1 = nil -# TODO not implemented ATM assert('Module.nesting', '15.2.2') do + module Test4ConstMissing + def self.const_missing(sym) + 42 # the answer to everything + end + end + + Test4ConstMissing.const_get(:ConstDoesntExist) == 42 +end + +assert('Module#const_get', '15.2.2.4.23') do + module Test4ConstSet + Const4Test4ConstSet = 42 + end + + Test4ConstSet.const_set(:Const4Test4ConstSet, 23) + Test4ConstSet.const_get(:Const4Test4ConstSet) == 23 +end + +assert('Module#include', '15.2.2.4.27') do + module Test4Include + Const4Include = 42 + end + module Test4Include2 + include Test4Include + end + + Test4Include2.const_get(:Const4Include) == 42 +end + +assert('Module#included', '15.2.2.4.29') do + module Test4Included + Const4Included = 42 + def self.included mod + Test4Included.const_set(:Const4Included2, mod) + end + end + module Test4Included2 + include Test4Included + end + + Test4Included2.const_get(:Const4Included) == 42 and + Test4Included2.const_get(:Const4Included2) == Test4Included2 +end + +assert('Module#included_modules', '15.2.2.4.30') do + module Test4includedModules + end + module Test4includedModules2 + include Test4includedModules + end + + r = Test4includedModules2.included_modules + r.class == Array and r.include?(Test4includedModules) +end |
