class WebMock::RequestExecutionVerifier

Attributes

at_least_times_executed[RW]
at_most_times_executed[RW]
expected_times_executed[RW]
request_pattern[RW]
times_executed[RW]

Public Class Methods

executed_requests_message() click to toggle source
# File lib/webmock/request_execution_verifier.rb, line 48
def self.executed_requests_message
  "\n\nThe following requests were made:\n\n#{RequestRegistry.instance}\n" + "="*60
end
new(request_pattern = nil, expected_times_executed = nil, at_least_times_executed = nil, at_most_times_executed = nil) click to toggle source
# File lib/webmock/request_execution_verifier.rb, line 6
def initialize(request_pattern = nil, expected_times_executed = nil, at_least_times_executed = nil, at_most_times_executed = nil)
  @request_pattern = request_pattern
  @expected_times_executed = expected_times_executed
  @at_least_times_executed = at_least_times_executed
  @at_most_times_executed = at_most_times_executed
end

Public Instance Methods

description() click to toggle source
# File lib/webmock/request_execution_verifier.rb, line 36
def description
  "request #{request_pattern} #{quantity_phrase.strip}"
end
does_not_match?() click to toggle source
# File lib/webmock/request_execution_verifier.rb, line 26
def does_not_match?
  @times_executed =
  RequestRegistry.instance.times_executed(@request_pattern)
  if @expected_times_executed
    @times_executed != @expected_times_executed
  else
    @times_executed == 0
  end
end
failure_message() click to toggle source
# File lib/webmock/request_execution_verifier.rb, line 40
def failure_message
  failure_message_phrase(false)
end
failure_message_when_negated() click to toggle source
# File lib/webmock/request_execution_verifier.rb, line 44
def failure_message_when_negated
  failure_message_phrase(true)
end
matches?() click to toggle source
# File lib/webmock/request_execution_verifier.rb, line 13
def matches?
  @times_executed =
    RequestRegistry.instance.times_executed(@request_pattern)

  if @at_least_times_executed
    @times_executed >= @at_least_times_executed
  elsif @at_most_times_executed
    @times_executed <= @at_most_times_executed
  else
    @times_executed == (@expected_times_executed || 1)
  end
end

Private Instance Methods

failure_message_phrase(is_negated=false) click to toggle source
# File lib/webmock/request_execution_verifier.rb, line 54
def failure_message_phrase(is_negated=false)
  negation = is_negated ? "was not" : "was"
  "The request #{request_pattern} #{negation} expected to execute #{quantity_phrase(is_negated)}but it executed #{times(times_executed)}" +
    self.class.executed_requests_message
end
quantity_phrase(is_negated=false) click to toggle source
# File lib/webmock/request_execution_verifier.rb, line 60
def quantity_phrase(is_negated=false)
  if @at_least_times_executed
    "at least #{times(@at_least_times_executed)} "
  elsif @at_most_times_executed
    "at most #{times(@at_most_times_executed)} "
  elsif @expected_times_executed
    "#{times(@expected_times_executed)} "
  else
    is_negated ? "" : "#{times(1)} "
  end
end
times(times) click to toggle source
# File lib/webmock/request_execution_verifier.rb, line 72
def times(times)
  "#{times} time#{ (times == 1) ? '' : 's'}"
end