From 03ed3bde9af8fab61476f506eab146d9e387c38b Mon Sep 17 00:00:00 2001 From: nobu Date: Fri, 16 May 2008 08:08:06 +0000 Subject: [PATCH] * test/ruby/test_module.rb (assert_method_defined?): added. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16436 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- test/ruby/test_module.rb | 58 +++++++++++++++++++++++++++++++++++----- 1 file changed, 52 insertions(+), 6 deletions(-) diff --git a/test/ruby/test_module.rb b/test/ruby/test_module.rb index 8baf15aa56..6b5a6be533 100644 --- a/test/ruby/test_module.rb +++ b/test/ruby/test_module.rb @@ -5,6 +5,22 @@ require_relative 'envutil' $m0 = Module.nesting class TestModule < Test::Unit::TestCase + def assert_method_defined?(klass, mid, message="") + message = build_message(message, "#{klass}\##{mid} expected to be defined.") + _wrap_assertion do + klass.method_defined?(mid) or + raise Test::Unit::AssertionFailedError, message, caller(3) + end + end + + def assert_method_not_defined?(klass, mid, message="") + message = build_message(message, "#{klass}\##{mid} expected to not be defined.") + _wrap_assertion do + klass.method_defined?(mid) and + raise Test::Unit::AssertionFailedError, message, caller(3) + end + end + def setup @verbose = $VERBOSE $VERBOSE = nil @@ -245,12 +261,42 @@ class TestModule < Test::Unit::TestCase end def test_method_defined? - assert(!User.method_defined?(:wombat)) - assert(User.method_defined?(:user)) - assert(User.method_defined?(:mixin)) - assert(!User.method_defined?(:wombat)) - assert(User.method_defined?(:user)) - assert(User.method_defined?(:mixin)) + assert_method_not_defined?(User, :wombat) + assert_method_defined?(User, :user) + assert_method_defined?(User, :mixin) + assert_method_not_defined?(User, :wombat) + assert_method_defined?(User, :user) + assert_method_defined?(User, :mixin) + end + + def module_exec_aux + Proc.new do + def dynamically_added_method_3; end + end + end + def module_exec_aux_2(&block) + User.module_exec(&block) + end + + def test_module_exec + User.module_exec do + def dynamically_added_method_1; end + end + assert_method_defined?(User, :dynamically_added_method_1) + + block = Proc.new do + def dynamically_added_method_2; end + end + User.module_exec(&block) + assert_method_defined?(User, :dynamically_added_method_2) + + User.module_exec(&module_exec_aux) + assert_method_defined?(User, :dynamically_added_method_3) + + module_exec_aux_2 do + def dynamically_added_method_4; end + end + assert_method_defined?(User, :dynamically_added_method_4) end def test_module_eval