Sha256: 156748c1e72590859855b6a8f0ecc6a7cbf39a36345d0166df41f40851a2717a

Contents?: true

Size: 1.19 KB

Versions: 2

Compression:

Stored size: 1.19 KB

Contents

require_relative 'hash_methods'
require_relative 'xpath_not_found'

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 { exchange[xpath] }.to_not raise_error NoElementAtXpath
  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(exchange[expected_hash.keys.first]).to eq expected_hash.values.first
  end

  failure_message do |actual|
    "expected that xpath '#{expected_hash.keys.first}' has value '#{expected_hash.values.first}' but was '#{actual[expected_hash.keys.first]}'"
  end

end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
soaspec-0.0.21 lib/soaspec/matchers.rb
soaspec-0.0.20 lib/soaspec/matchers.rb