Sha256: 1f7887f5cbe305038fb4694638797f219ada6a8d8977bd88b664fbcfd3d6236b
Contents?: true
Size: 1.32 KB
Versions: 1
Compression:
Stored size: 1.32 KB
Contents
require_relative 'hash_methods' def xpath_for(param) # TODO: look a using Savon's xpath rather than converting to Nokogiri result = param[:exchange].xml_doc.at_xpath(param[:xpath], Soaspec::Environment.api_handler.namespaces) raise 'No value at Xpath' unless result result end RSpec::Matchers.define :contain_value do |expected| match do |actual| expect(actual.response.body.include_value?(expected)).to be true end failure_message do |actual| "expected that #{actual.response.body} would contain value #{expected}" end end RSpec::Matchers.define :contain_key do |expected| match do |actual| expect(actual.response.body.include_key?(expected)).to be true end failure_message do |actual| "expected that #{actual.response.body} would contain key #{expected}" end end RSpec::Matchers.define :have_element_at_xpath do |xpath| match do |exchange| expect(xpath_for(exchange: exchange, xpath: xpath).content).not_to be_empty end end RSpec::Matchers.define :have_xpath_value do |expected_hash| match do |exchange| expected_hash = Hash[*expected_hash.flatten] if expected_hash.is_a?(Array) # For some reason Array was occuring expect(xpath_for(exchange: exchange, xpath: expected_hash.keys.first).content).to eq expected_hash.values.first end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
soaspec-0.0.9 | lib/soaspec/matchers.rb |