Sha256: 83041f8ed93253f7b4001ef8af13c838920fec602843b8305231a81c74c5fa64

Contents?: true

Size: 1014 Bytes

Versions: 10

Compression:

Stored size: 1014 Bytes

Contents

require 'pact/provider/verification_results/verification_result'
module Pact
  module Provider
    module VerificationResults
      class Create

        def self.call pact_json, failed_examples
          new(pact_json, failed_examples).call
        end

        def initialize pact_json, failed_examples
          @pact_json = pact_json
          @failed_examples = failed_examples
        end

        def call
          VerificationResult.new(!any_failures?, Pact.configuration.provider.application_version)
        end

        private

        def pact_hash
          @pact_hash ||= json_load(pact_json)
        end

        def json_load json
          JSON.load(json, nil, { max_nesting: 50 })
        end

        def count_failures_for_pact_json
          failed_examples.collect{ |e| e.metadata[:pact_json] == pact_json }.uniq.size
        end

        def any_failures?
          count_failures_for_pact_json > 0
        end

        attr_reader :pact_json, :failed_examples
      end
    end
  end
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
pact-1.19.1 lib/pact/provider/verification_results/create.rb
pact-1.19.0 lib/pact/provider/verification_results/create.rb
pact-1.18.0 lib/pact/provider/verification_results/create.rb
pact-1.17.0 lib/pact/provider/verification_results/create.rb
pact-1.16.1 lib/pact/provider/verification_results/create.rb
pact-1.16.0 lib/pact/provider/verification_results/create.rb
pact-1.15.0 lib/pact/provider/verification_results/create.rb
pact-1.14.0 lib/pact/provider/verification_results/create.rb
pact-1.13.0 lib/pact/provider/verification_results/create.rb
pact-1.12.1 lib/pact/provider/verification_results/create.rb