class RSpec::Mocks::VerifyingMethodDouble

@private

Public Class Methods

new(object, method_name, proxy, method_reference) click to toggle source
Calls superclass method RSpec::Mocks::MethodDouble.new
# File lib/rspec/mocks/verifying_proxy.rb, line 112
def initialize(object, method_name, proxy, method_reference)
  super(object, method_name, proxy)
  @method_reference = method_reference
end

Public Instance Methods

add_expectation(*args, &block) click to toggle source
# File lib/rspec/mocks/verifying_proxy.rb, line 121
def add_expectation(*args, &block)
  # explict params necessary for 1.8.7 see #626
  super(*args, &block).tap { |x| x.method_reference = @method_reference }
end
message_expectation_class() click to toggle source
# File lib/rspec/mocks/verifying_proxy.rb, line 117
def message_expectation_class
  VerifyingMessageExpectation
end
proxy_method_invoked(obj, *args, &block) click to toggle source
# File lib/rspec/mocks/verifying_proxy.rb, line 126
def proxy_method_invoked(obj, *args, &block)
  validate_arguments!(args)
  super
end

Private Instance Methods

validate_arguments!(actual_args) click to toggle source
# File lib/rspec/mocks/verifying_proxy.rb, line 133
def validate_arguments!(actual_args)
  @method_reference.with_signature do |signature|
    verifier = Support::MethodSignatureVerifier.new(signature, actual_args)
    unless verifier.valid?
      raise ArgumentError, verifier.error_message
    end
  end
end