Sha256: 33791f62524b9164c3381a5247f8bd710e6a28a6dc7c108920b005464d8b65ca

Contents?: true

Size: 854 Bytes

Versions: 7

Compression:

Stored size: 854 Bytes

Contents

module Pact
  module Provider
    class ProviderStateProxy

      attr_reader :missing_provider_states

      def initialize
        @missing_provider_states = {}
      end

      def get name, options = {}
        unless provider_state = ProviderStates.get(name, options)
          register_missing_provider_state name, options[:for]
          raise error_message name, options[:for]
        end
        provider_state
      end

      private

      def error_message name, consumer
        "Could not find provider state \"#{name}\" for consumer #{consumer}"
      end

      def register_missing_provider_state name, consumer
        missing_states_for(consumer) << name unless missing_states_for(consumer).include?(name)
      end

      def missing_states_for consumer
        @missing_provider_states[consumer] ||= []
      end

    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
pact-1.0.34 lib/pact/provider/provider_state_proxy.rb
pact-1.0.33 lib/pact/provider/provider_state_proxy.rb
pact-1.0.32 lib/pact/provider/provider_state_proxy.rb
pact-1.0.31 lib/pact/provider/provider_state_proxy.rb
pact-1.0.30 lib/pact/provider/provider_state_proxy.rb
pact-1.0.29 lib/pact/provider/provider_state_proxy.rb
pact-1.0.28 lib/pact/provider/provider_state_proxy.rb