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.



1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
# File 'lib/mockserver/models.rb', line 1600

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.



1595
1596
1597
# File 'lib/mockserver/models.rb', line 1595

def blocking
  @blocking
end

#delayObject

Returns the value of attribute delay.



1595
1596
1597
# File 'lib/mockserver/models.rb', line 1595

def delay
  @delay
end

#failure_policyObject

Returns the value of attribute failure_policy.



1595
1596
1597
# File 'lib/mockserver/models.rb', line 1595

def failure_policy
  @failure_policy
end

#http_class_callbackObject

Returns the value of attribute http_class_callback.



1595
1596
1597
# File 'lib/mockserver/models.rb', line 1595

def http_class_callback
  @http_class_callback
end

#http_errorObject

Returns the value of attribute http_error.



1595
1596
1597
# File 'lib/mockserver/models.rb', line 1595

def http_error
  @http_error
end

#http_forwardObject

Returns the value of attribute http_forward.



1595
1596
1597
# File 'lib/mockserver/models.rb', line 1595

def http_forward
  @http_forward
end

#http_object_callbackObject

Returns the value of attribute http_object_callback.



1595
1596
1597
# File 'lib/mockserver/models.rb', line 1595

def http_object_callback
  @http_object_callback
end

#http_override_forwarded_requestObject

Returns the value of attribute http_override_forwarded_request.



1595
1596
1597
# File 'lib/mockserver/models.rb', line 1595

def http_override_forwarded_request
  @http_override_forwarded_request
end

#http_requestObject

Returns the value of attribute http_request.



1595
1596
1597
# File 'lib/mockserver/models.rb', line 1595

def http_request
  @http_request
end

#http_responseObject

Returns the value of attribute http_response.



1595
1596
1597
# File 'lib/mockserver/models.rb', line 1595

def http_response
  @http_response
end

#responderObject

Returns the value of attribute responder.



1595
1596
1597
# File 'lib/mockserver/models.rb', line 1595

def responder
  @responder
end

#timeoutObject

Returns the value of attribute timeout.



1595
1596
1597
# File 'lib/mockserver/models.rb', line 1595

def timeout
  @timeout
end

Class Method Details

.from_hash(data) ⇒ Object



1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
# File 'lib/mockserver/models.rb', line 1635

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



1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
# File 'lib/mockserver/models.rb', line 1618

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