Class: MockServer::ExpectationStep

Inherits:
Object
  • Object
show all
Defined in:
lib/mockserver/models.rb

Overview

A single step in an ordered multi-action expectation pipeline.

Each step carries exactly ONE action target and a responder flag. Steps without responder = true are side-effects (fire-and-forget webhooks/callbacks). Exactly one step in the list must be marked as the responder; that step’s action produces the HTTP response.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(http_request: nil, http_class_callback: nil, http_object_callback: nil, http_forward: nil, http_override_forwarded_request: nil, http_response: nil, http_error: nil, responder: nil, delay: nil, blocking: nil, timeout: nil, failure_policy: nil) ⇒ ExpectationStep

Returns a new instance of ExpectationStep.



1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
# File 'lib/mockserver/models.rb', line 1692

def initialize(http_request: nil, http_class_callback: nil, http_object_callback: nil,
               http_forward: nil, http_override_forwarded_request: nil,
               http_response: nil, http_error: nil,
               responder: nil, delay: nil, blocking: nil, timeout: nil, failure_policy: nil)
  @http_request = http_request
  @http_class_callback = http_class_callback
  @http_object_callback = http_object_callback
  @http_forward = http_forward
  @http_override_forwarded_request = http_override_forwarded_request
  @http_response = http_response
  @http_error = http_error
  @responder = responder
  @delay = delay
  @blocking = blocking
  @timeout = timeout
  @failure_policy = failure_policy
end

Instance Attribute Details

#blockingObject

Returns the value of attribute blocking.



1687
1688
1689
# File 'lib/mockserver/models.rb', line 1687

def blocking
  @blocking
end

#delayObject

Returns the value of attribute delay.



1687
1688
1689
# File 'lib/mockserver/models.rb', line 1687

def delay
  @delay
end

#failure_policyObject

Returns the value of attribute failure_policy.



1687
1688
1689
# File 'lib/mockserver/models.rb', line 1687

def failure_policy
  @failure_policy
end

#http_class_callbackObject

Returns the value of attribute http_class_callback.



1687
1688
1689
# File 'lib/mockserver/models.rb', line 1687

def http_class_callback
  @http_class_callback
end

#http_errorObject

Returns the value of attribute http_error.



1687
1688
1689
# File 'lib/mockserver/models.rb', line 1687

def http_error
  @http_error
end

#http_forwardObject

Returns the value of attribute http_forward.



1687
1688
1689
# File 'lib/mockserver/models.rb', line 1687

def http_forward
  @http_forward
end

#http_object_callbackObject

Returns the value of attribute http_object_callback.



1687
1688
1689
# File 'lib/mockserver/models.rb', line 1687

def http_object_callback
  @http_object_callback
end

#http_override_forwarded_requestObject

Returns the value of attribute http_override_forwarded_request.



1687
1688
1689
# File 'lib/mockserver/models.rb', line 1687

def http_override_forwarded_request
  @http_override_forwarded_request
end

#http_requestObject

Returns the value of attribute http_request.



1687
1688
1689
# File 'lib/mockserver/models.rb', line 1687

def http_request
  @http_request
end

#http_responseObject

Returns the value of attribute http_response.



1687
1688
1689
# File 'lib/mockserver/models.rb', line 1687

def http_response
  @http_response
end

#responderObject

Returns the value of attribute responder.



1687
1688
1689
# File 'lib/mockserver/models.rb', line 1687

def responder
  @responder
end

#timeoutObject

Returns the value of attribute timeout.



1687
1688
1689
# File 'lib/mockserver/models.rb', line 1687

def timeout
  @timeout
end

Class Method Details

.from_hash(data) ⇒ Object



1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
# File 'lib/mockserver/models.rb', line 1727

def self.from_hash(data)
  return nil if data.nil?

  new(
    http_request:                  HttpRequest.from_hash(data['httpRequest']),
    http_class_callback:           HttpClassCallback.from_hash(data['httpClassCallback']),
    http_object_callback:          HttpObjectCallback.from_hash(data['httpObjectCallback']),
    http_forward:                  HttpForward.from_hash(data['httpForward']),
    http_override_forwarded_request: HttpOverrideForwardedRequest.from_hash(data['httpOverrideForwardedRequest']),
    http_response:                 HttpResponse.from_hash(data['httpResponse']),
    http_error:                    HttpError.from_hash(data['httpError']),
    responder:                     data['responder'],
    delay:                         Delay.from_hash(data['delay']),
    blocking:                      data['blocking'],
    timeout:                       Delay.from_hash(data['timeout']),
    failure_policy:                data['failurePolicy']
  )
end

Instance Method Details

#to_hObject



1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
# File 'lib/mockserver/models.rb', line 1710

def to_h
  MockServer.strip_none({
    'httpRequest'                  => @http_request&.to_h,
    'httpClassCallback'            => @http_class_callback&.to_h,
    'httpObjectCallback'           => @http_object_callback&.to_h,
    'httpForward'                  => @http_forward&.to_h,
    'httpOverrideForwardedRequest' => @http_override_forwarded_request&.to_h,
    'httpResponse'                 => @http_response&.to_h,
    'httpError'                    => @http_error&.to_h,
    'responder'                    => @responder,
    'delay'                        => @delay&.to_h,
    'blocking'                     => @blocking,
    'timeout'                      => @timeout&.to_h,
    'failurePolicy'                => @failure_policy
  })
end