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.



1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
# File 'lib/mockserver/models.rb', line 1628

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.



1623
1624
1625
# File 'lib/mockserver/models.rb', line 1623

def blocking
  @blocking
end

#delayObject

Returns the value of attribute delay.



1623
1624
1625
# File 'lib/mockserver/models.rb', line 1623

def delay
  @delay
end

#failure_policyObject

Returns the value of attribute failure_policy.



1623
1624
1625
# File 'lib/mockserver/models.rb', line 1623

def failure_policy
  @failure_policy
end

#http_class_callbackObject

Returns the value of attribute http_class_callback.



1623
1624
1625
# File 'lib/mockserver/models.rb', line 1623

def http_class_callback
  @http_class_callback
end

#http_errorObject

Returns the value of attribute http_error.



1623
1624
1625
# File 'lib/mockserver/models.rb', line 1623

def http_error
  @http_error
end

#http_forwardObject

Returns the value of attribute http_forward.



1623
1624
1625
# File 'lib/mockserver/models.rb', line 1623

def http_forward
  @http_forward
end

#http_object_callbackObject

Returns the value of attribute http_object_callback.



1623
1624
1625
# File 'lib/mockserver/models.rb', line 1623

def http_object_callback
  @http_object_callback
end

#http_override_forwarded_requestObject

Returns the value of attribute http_override_forwarded_request.



1623
1624
1625
# File 'lib/mockserver/models.rb', line 1623

def http_override_forwarded_request
  @http_override_forwarded_request
end

#http_requestObject

Returns the value of attribute http_request.



1623
1624
1625
# File 'lib/mockserver/models.rb', line 1623

def http_request
  @http_request
end

#http_responseObject

Returns the value of attribute http_response.



1623
1624
1625
# File 'lib/mockserver/models.rb', line 1623

def http_response
  @http_response
end

#responderObject

Returns the value of attribute responder.



1623
1624
1625
# File 'lib/mockserver/models.rb', line 1623

def responder
  @responder
end

#timeoutObject

Returns the value of attribute timeout.



1623
1624
1625
# File 'lib/mockserver/models.rb', line 1623

def timeout
  @timeout
end

Class Method Details

.from_hash(data) ⇒ Object



1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
# File 'lib/mockserver/models.rb', line 1663

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



1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
# File 'lib/mockserver/models.rb', line 1646

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