Sha256: 9c4b23fa09238f82be6d8ea28d17bea35f4eeb31dae6760adb9af2c7eb00a9b9

Contents?: true

Size: 1.2 KB

Versions: 1

Compression:

Stored size: 1.2 KB

Contents

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

  # Make request to handler with parameters defined
  def make_request
    @api_class.make_request(@override_parameters)
  end

  # Name describing this class when used with `RSpec.describe`
  # @return [String] Name given when initializing
  def to_s
    @response = make_request
    if Soaspec::Environment.api_handler.class < Soaspec::BasicSoapHandler
      @xml_response = @response.to_xml
      @xml_doc = @response.doc
    end
    @test_name
  end

  def contain(value)
    @xml_response.include? value
  end

  def mandatory_elements
    Soaspec::Environment.api_handler.mandatory_elements
  end

  # Returns Savon response
  # response.body (body of response as Hash)
  # response.header (head of response as Hash)
  def response
    @response
  end

  def status_code
    Soaspec::Environment.api_handler.status_code_for(@response)
  end

end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
soaspec-0.0.7 lib/soaspec/exchange.rb