class Bogus::HaveReceivedMatcher

Constants

NO_SHADOW

Public Instance Methods

build(*args) click to toggle source
# File lib/bogus/stubbing/have_received_matcher.rb, line 40
def build(*args)
  return method_call if args.empty?
  set_method(*args)
end
description() click to toggle source
# File lib/bogus/stubbing/have_received_matcher.rb, line 20
def description
  "have received #{call_str(@name, @args)}"
end
failure_message() click to toggle source
# File lib/bogus/stubbing/have_received_matcher.rb, line 24
def failure_message
  return NO_SHADOW unless Shadow.has_shadow?(@subject)
  %Q{Expected #{@subject.inspect} to #{description}, but it didn't.\n\n} + all_calls_str
end
Also aliased as: failure_message_for_should
failure_message_for_should()
Alias for: failure_message
failure_message_for_should_not()
failure_message_when_negated() click to toggle source
# File lib/bogus/stubbing/have_received_matcher.rb, line 30
def failure_message_when_negated
  return NO_SHADOW unless Shadow.has_shadow?(@subject)
  %Q{Expected #{@subject.inspect} not to #{description}, but it did.}
end
matches?(subject) click to toggle source
# File lib/bogus/stubbing/have_received_matcher.rb, line 10
def matches?(subject)
  @subject = subject
  return false unless Shadow.has_shadow?(subject)

  verifies_stub_definition.verify!(subject, @name, @args)
  records_double_interactions.record(subject, @name, @args)

  subject.__shadow__.has_received(@name, @args)
end
method_call() click to toggle source
# File lib/bogus/stubbing/have_received_matcher.rb, line 36
def method_call
  proxy(:set_method)
end
set_method(name, *args, &block) click to toggle source
# File lib/bogus/stubbing/have_received_matcher.rb, line 45
def set_method(name, *args, &block)
  @name = name
  @args = args
  self
end

Private Instance Methods

all_calls_str() click to toggle source
# File lib/bogus/stubbing/have_received_matcher.rb, line 57
def all_calls_str
  shadow = @subject.__shadow__
  calls = shadow.calls.map{|i| call_str(i.method, i.args)}

  if calls.any?
    message = "The recorded interactions were:\n"
    calls.each{|s| message << "  - #{s}\n"}
    message
  else
    "There were no interactions with this object.\n"
  end
end
call_str(method, args) click to toggle source
# File lib/bogus/stubbing/have_received_matcher.rb, line 53
def call_str(method, args)
  "#{method}(#{args.map(&:inspect).join(', ')})"
end