class Pacto::Contract

Attributes

file[R]
name[R]
request[R]
request_pattern[R]
response[R]
values[R]

Public Class Methods

new(request, response, file, name = nil, request_pattern_provider = RequestPattern) click to toggle source
# File lib/pacto/contract.rb, line 5
def initialize(request, response, file, name = nil, request_pattern_provider = RequestPattern)
  @request = request
  @response = response
  @file = Addressable::URI.convert_path(file.to_s).to_s
  @name = name || @file
  @request_pattern = request_pattern_provider.for(request)
  @values = {}
end

Public Instance Methods

matches?(request_signature) click to toggle source
# File lib/pacto/contract.rb, line 29
def matches?(request_signature)
  request_pattern.matches? request_signature
end
stub_contract!(values = {}) click to toggle source
# File lib/pacto/contract.rb, line 14
def stub_contract!(values = {})
  @values = values
  Pacto.configuration.provider.stub_request!(request, response)
end
validate_consumer(request, response, opts = {}) click to toggle source
# File lib/pacto/contract.rb, line 25
def validate_consumer(request, response, opts = {})
  Pacto::ContractValidator.validate self, request, response, opts
end
validate_provider(opts = {}) click to toggle source
# File lib/pacto/contract.rb, line 19
def validate_provider(opts = {})
  request = @request
  response = provider_response
  validate_consumer request, response, opts
end

Private Instance Methods

provider_response() click to toggle source
# File lib/pacto/contract.rb, line 35
def provider_response
  @request.execute
end