Sha256: df5946f6c8da87a9282e310c9d5ac840eb29925dc9939f2a5f8256b4b5c25270

Contents?: true

Size: 1.71 KB

Versions: 8

Compression:

Stored size: 1.71 KB

Contents

require 'pact/shared/dsl'
require 'pact/provider/world'
require 'pact/pact_broker/fetch_pacts'

module Pact
  module Provider
    module Configuration
      class PactVerificationFromBroker

        extend Pact::DSL

        # If user declares a variable with the same name as one of these attributes
        # in parent scope, it will clash with these ones,
        # so put an underscore in front of the name to be safer.

        attr_accessor :_provider_name, :_pact_broker_base_url, :_consumer_version_tags, :_basic_auth_options, :_verbose

        def initialize(provider_name)
          @_provider_name = provider_name
          @_consumer_version_tags = []
          @_verbose = false
        end

        dsl do
          def pact_broker_base_url pact_broker_base_url, basic_auth_options = {}
            self._pact_broker_base_url = pact_broker_base_url
            self._basic_auth_options = basic_auth_options
          end

          def consumer_version_tags consumer_version_tags
            self._consumer_version_tags = *consumer_version_tags
          end

          def verbose verbose
            self._verbose = verbose
          end
        end

        def finalize
          validate
          create_pact_verification
        end

        private

        def create_pact_verification
          fetch_pacts = Pact::PactBroker::FetchPacts.new(_provider_name, _consumer_version_tags, _pact_broker_base_url, _basic_auth_options.merge(verbose: _verbose))
          Pact.provider_world.add_pact_uri_source fetch_pacts
        end

        def validate
          raise Pact::Error.new("Please provide a pact_broker_base_url from which to retrieve the pacts") unless _pact_broker_base_url
        end
      end
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
pact-1.33.1 lib/pact/provider/configuration/pact_verification_from_broker.rb
pact-1.33.0 lib/pact/provider/configuration/pact_verification_from_broker.rb
pact-1.32.0 lib/pact/provider/configuration/pact_verification_from_broker.rb
pact-1.31.0 lib/pact/provider/configuration/pact_verification_from_broker.rb
pact-1.30.0 lib/pact/provider/configuration/pact_verification_from_broker.rb
pact-1.29.0 lib/pact/provider/configuration/pact_verification_from_broker.rb
pact-1.28.0 lib/pact/provider/configuration/pact_verification_from_broker.rb
pact-1.28.0.rc1 lib/pact/provider/configuration/pact_verification_from_broker.rb