test/unit/class_method_test.rb in mocha-0.10.3 vs test/unit/class_method_test.rb in mocha-0.10.4

- old
+ new

@@ -181,15 +181,33 @@ def test_should_call_mocha_unstub klass = Class.new { def self.method_x; end } method = ClassMethod.new(klass, :method_x) method.replace_instance_method(:restore_original_method) { } mocha = Class.new { class << self; attr_accessor :unstub_method; end; def self.unstub(method); self.unstub_method = method; end; } + mocha.define_instance_method(:any_expectations?) { true } method.replace_instance_method(:mock) { mocha } method.unstub assert_equal mocha.unstub_method, :method_x end - + + def test_should_call_stubbee_reset_mocha_if_no_expectations_remaining + klass = Class.new { def self.method_x; end } + method = ClassMethod.new(klass, :method_x) + method.replace_instance_method(:remove_new_method) { } + method.replace_instance_method(:restore_original_method) { } + mocha = Class.new + mocha.define_instance_method(:unstub) { } + mocha.define_instance_method(:any_expectations?) { false } + method.replace_instance_method(:mock) { mocha } + stubbee = Class.new { attr_accessor :reset_mocha_called; def reset_mocha; self.reset_mocha_called = true; end; }.new + method.replace_instance_method(:stubbee) { stubbee } + + method.unstub + + assert stubbee.reset_mocha_called + end + def test_should_return_mock_for_stubbee mocha = Object.new stubbee = Object.new stubbee.define_instance_accessor(:mocha) { mocha } stubbee.mocha = nil