class RSpecApib::Element::HttpTransaction

Represents a http transaction in api-elements (api-elements.readthedocs.io/en/latest/)

Private Class Methods

attributes_schema() click to toggle source
# File lib/rspec_apib/elements/http_transaction.rb, line 51
def self.attributes_schema
  {
    href: "TemplatedHref"
  }
end
attrs_to_inherit() click to toggle source

Inherit href and hrefVariables from any ancestor

# File lib/rspec_apib/elements/http_transaction.rb, line 47
def self.attrs_to_inherit
  [:href, :hrefVariables]
end

Public Instance Methods

matches?(request_in, response_in, options: {}) click to toggle source
# File lib/rspec_apib/elements/http_transaction.rb, line 6
def matches?(request_in, response_in, options: {})
  request.matches?(request_in, options: options) && response.matches?(response_in, options: options)
end
potential_match?(path:, request_method:, content_type:) click to toggle source
# File lib/rspec_apib/elements/http_transaction.rb, line 10
def potential_match?(path:, request_method:, content_type:)
  potential_match_content_type?(content_type) &&
    (request_method == :any || request_method == request.request_method) &&
    (path == :any || request.path == path)
end
request() click to toggle source
# File lib/rspec_apib/elements/http_transaction.rb, line 22
def request
  @request ||= content.find {|r| r.is_a?(HttpRequest)}
end
response() click to toggle source
# File lib/rspec_apib/elements/http_transaction.rb, line 26
def response
  @response ||= content.find {|r| r.is_a?(HttpResponse)}
end
validate_schema(request_in, response_in, validate_request_schema: :always, validate_response_schema: :always) click to toggle source
# File lib/rspec_apib/elements/http_transaction.rb, line 16
def validate_schema(request_in, response_in, validate_request_schema: :always, validate_response_schema: :always)
  request_errors = validate_request_schema(request_in, validate_request_schema)
  response_errors = validate_response_schema(response_in, validate_response_schema)
  { request_errors: request_errors, response_errors: response_errors }
end

Private Instance Methods

potential_match_content_type?(content_type) click to toggle source
# File lib/rspec_apib/elements/http_transaction.rb, line 32
def potential_match_content_type?(content_type)
  content_type == :any || content_type == (response.content_type || request.content_type)
end
validate_request_schema(request_in, validate_request_schema) click to toggle source
# File lib/rspec_apib/elements/http_transaction.rb, line 36
def validate_request_schema(request_in, validate_request_schema)
  return [] if validate_request_schema == :never
  request.validate_schema(request_in, allow_no_schema: (validate_request_schema == :when_defined))
end
validate_response_schema(response_in, validate_response_schema) click to toggle source
# File lib/rspec_apib/elements/http_transaction.rb, line 41
def validate_response_schema(response_in, validate_response_schema)
  return [] if validate_response_schema == :never
  response.validate_schema(response_in, allow_no_schema: (validate_response_schema == :when_defined))
end