Class: HammerCLIForeman::Testing::APIExpectations::APICallMatcher

Inherits:
Mocha::ParameterMatchers::Base
  • Object
show all
Defined in:
lib/hammer_cli_foreman/testing/api_expectations.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(resource = nil, action = nil, &block) ⇒ APICallMatcher

Returns a new instance of APICallMatcher.



12
13
14
15
16
17
# File 'lib/hammer_cli_foreman/testing/api_expectations.rb', line 12

def initialize(resource=nil, action=nil, &block)
  @expected_resource = resource
  @expected_action = action
  @block = block
  @expected_params = {}
end

Instance Attribute Details

#blockObject

Returns the value of attribute block.



10
11
12
# File 'lib/hammer_cli_foreman/testing/api_expectations.rb', line 10

def block
  @block
end

#expected_actionObject

Returns the value of attribute expected_action.



10
11
12
# File 'lib/hammer_cli_foreman/testing/api_expectations.rb', line 10

def expected_action
  @expected_action
end

#expected_paramsObject

Returns the value of attribute expected_params.



10
11
12
# File 'lib/hammer_cli_foreman/testing/api_expectations.rb', line 10

def expected_params
  @expected_params
end

#expected_resourceObject

Returns the value of attribute expected_resource.



10
11
12
# File 'lib/hammer_cli_foreman/testing/api_expectations.rb', line 10

def expected_resource
  @expected_resource
end

Instance Method Details

#matches?(actual_parameters) ⇒ Boolean

Returns:

  • (Boolean)


19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/hammer_cli_foreman/testing/api_expectations.rb', line 19

def matches?(actual_parameters)
  action, params, _headers, _options = actual_parameters.shift(4)
  action_name = action.name.to_s
  resource_name = action.resource.to_s

  result = true
  result &&= (resource_name == @expected_resource.to_s) unless @expected_resource.nil?
  result &&= (action_name == @expected_action.to_s) unless @expected_action.nil?
  result &&= @block.call(params) if @block
  result &&= assert_params(params)
  result
end

#mocha_inspectObject



32
33
34
35
36
37
# File 'lib/hammer_cli_foreman/testing/api_expectations.rb', line 32

def mocha_inspect
  res = @expected_resource.nil? ? 'any_resource' : ":#{@expected_resource}"
  act = @expected_action.nil? ? 'any_action' : ":#{@expected_action}"
  blk = @block ? '&block' : '*any_argument'
  "#{res}, #{act}, #{blk}"
end