Sha256: 33f5f10e5efd479236d26141d73e4814e3422d641f391bfe5981ce7a99111db1

Contents?: true

Size: 900 Bytes

Versions: 3

Compression:

Stored size: 900 Bytes

Contents

# frozen_string_literal: true

module Sbmt
  module Pact
    module Provider
      class ProviderStateConfiguration
        attr_reader :name, :opts, :setup_proc, :teardown_proc

        class ProviderStateConfigurationError < ::Sbmt::Pact::Error; end

        def initialize(name, opts: {})
          @name = name
          @opts = opts
          @setup_proc = nil
          @teardown_proc = nil
        end

        def set_up(&block)
          @setup_proc = block
        end

        def tear_down(&block)
          @teardown_proc = block
        end

        def validate!
          raise ProviderStateConfigurationError.new("no hooks configured for state #{@name}: \"provider_state\" declaration only needed if setup/teardown hooks are used for that state. Please add hooks or remove \"provider_state\" declaration") unless @setup_proc || @teardown_proc
        end
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
sbmt-pact-0.12.2 lib/sbmt/pact/provider/provider_state_configuration.rb
sbmt-pact-0.12.1 lib/sbmt/pact/provider/provider_state_configuration.rb
sbmt-pact-0.12.0 lib/sbmt/pact/provider/provider_state_configuration.rb