module Aws module Stubbing module Protocols class EC2 def stub_data(api, operation, data) resp = Seahorse::Client::Http::Response.new resp.status_code = 200 resp.body = build_body(api, operation, data) resp.headers['Content-Length'] = resp.body.size resp.headers['Content-Type'] = 'text/xml;charset=UTF-8' resp.headers['Server'] = 'AmazonEC2' resp end def stub_error(error_code) http_resp = Seahorse::Client::Http::Response.new http_resp.status_code = 400 http_resp.body = <<-XML.strip #{error_code} stubbed-response-error-message XML http_resp end private def build_body(api, operation, data) xml = [] if rules = operation.output Xml::Builder.new(operation.output, target:xml).to_xml(data) xml.shift xml.pop end xmlns = "http://ec2.amazonaws.com/doc/#{api.version}/".inspect xml.unshift(" stubbed-request-id") xml.unshift("<#{operation.name}Response xmlns=#{xmlns}>\n") xml.push("\n") xml.join end end end end end