Sha256: 1ea3e5e4d28d1824ef41beadd348355455a539e07478f63e0233753c278bf9e4

Contents?: true

Size: 695 Bytes

Versions: 1

Compression:

Stored size: 695 Bytes

Contents

module Pact
  module Consumer
    class InteractionPost

      def initialize name, logger, interaction_list
        @name = name
        @logger = logger
        @interaction_list = interaction_list
      end

      def match? env
        env['REQUEST_PATH'] == '/interactions' &&
          env['REQUEST_METHOD'] == 'POST'
      end

      def respond env
        interaction = Interaction.from_hash(JSON.load(env['rack.input'].string))
        @interaction_list.add interaction
        @logger.info "Registered expected interaction #{interaction.request.method_and_path} for #{@name}"
        @logger.ap interaction.as_json
        [200, {}, ['Added interactions']]
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
pact-1.0.10 lib/pact/consumer/mock_service/interaction_post.rb