class Mocha::ParameterMatchers::HasKeys

Parameter matcher which matches when actual parameter contains Hash with all expected keys.

Public Class Methods

new(*keys) click to toggle source

@private

# File lib/mocha/parameter_matchers/has_keys.rb, line 31
def initialize(*keys)
  raise ArgumentError, 'No arguments. Expecting at least one.' if keys.empty?

  @keys = keys
end

Public Instance Methods

matches?(available_parameters) click to toggle source

@private

# File lib/mocha/parameter_matchers/has_keys.rb, line 38
def matches?(available_parameters)
  parameter = available_parameters.shift
  return false unless parameter.respond_to?(:keys)

  @keys.map(&:to_matcher).all? do |matcher|
    parameter.keys.any? { |key| matcher.matches?([key]) }
  end
end
mocha_inspect() click to toggle source

@private

# File lib/mocha/parameter_matchers/has_keys.rb, line 48
def mocha_inspect
  "has_keys(#{@keys.mocha_inspect(false)})"
end