class Mocha::ParameterMatchers::Includes
Parameter matcher which matches when actual parameter includes expected values.
Public Class Methods
new(*items)
click to toggle source
@private
# File lib/mocha/parameter_matchers/includes.rb, line 70 def initialize(*items) @items = items end
Public Instance Methods
matches?(available_parameters)
click to toggle source
@private rubocop:disable Metrics/PerceivedComplexity
# File lib/mocha/parameter_matchers/includes.rb, line 76 def matches?(available_parameters) parameter = available_parameters.shift return false unless parameter.respond_to?(:include?) if @items.size == 1 # rubocop:disable Style/GuardClause if parameter.respond_to?(:any?) && !parameter.is_a?(String) parameter = parameter.keys if parameter.is_a?(Hash) return parameter.any? { |p| @items.first.to_matcher.matches?([p]) } else return parameter.include?(@items.first) end # rubocop:enable Style/GuardClause else includes_matchers = @items.map { |item| Includes.new(item) } AllOf.new(*includes_matchers).matches?([parameter]) end end
mocha_inspect()
click to toggle source
@private
# File lib/mocha/parameter_matchers/includes.rb, line 96 def mocha_inspect item_descriptions = @items.map(&:mocha_inspect) "includes(#{item_descriptions.join(', ')})" end