Sha256: 01928f2e7325a0021b3df2140856db151667e1d2b7408067899aac1fda832c34

Contents?: true

Size: 986 Bytes

Versions: 26

Compression:

Stored size: 986 Bytes

Contents

require 'pact/mock_service/spawn'
require 'pact/mock_service/control_server/delegator'
require 'find_a_port'
require 'pact/mock_service/server/wait_for_server_up'

# Create a new MockService on a random port and delegate the incoming request to it

module Pact
  module MockService
    module ControlServer
      class MockServiceCreator

        attr_reader :options

        def initialize mock_services, options
          @mock_services = mock_services
          @options = options
        end

        def call env
          consumer_name = env['HTTP_X_PACT_CONSUMER']
          provider_name = env['HTTP_X_PACT_PROVIDER']
          port = FindAPort.available_port
          mock_service = Pact::MockService::Spawn.(consumer_name, provider_name, options[:host] || 'localhost', port, options)
          delegator = Delegator.new(mock_service, consumer_name, provider_name)
          @mock_services.add(delegator)
          delegator.call(env)
        end
      end
    end
  end
end

Version data entries

26 entries across 26 versions & 2 rubygems

Version Path
pact-mock_service-3.12.3 lib/pact/mock_service/control_server/mock_service_creator.rb
pact-mock_service-3.12.2 lib/pact/mock_service/control_server/mock_service_creator.rb
pact-mock_service-3.12.1 lib/pact/mock_service/control_server/mock_service_creator.rb
pact-mock_service-3.12.0 lib/pact/mock_service/control_server/mock_service_creator.rb
pact-mock_service-3.11.2 lib/pact/mock_service/control_server/mock_service_creator.rb
pact-mock_service-3.11.1 lib/pact/mock_service/control_server/mock_service_creator.rb
pact-mock_service-3.11.0 lib/pact/mock_service/control_server/mock_service_creator.rb
pact-mock_service-3.10.0 lib/pact/mock_service/control_server/mock_service_creator.rb
hs-pact-mock_service-3.9.2 lib/pact/mock_service/control_server/mock_service_creator.rb
pact-mock_service-3.9.1 lib/pact/mock_service/control_server/mock_service_creator.rb
pact-mock_service-3.9.0 lib/pact/mock_service/control_server/mock_service_creator.rb
pact-mock_service-3.8.0 lib/pact/mock_service/control_server/mock_service_creator.rb
pact-mock_service-3.7.0 lib/pact/mock_service/control_server/mock_service_creator.rb
pact-mock_service-3.6.2 lib/pact/mock_service/control_server/mock_service_creator.rb
pact-mock_service-3.6.1 lib/pact/mock_service/control_server/mock_service_creator.rb
pact-mock_service-3.6.0 lib/pact/mock_service/control_server/mock_service_creator.rb
pact-mock_service-3.5.0 lib/pact/mock_service/control_server/mock_service_creator.rb
pact-mock_service-3.4.0 lib/pact/mock_service/control_server/mock_service_creator.rb
pact-mock_service-3.3.1 lib/pact/mock_service/control_server/mock_service_creator.rb
pact-mock_service-3.3.0 lib/pact/mock_service/control_server/mock_service_creator.rb