class WebTrap::Shared::Validators::EquivalentXmlContentValidator
@api private Validator for asserting a request was sent with an equivalent XML payload.
@see github.com/mbklein/equivalent-xml
equivalent-xml gem
Attributes
xml[R]
Public Class Methods
new(xml)
click to toggle source
Instantiate a new validator with the provided payload.
@param xml [String]
The XML payload requests will be compared against.
# File lib/webtrap/shared/validators/equivalent_xml_content_validator.rb, line 15 def initialize(xml) @failed = true @xml = xml end
Public Instance Methods
failed?()
click to toggle source
Whether no request with an equivalent payload was validated.
@return [Boolean]
# File lib/webtrap/shared/validators/equivalent_xml_content_validator.rb, line 23 def failed? @failed end
failure_message()
click to toggle source
The message to be used if no request is validated with an equivalent payload.
@return [String]
# File lib/webtrap/shared/validators/equivalent_xml_content_validator.rb, line 31 def failure_message "expected block to send an HTTP request with XML body, but payload was not equivalent" end
validate(request)
click to toggle source
Validate if the request has an equivalent XML payload.
@param request [Hash]
Request environment passed by {WebTrap::Shared::RackApp#call}.
@return [EquivalentXmlContentValidator]
This validator instance.
# File lib/webtrap/shared/validators/equivalent_xml_content_validator.rb, line 41 def validate(request) @failed = EquivalentXml.equivalent?(xml, request["rack.input"].string) self end