class Pact::ProxyVerificationTask

Attributes

name[R]
pact_spec_configs[R]

Public Class Methods

new(name) { |self| ... } click to toggle source
# File lib/pact/provider/proxy/tasks/proxy_verification_task.rb, line 8
def initialize(name)
  @pact_spec_configs = []
  @provider_base_url = nil
  @name = name
  @publish_verification_results = false
  @provider_app_version = nil
  yield self
  rake_task
end

Public Instance Methods

pact_url(uri, options = {}) click to toggle source
# File lib/pact/provider/proxy/tasks/proxy_verification_task.rb, line 19
def pact_url(uri, options = {})
  @pact_spec_configs << {uri: uri, pact_helper: options[:pact_helper]}
end
Also aliased as: uri
provider_app_version(provider_app_version) click to toggle source
# File lib/pact/provider/proxy/tasks/proxy_verification_task.rb, line 30
def provider_app_version provider_app_version
  @provider_app_version = provider_app_version
end
provider_base_url(url) click to toggle source
# File lib/pact/provider/proxy/tasks/proxy_verification_task.rb, line 26
def provider_base_url url
  @provider_base_url = url
end
publish_verification_results(publish_verification_results) click to toggle source
# File lib/pact/provider/proxy/tasks/proxy_verification_task.rb, line 34
def publish_verification_results publish_verification_results
  @publish_verification_results = publish_verification_results
end
uri(uri, options = {})

For compatiblity with the normal VerificationTask, allow task.uri

Alias for: pact_url

Private Instance Methods

rake_task() click to toggle source
# File lib/pact/provider/proxy/tasks/proxy_verification_task.rb, line 42
def rake_task
  namespace :pact do
    desc "Verify running provider against the consumer pacts for #{name}"
    task "verify:#{name}" do |t, args|

      require 'pact/provider/proxy/task_helper'

      proxy_pact_helper = File.expand_path('../../proxy_pact_helper.rb', __FILE__)

      exit_statuses = pact_spec_configs.collect do | config |
        ENV['PACT_PROVIDER_BASE_URL'] = @provider_base_url
        ENV['PACT_PROJECT_PACT_HELPER'] = config[:pact_helper]
        ENV['PACT_PROVIDER_APP_VERSION'] = @provider_app_version
        ENV['PACT_PUBLISH_VERIFICATION_RESULTS'] = "#{@publish_verification_results}"
        Pact::Provider::Proxy::TaskHelper.execute_pact_verify config[:uri], proxy_pact_helper
      end

      Pact::Provider::Proxy::TaskHelper.handle_verification_failure do
        exit_statuses.count{ | status | status != 0 }
      end

    end
  end
end