class RSpec::Bash::Mocks::ScriptMessageExpectation

Attributes

expected_args[R]
message[R]

Public Class Methods

new(double:, display_name:, error_generator:, backtrace_line: nil) click to toggle source
# File lib/rspec/bash/mocks/script_message_expectation.rb, line 11
def initialize(double:, display_name:, error_generator:, backtrace_line: nil)
  @double = double
  @display_name = display_name
  @error_generator = error_generator
  @backtrace_line = backtrace_line
  @expected_args = double.expected_calls
  @message = @display_name
end

Public Instance Methods

called_max_times?(*) click to toggle source
# File lib/rspec/bash/mocks/script_message_expectation.rb, line 26
def called_max_times?(*)
  false
end
invoke(*) click to toggle source
# File lib/rspec/bash/mocks/script_message_expectation.rb, line 20
def invoke(*)
end
matches?(*) click to toggle source
# File lib/rspec/bash/mocks/script_message_expectation.rb, line 23
def matches?(*)
end
unadvise(*) click to toggle source
# File lib/rspec/bash/mocks/script_message_expectation.rb, line 73
def unadvise(*)
end
verify_messages_received(script) click to toggle source
# File lib/rspec/bash/mocks/script_message_expectation.rb, line 30
def verify_messages_received(script)
  type, expected_count = *@double.expected_call_count
  actual_count = @double.call_count(script)

  report = lambda {
    @error_generator.raise_expectation_error(
      @display_name,
      expected_count,
      ::RSpec::Mocks::ArgumentListMatcher::MATCH_ALL,
      actual_count,
      nil,
      Array(@double.to_s),
      @backtrace_line
    )
  }

  case type
  when :at_least
    report[] if actual_count < expected_count
  when :at_most
    report[] if actual_count > expected_count
  when :exactly
    report[] if actual_count != expected_count
  else
    fail "Unrecognized call-count quantifier \"#{type}\""
  end

  @double.call_args(script).tap do |actual_args|
    @double.expected_calls.each_with_index do |args, index|
      expected = args
      actual = actual_args[index]

      if actual != expected
        @error_generator.raise_unexpected_message_args_error(
          self,
          actual_args.map { |x| Array(x) },
        )
        break
      end
    end
  end
end