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