lib/soaspec/exchange.rb in soaspec-0.0.9 vs lib/soaspec/exchange.rb in soaspec-0.0.10
- old
+ new
@@ -1,14 +1,10 @@
require_relative '../soaspec'
# This represents a request / response pair
class Exchange
- attr_reader :xml_response
-
- attr_reader :xml_doc
-
def initialize(name, override_parameters = {})
@test_name = name.to_s
@api_class = Soaspec::Environment.api_handler
@override_parameters = override_parameters
end
@@ -21,14 +17,10 @@
# Name describing this class when used with `RSpec.describe`
# This will make the request and store the response
# @return [String] Name given when initializing
def to_s
@response = make_request
- if @api_class.class < Soaspec::BasicSoapHandler
- @xml_response = @response.to_xml
- @xml_doc = @response.doc
- end
@test_name
end
# Elements a shared 'success scenario' is expected to have
def mandatory_elements
@@ -38,17 +30,27 @@
# Elements a shared 'success scenario' is expected to have
def mandatory_xpath_values
@api_class.mandatory_xpath_values
end
- # Returns Savon response
+ # Returns response object from Api
+ # For example for SOAP it will be a Savon response
# response.body (body of response as Hash)
# response.header (head of response as Hash)
def response
@response
end
+ # Get status code from api class. This is http response for Web Api
+ # @return [Integer] Status code from api class
def status_code
@api_class.status_code_for(@response)
+ end
+
+ # Extract value from path api class
+ # @param [String] path Path to return element for api class E.g - for SOAP this is XPath
+ # @return [String] Value at path
+ def [](path)
+ @api_class.value_from_path(self, path)
end
end
\ No newline at end of file