1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
|
# frozen_string_literal: true
module Aws
module Stubbing
module Protocols
class Query
def stub_data(api, operation, data)
resp = Seahorse::Client::Http::Response.new
resp.status_code = 200
resp.body = build_body(api, operation, data)
resp
end
def stub_error(error_code)
http_resp = Seahorse::Client::Http::Response.new
http_resp.status_code = 400
http_resp.body = XmlError.new(error_code).to_xml
http_resp
end
private
def build_body(api, operation, data)
xml = []
builder = Aws::Xml::DocBuilder.new(target: xml, indent: ' ')
builder.node(operation.name + 'Response', xmlns: xmlns(api)) do
if (rules = operation.output)
rules.location_name = operation.name + 'Result'
Xml::Builder.new(rules, target: xml, pad:' ').to_xml(data)
end
builder.node('ResponseMetadata') do
builder.node('RequestId', 'stubbed-request-id')
end
end
xml.join
end
def xmlns(api)
api.metadata['xmlNamespace']
end
end
end
end
end
|