Sha256: ceb6fd4e1818042e0d8b4967415942ea76cde254229010f6d888851d4c2ce01e

Contents?: true

Size: 1.17 KB

Versions: 9

Compression:

Stored size: 1.17 KB

Contents

require_relative 'hash_methods'

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]).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(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

9 entries across 9 versions & 1 rubygems

Version Path
soaspec-0.0.19 lib/soaspec/matchers.rb
soaspec-0.0.18 lib/soaspec/matchers.rb
soaspec-0.0.17 lib/soaspec/matchers.rb
soaspec-0.0.16 lib/soaspec/matchers.rb
soaspec-0.0.15 lib/soaspec/matchers.rb
soaspec-0.0.14 lib/soaspec/matchers.rb
soaspec-0.0.13 lib/soaspec/matchers.rb
soaspec-0.0.12 lib/soaspec/matchers.rb
soaspec-0.0.11 lib/soaspec/matchers.rb