require 'rest-client' # REST require 'erb' # Embedded ruby require 'yaml' # Reading yaml require 'rspec' # Testing framework require 'rspec/its' require 'savon' # SOAP require 'nokogiri' # XPath require 'date' require 'soaspec/version' require 'soaspec/basic_soap_handler' require 'soaspec/tester' require 'soaspec/exchange' require 'soaspec/matchers' require 'soaspec/soaspec_shared_examples' require 'soaspec/hash_methods' require 'soaspec/spec_logger' require 'soaspec/exe_helpers' require 'soaspec/rest_handler' require 'soaspec/accessors' # Gem for handling SOAP and REST api tests module Soaspec # Represents Environment parameters used in Soaspec tests module Environment # Used so that exchange class knows what context it's in def self.api_handler=(handler) @api_handler = handler end def self.api_handler @api_handler end # Whether to transform strings to keys automatically def self.always_use_keys=(use_keys) @always_use_keys = use_keys end def self.always_use_keys? @always_use_keys || true end # Whether to remove namespaces from response in Xpath assertion automatically # For why this may not be a good thing in general see # http://tenderlovemaking.com/2009/04/23/namespaces-in-xml.html # This will be overridden if xpath has a ':' in it def self.strip_namespaces=(remove_namespaces_from_response) @strip_namespaces = remove_namespaces_from_response end # Whether to remove namespaces in xpath assertion automatically def self.strip_namespaces? @strip_namespaces || false end end # Contains commonly used REST methods module RestMethods # Make REST Post Exchange # @param [String] name Name of test displayed # @param [Hash] params Exchange parameters # @return [Exchange] Instance of Exchange class. Assertions are made by default on the response body def post(name, params = {}) Exchange.new(name, method: :post, **params) end # Make REST Get Exchange # @param [String] name Name of test displayed # @param [Hash] params Exchange parameters # @return [Exchange] Instance of Exchange class. Assertions are made by default on the response body def get(name, params = {}) Exchange.new(name, method: :get, **params) end # Make REST Delete Exchange # @param [String] name Name of test displayed # @param [Hash] params Exchange parameters # @return [Exchange] Instance of Exchange class. Assertions are made by default on the response body def delete(name, params = {}) Exchange.new(name, method: :delete, **params) end end end RestClient.log = Soaspec::SpecLogger.create