module RSpec::Mocks::VerifyingProxyMethods

def add_message_expectation(method_name, opts={}, &block)

def add_message_expectation(method_name, opts={}, &block)
  ensure_implemented(method_name)
  super
end

def add_simple_stub(method_name, *args)

def add_simple_stub(method_name, *args)
  ensure_implemented(method_name)
  super
end

def add_stub(method_name, opts={}, &implementation)

def add_stub(method_name, opts={}, &implementation)
  ensure_implemented(method_name)
  super
end

def ensure_implemented(method_name)

def ensure_implemented(method_name)
  return unless method_reference[method_name].unimplemented?
  @error_generator.raise_unimplemented_error(
    @doubled_module,
    method_name,
    @object
  )
end

def ensure_publicly_implemented(method_name, _object)

def ensure_publicly_implemented(method_name, _object)
  ensure_implemented(method_name)
  visibility = method_reference[method_name].visibility
  return if visibility == :public
  @error_generator.raise_non_public_error(method_name, visibility)
end