pact 1.10.0 → 1.11.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 9378cd5f3e2ab7ab08e17c560a84552ffacfcc03
4
- data.tar.gz: 1b71020e0ccd0bfed0d0a441011d94c6b606dbd4
3
+ metadata.gz: 8e38dc280e6592408508f4e59c018203b8504946
4
+ data.tar.gz: f26b048371865114bea388c812bf2b33bc23ead9
5
5
  SHA512:
6
- metadata.gz: 8c2cf217850f8f2f352a46721f568a2f0cca9fe87df3a4730eaeecace556dd9cdbf7a65233cf5cf00caabace898d77f9f86ac73129393cc71c18809349c5f4fc
7
- data.tar.gz: edddf39dd4748d0e07a235737289bbccd040c8f16c5a5d3f5a441583fb651b3c20e9521fbb91e15b5d0111e0dd2e7d3d3d9a4da02497551c237972f27c5f9878
6
+ metadata.gz: 554be632b814eb194c01fe50800c073b3fa1540fd2bbb530f35ccb33bb1918ab24a9f37c2eca0a3ad16b685a66ccda244418b3bbbea6178846d1b1a1a45443a3
7
+ data.tar.gz: 6a02276a6a970827a37b66039b90dd47b4444d2ae9ed2f67a510a0e8895af046f5299bb2ce4370c2f084a9d36cce9ad2574358310068f5218048994ed154329d
data/CHANGELOG.md CHANGED
@@ -2,6 +2,14 @@ Do this to generate your change history
2
2
 
3
3
  git log --pretty=format:' * %h - %s (%an, %ad)' vX.Y.Z..HEAD
4
4
 
5
+ ## 1.11.0 (8 May 2017)
6
+ * 2a54388 - Only publish verification results when using spec 3. (Beth Skurrie, Mon May 8 12:08:48 2017 +1000)
7
+ * a82d919 - Remove build for ruby 2.0.0! (Beth Skurrie, Tue May 2 15:16:40 2017 +1000)
8
+ * 37437db - Use basic auth to publish verification if basic auth was configured on the pact URL. (Beth Skurrie, Tue May 2 10:22:15 2017 +1000)
9
+ * 3038354 - Enable verifications to be automatically published to the pact broker. (Beth Skurrie, Tue May 2 08:44:19 2017 +1000)
10
+ * 527f27f - Update gem dependency versions. (Beth Skurrie, Tue May 2 08:24:37 2017 +1000)
11
+ * 041f107 - Updated pact-mock_service version in gemspec (Beth Skurrie, Tue Apr 4 16:20:10 2017 +1000)
12
+
5
13
  ## 1.10.0 (14 Nov 2016)
6
14
  * 1e8c0bc - Updating pact-support and pact-mock_service versions (Beth Skurrie, Mon Nov 14 10:16:38 2016 +1100)
7
15
 
@@ -9,6 +9,8 @@ module Pact
9
9
 
10
10
  module ConfigurationExtension
11
11
 
12
+ attr_accessor :provider_application_version
13
+
12
14
  def provider= provider
13
15
  @provider = provider
14
16
  end
@@ -3,13 +3,21 @@ module Pact
3
3
  module Configuration
4
4
  class ServiceProviderConfig
5
5
 
6
- def initialize &app_block
6
+ attr_accessor :application_version
7
+
8
+ def initialize application_version, publish_verification_results, &app_block
9
+ @application_version = application_version
10
+ @publish_verification_results = publish_verification_results
7
11
  @app_block = app_block
8
12
  end
9
13
 
10
14
  def app
11
15
  @app_block.call
12
16
  end
17
+
18
+ def publish_verification_results?
19
+ @publish_verification_results
20
+ end
13
21
  end
14
22
  end
15
23
  end
@@ -7,11 +7,13 @@ module Pact
7
7
 
8
8
  module Configuration
9
9
 
10
+ class Error < ::Pact::Error; end
11
+
10
12
  class ServiceProviderDSL
11
13
 
12
14
  extend Pact::DSL
13
15
 
14
- attr_accessor :name, :app_block
16
+ attr_accessor :name, :app_block, :application_version, :publish_verification_results
15
17
 
16
18
  CONFIG_RU_APP = lambda {
17
19
  unless File.exist? Pact.configuration.config_ru_path
@@ -22,6 +24,7 @@ module Pact
22
24
 
23
25
  def initialize name
24
26
  @name = name
27
+ @publish_verification_results = false
25
28
  @app_block = CONFIG_RU_APP
26
29
  end
27
30
 
@@ -30,6 +33,17 @@ module Pact
30
33
  self.app_block = block
31
34
  end
32
35
 
36
+ def app_version application_version
37
+ self.application_version = application_version
38
+ end
39
+
40
+ def publish_verification_results publish_verification_results
41
+ self.publish_verification_results = publish_verification_results
42
+ Pact::RSpec.with_rspec_2 do
43
+ puts "WARNING: Publishing of verification results is currently not supported with rspec 2. If you would like this functionality, please feel free to submit a PR!"
44
+ end
45
+ end
46
+
33
47
  def honours_pact_with consumer_name, options = {}, &block
34
48
  create_pact_verification consumer_name, options, &block
35
49
  end
@@ -47,11 +61,16 @@ module Pact
47
61
  private
48
62
 
49
63
  def validate
50
- raise "Please provide a name for the Provider" unless name && !name.strip.empty?
64
+ raise Error.new("Please provide a name for the Provider") unless name && !name.strip.empty?
65
+ raise Error.new("Please set the app_version when publish_verification_results is true") if publish_verification_results && application_version_blank?
66
+ end
67
+
68
+ def application_version_blank?
69
+ application_version.nil? || application_version.strip.empty?
51
70
  end
52
71
 
53
72
  def create_service_provider
54
- Pact.configuration.provider = ServiceProviderConfig.new(&@app_block)
73
+ Pact.configuration.provider = ServiceProviderConfig.new(application_version, publish_verification_results, &@app_block)
55
74
  end
56
75
  end
57
76
  end
@@ -1,6 +1,6 @@
1
1
  require 'pact/consumer_contract/pact_file'
2
2
 
3
- module PactBroker
3
+ module Pact
4
4
  module Provider
5
5
  class PactSource
6
6
 
@@ -14,6 +14,9 @@ module PactBroker
14
14
  @pact_json ||= Pact::PactFile.read(uri.uri, uri.options)
15
15
  end
16
16
 
17
+ def pact_hash
18
+ @pact_hash ||= JSON.load(pact_json, nil, { max_nesting: 50 })
19
+ end
17
20
  end
18
21
  end
19
22
  end
@@ -7,6 +7,7 @@ require 'pact/project_root'
7
7
  require 'pact/rspec'
8
8
  require 'pact/provider/pact_source'
9
9
  require 'pact/provider/help/write'
10
+ require 'pact/provider/verification_results/publish_all'
10
11
 
11
12
  require_relative 'rspec'
12
13
 
@@ -77,9 +78,13 @@ module Pact
77
78
  end
78
79
 
79
80
  jsons = pact_jsons
81
+ sources = pact_sources
80
82
 
81
- config.after(:suite) do
83
+ config.after(:suite) do | suite |
82
84
  Pact::Provider::Help::Write.call(jsons)
85
+ Pact::RSpec.with_rspec_3 do
86
+ Pact::Provider::VerificationResults::PublishAll.call(sources, suite)
87
+ end
83
88
  end
84
89
 
85
90
  end
@@ -107,7 +112,7 @@ module Pact
107
112
  def pact_sources
108
113
  @pact_sources ||= begin
109
114
  pact_urls.collect do | pact_url |
110
- PactBroker::Provider::PactSource.new(pact_url)
115
+ Pact::Provider::PactSource.new(pact_url)
111
116
  end
112
117
  end
113
118
  end
@@ -14,14 +14,25 @@ module Pact
14
14
  options == other.options
15
15
  end
16
16
 
17
+ def basic_auth?
18
+ !!username
19
+ end
20
+
21
+ def username
22
+ options[:username]
23
+ end
24
+
25
+ def password
26
+ options[:password]
27
+ end
28
+
17
29
  def to_s
18
- if(options[:username])
19
- URI(@uri).tap { |x| x.userinfo="#{options[:username]}:*****"}.to_s
30
+ if(basic_auth?)
31
+ URI(@uri).tap { |x| x.userinfo="#{username}:*****"}.to_s
20
32
  else
21
33
  @uri
22
34
  end
23
-
24
35
  end
25
36
  end
26
37
  end
27
- end
38
+ end
@@ -23,13 +23,13 @@ module Pact
23
23
  puts "Reading pact at #{pact_uri}"
24
24
  puts "Filtering interactions by: #{options[:criteria]}" if options[:criteria] && options[:criteria].any?
25
25
  consumer_contract = Pact::ConsumerContract.from_json(pact_json)
26
- ::RSpec.describe "Verifying a pact between #{consumer_contract.consumer.name} and #{consumer_contract.provider.name}", :pactfile_uri => pact_uri do
26
+ ::RSpec.describe "Verifying a pact between #{consumer_contract.consumer.name} and #{consumer_contract.provider.name}", pactfile_uri: pact_uri do
27
27
  honour_consumer_contract consumer_contract, options.merge(pact_json: pact_json)
28
28
  end
29
29
  end
30
30
 
31
31
  def honour_consumer_contract consumer_contract, options = {}
32
- describe_consumer_contract consumer_contract, options.merge(:consumer => consumer_contract.consumer.name)
32
+ describe_consumer_contract consumer_contract, options.merge(consumer: consumer_contract.consumer.name)
33
33
  end
34
34
 
35
35
  private
@@ -61,10 +61,10 @@ module Pact
61
61
  def describe_interaction interaction, options
62
62
 
63
63
  metadata = {
64
- :pact => :verify,
65
- :pact_interaction => interaction,
66
- :pact_interaction_example_description => interaction_description_for_rerun_command(interaction),
67
- :pact_json => options[:pact_json]
64
+ pact: :verify,
65
+ pact_interaction: interaction,
66
+ pact_interaction_example_description: interaction_description_for_rerun_command(interaction),
67
+ pact_json: options[:pact_json]
68
68
  }
69
69
 
70
70
  describe description_for(interaction), metadata do
@@ -0,0 +1,42 @@
1
+ require 'pact/provider/verification_results/verification_result'
2
+ module Pact
3
+ module Provider
4
+ module VerificationResults
5
+ class Create
6
+
7
+ def self.call pact_json, suite_context
8
+ new(pact_json, suite_context).call
9
+ end
10
+
11
+ def initialize pact_json, suite_context
12
+ @pact_json = pact_json
13
+ @suite_context = suite_context
14
+ end
15
+
16
+ def call
17
+ VerificationResult.new(!any_failures?, Pact.configuration.provider.application_version)
18
+ end
19
+
20
+ private
21
+
22
+ def pact_hash
23
+ @pact_hash ||= json_load(pact_json)
24
+ end
25
+
26
+ def json_load json
27
+ JSON.load(json, nil, { max_nesting: 50 })
28
+ end
29
+
30
+ def count_failures_for_pact_json
31
+ suite_context.reporter.failed_examples.collect{ |e| e.metadata[:pact_json] == pact_json }.uniq.size
32
+ end
33
+
34
+ def any_failures?
35
+ count_failures_for_pact_json > 0
36
+ end
37
+
38
+ attr_reader :pact_json, :suite_context
39
+ end
40
+ end
41
+ end
42
+ end
@@ -0,0 +1,78 @@
1
+ require 'json'
2
+ require 'pact/errors'
3
+
4
+ module Pact
5
+ module Provider
6
+ module VerificationResults
7
+
8
+ class PublicationError < Pact::Error; end
9
+
10
+ class Publish
11
+
12
+ def self.call pact_source, verification_result
13
+ new(pact_source, verification_result).call
14
+ end
15
+
16
+ def initialize pact_source, verification_result
17
+ @pact_source = pact_source
18
+ @verification_result = verification_result
19
+ end
20
+
21
+ def call
22
+ if Pact.configuration.provider.publish_verification_results?
23
+ if publication_url
24
+ publish
25
+ else
26
+ puts "WARNING: Cannot publish verification for #{consumer_name} as there is no link named pb:publish-verification-results in the pact JSON. If you are using a pact broker, please upgrade to version 2.0.0 or later."
27
+ end
28
+ end
29
+ end
30
+
31
+ private
32
+
33
+ def publication_url
34
+ @publication_url ||= pact_source.pact_hash.fetch('_links', {}).fetch('pb:publish-verification-results', {})['href']
35
+ end
36
+
37
+ def publish
38
+ #TODO https
39
+ #TODO username/password
40
+ uri = URI(publication_url)
41
+ request = build_request(uri)
42
+ response = nil
43
+ begin
44
+ response = Net::HTTP.start(uri.host, uri.port) do |http|
45
+ http.request request
46
+ end
47
+ rescue StandardError => e
48
+ error_message = "Failed to publish verification result due to: #{e.class} #{e.message}"
49
+ raise PublicationError.new(error_message)
50
+ end
51
+
52
+ unless response.code.start_with?("2")
53
+ raise PublicationError.new("Error returned from verification result publication #{response.code} #{response.body}")
54
+ end
55
+ end
56
+
57
+ def build_request uri
58
+ request = Net::HTTP::Post.new(uri.path)
59
+ request['Content-Type'] = "application/json"
60
+ request.body = verification_result.to_json
61
+ debug_uri = uri
62
+ if pact_source.uri.basic_auth?
63
+ request.basic_auth pact_source.uri.username, pact_source.uri.password
64
+ debug_uri = URI(uri.to_s).tap { |x| x.userinfo="#{pact_source.uri.username}:*****"}
65
+ end
66
+ puts "Publishing verification result #{verification_result.to_json} to #{debug_uri}"
67
+ request
68
+ end
69
+
70
+ def consumer_name
71
+ pact_source.pact_hash['consumer']['name']
72
+ end
73
+
74
+ attr_reader :pact_source, :verification_result
75
+ end
76
+ end
77
+ end
78
+ end
@@ -0,0 +1,36 @@
1
+ require'pact/provider/verification_results/create'
2
+ require'pact/provider/verification_results/publish'
3
+
4
+ module Pact
5
+ module Provider
6
+ module VerificationResults
7
+ class PublishAll
8
+
9
+ def self.call pact_sources, rspec_summary
10
+ new(pact_sources, rspec_summary).call
11
+ end
12
+
13
+ def initialize pact_sources, rspec_summary
14
+ @pact_sources = pact_sources
15
+ @rspec_summary = rspec_summary
16
+ end
17
+
18
+ def call
19
+ verification_results.collect do | pair |
20
+ Publish.call(pair.first, pair.last)
21
+ end
22
+ end
23
+
24
+ private
25
+
26
+ def verification_results
27
+ pact_sources.collect do | pact_source |
28
+ [pact_source, Create.call(pact_source.pact_json, rspec_summary)]
29
+ end
30
+ end
31
+
32
+ attr_reader :pact_sources, :rspec_summary
33
+ end
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,28 @@
1
+ module Pact
2
+ module Provider
3
+ module VerificationResults
4
+ class VerificationResult
5
+
6
+ def initialize success, provider_application_version
7
+ @success = success
8
+ @provider_application_version = provider_application_version
9
+ end
10
+
11
+ def provider_application_version_set?
12
+ !!provider_application_version
13
+ end
14
+
15
+ def to_json
16
+ {
17
+ success: success,
18
+ providerApplicationVersion: provider_application_version
19
+ }.to_json
20
+ end
21
+
22
+ private
23
+
24
+ attr_reader :success, :provider_application_version
25
+ end
26
+ end
27
+ end
28
+ end
data/lib/pact/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Pact
2
- VERSION = "1.10.0"
2
+ VERSION = "1.11.0"
3
3
  end
data/pact.gemspec CHANGED
@@ -24,15 +24,15 @@ Gem::Specification.new do |gem|
24
24
  gem.add_runtime_dependency 'rspec', '>=2.14'
25
25
  gem.add_runtime_dependency 'rack-test', '~> 0.6.2'
26
26
  gem.add_runtime_dependency 'thor'
27
- gem.add_runtime_dependency 'json' #Not locking down a version because buncher gem requires 1.6, while other projects use 1.7.
27
+ gem.add_runtime_dependency 'json','> 1.8.5'
28
28
  gem.add_runtime_dependency 'webrick'
29
29
  gem.add_runtime_dependency 'term-ansicolor', '~> 1.0'
30
30
 
31
31
  gem.add_runtime_dependency 'pact-support', '~> 0.6'
32
- gem.add_runtime_dependency 'pact-mock_service', '~> 0.11'
32
+ gem.add_runtime_dependency 'pact-mock_service', '~> 1.2'
33
33
 
34
34
  gem.add_development_dependency 'rake', '~> 10.0.3'
35
- gem.add_development_dependency 'webmock', '~> 1.18.0'
35
+ gem.add_development_dependency 'webmock', '~> 3.0'
36
36
  gem.add_development_dependency 'pry'
37
37
  gem.add_development_dependency 'fakefs', '0.5' # 0.6.0 blows up
38
38
  gem.add_development_dependency 'hashie', '~> 2.0'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pact
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.10.0
4
+ version: 1.11.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - James Fraser
@@ -9,250 +9,252 @@ authors:
9
9
  - Brent Snook
10
10
  - Ronald Holshausen
11
11
  - Beth Skurrie
12
- autorequire:
12
+ autorequire:
13
13
  bindir: bin
14
14
  cert_chain: []
15
- date: 2016-11-15 00:00:00.000000000 Z
15
+ date: 2017-05-08 00:00:00.000000000 Z
16
16
  dependencies:
17
17
  - !ruby/object:Gem::Dependency
18
18
  name: randexp
19
- version_requirements: !ruby/object:Gem::Requirement
19
+ requirement: !ruby/object:Gem::Requirement
20
20
  requirements:
21
21
  - - "~>"
22
22
  - !ruby/object:Gem::Version
23
23
  version: 0.1.7
24
- requirement: !ruby/object:Gem::Requirement
24
+ type: :runtime
25
+ prerelease: false
26
+ version_requirements: !ruby/object:Gem::Requirement
25
27
  requirements:
26
28
  - - "~>"
27
29
  - !ruby/object:Gem::Version
28
30
  version: 0.1.7
29
- prerelease: false
30
- type: :runtime
31
31
  - !ruby/object:Gem::Dependency
32
32
  name: rspec
33
- version_requirements: !ruby/object:Gem::Requirement
33
+ requirement: !ruby/object:Gem::Requirement
34
34
  requirements:
35
35
  - - ">="
36
36
  - !ruby/object:Gem::Version
37
37
  version: '2.14'
38
- requirement: !ruby/object:Gem::Requirement
38
+ type: :runtime
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
39
41
  requirements:
40
42
  - - ">="
41
43
  - !ruby/object:Gem::Version
42
44
  version: '2.14'
43
- prerelease: false
44
- type: :runtime
45
45
  - !ruby/object:Gem::Dependency
46
46
  name: rack-test
47
- version_requirements: !ruby/object:Gem::Requirement
47
+ requirement: !ruby/object:Gem::Requirement
48
48
  requirements:
49
49
  - - "~>"
50
50
  - !ruby/object:Gem::Version
51
51
  version: 0.6.2
52
- requirement: !ruby/object:Gem::Requirement
52
+ type: :runtime
53
+ prerelease: false
54
+ version_requirements: !ruby/object:Gem::Requirement
53
55
  requirements:
54
56
  - - "~>"
55
57
  - !ruby/object:Gem::Version
56
58
  version: 0.6.2
57
- prerelease: false
58
- type: :runtime
59
59
  - !ruby/object:Gem::Dependency
60
60
  name: thor
61
- version_requirements: !ruby/object:Gem::Requirement
62
- requirements:
63
- - - ">="
64
- - !ruby/object:Gem::Version
65
- version: '0'
66
61
  requirement: !ruby/object:Gem::Requirement
67
62
  requirements:
68
63
  - - ">="
69
64
  - !ruby/object:Gem::Version
70
65
  version: '0'
71
- prerelease: false
72
66
  type: :runtime
73
- - !ruby/object:Gem::Dependency
74
- name: json
67
+ prerelease: false
75
68
  version_requirements: !ruby/object:Gem::Requirement
76
69
  requirements:
77
70
  - - ">="
78
71
  - !ruby/object:Gem::Version
79
72
  version: '0'
73
+ - !ruby/object:Gem::Dependency
74
+ name: json
80
75
  requirement: !ruby/object:Gem::Requirement
81
76
  requirements:
82
- - - ">="
77
+ - - ">"
83
78
  - !ruby/object:Gem::Version
84
- version: '0'
85
- prerelease: false
79
+ version: 1.8.5
86
80
  type: :runtime
87
- - !ruby/object:Gem::Dependency
88
- name: webrick
81
+ prerelease: false
89
82
  version_requirements: !ruby/object:Gem::Requirement
90
83
  requirements:
91
- - - ">="
84
+ - - ">"
92
85
  - !ruby/object:Gem::Version
93
- version: '0'
86
+ version: 1.8.5
87
+ - !ruby/object:Gem::Dependency
88
+ name: webrick
94
89
  requirement: !ruby/object:Gem::Requirement
95
90
  requirements:
96
91
  - - ">="
97
92
  - !ruby/object:Gem::Version
98
93
  version: '0'
99
- prerelease: false
100
94
  type: :runtime
101
- - !ruby/object:Gem::Dependency
102
- name: term-ansicolor
95
+ prerelease: false
103
96
  version_requirements: !ruby/object:Gem::Requirement
104
97
  requirements:
105
- - - "~>"
98
+ - - ">="
106
99
  - !ruby/object:Gem::Version
107
- version: '1.0'
100
+ version: '0'
101
+ - !ruby/object:Gem::Dependency
102
+ name: term-ansicolor
108
103
  requirement: !ruby/object:Gem::Requirement
109
104
  requirements:
110
105
  - - "~>"
111
106
  - !ruby/object:Gem::Version
112
107
  version: '1.0'
113
- prerelease: false
114
108
  type: :runtime
115
- - !ruby/object:Gem::Dependency
116
- name: pact-support
109
+ prerelease: false
117
110
  version_requirements: !ruby/object:Gem::Requirement
118
111
  requirements:
119
112
  - - "~>"
120
113
  - !ruby/object:Gem::Version
121
- version: '0.6'
114
+ version: '1.0'
115
+ - !ruby/object:Gem::Dependency
116
+ name: pact-support
122
117
  requirement: !ruby/object:Gem::Requirement
123
118
  requirements:
124
119
  - - "~>"
125
120
  - !ruby/object:Gem::Version
126
121
  version: '0.6'
127
- prerelease: false
128
122
  type: :runtime
129
- - !ruby/object:Gem::Dependency
130
- name: pact-mock_service
123
+ prerelease: false
131
124
  version_requirements: !ruby/object:Gem::Requirement
132
125
  requirements:
133
126
  - - "~>"
134
127
  - !ruby/object:Gem::Version
135
- version: '0.11'
128
+ version: '0.6'
129
+ - !ruby/object:Gem::Dependency
130
+ name: pact-mock_service
136
131
  requirement: !ruby/object:Gem::Requirement
137
132
  requirements:
138
133
  - - "~>"
139
134
  - !ruby/object:Gem::Version
140
- version: '0.11'
141
- prerelease: false
135
+ version: '1.2'
142
136
  type: :runtime
143
- - !ruby/object:Gem::Dependency
144
- name: rake
137
+ prerelease: false
145
138
  version_requirements: !ruby/object:Gem::Requirement
146
139
  requirements:
147
140
  - - "~>"
148
141
  - !ruby/object:Gem::Version
149
- version: 10.0.3
142
+ version: '1.2'
143
+ - !ruby/object:Gem::Dependency
144
+ name: rake
150
145
  requirement: !ruby/object:Gem::Requirement
151
146
  requirements:
152
147
  - - "~>"
153
148
  - !ruby/object:Gem::Version
154
149
  version: 10.0.3
155
- prerelease: false
156
150
  type: :development
157
- - !ruby/object:Gem::Dependency
158
- name: webmock
151
+ prerelease: false
159
152
  version_requirements: !ruby/object:Gem::Requirement
160
153
  requirements:
161
154
  - - "~>"
162
155
  - !ruby/object:Gem::Version
163
- version: 1.18.0
156
+ version: 10.0.3
157
+ - !ruby/object:Gem::Dependency
158
+ name: webmock
164
159
  requirement: !ruby/object:Gem::Requirement
165
160
  requirements:
166
161
  - - "~>"
167
162
  - !ruby/object:Gem::Version
168
- version: 1.18.0
169
- prerelease: false
163
+ version: '3.0'
170
164
  type: :development
165
+ prerelease: false
166
+ version_requirements: !ruby/object:Gem::Requirement
167
+ requirements:
168
+ - - "~>"
169
+ - !ruby/object:Gem::Version
170
+ version: '3.0'
171
171
  - !ruby/object:Gem::Dependency
172
172
  name: pry
173
- version_requirements: !ruby/object:Gem::Requirement
173
+ requirement: !ruby/object:Gem::Requirement
174
174
  requirements:
175
175
  - - ">="
176
176
  - !ruby/object:Gem::Version
177
177
  version: '0'
178
- requirement: !ruby/object:Gem::Requirement
178
+ type: :development
179
+ prerelease: false
180
+ version_requirements: !ruby/object:Gem::Requirement
179
181
  requirements:
180
182
  - - ">="
181
183
  - !ruby/object:Gem::Version
182
184
  version: '0'
183
- prerelease: false
184
- type: :development
185
185
  - !ruby/object:Gem::Dependency
186
186
  name: fakefs
187
- version_requirements: !ruby/object:Gem::Requirement
187
+ requirement: !ruby/object:Gem::Requirement
188
188
  requirements:
189
189
  - - '='
190
190
  - !ruby/object:Gem::Version
191
191
  version: '0.5'
192
- requirement: !ruby/object:Gem::Requirement
192
+ type: :development
193
+ prerelease: false
194
+ version_requirements: !ruby/object:Gem::Requirement
193
195
  requirements:
194
196
  - - '='
195
197
  - !ruby/object:Gem::Version
196
198
  version: '0.5'
197
- prerelease: false
198
- type: :development
199
199
  - !ruby/object:Gem::Dependency
200
200
  name: hashie
201
- version_requirements: !ruby/object:Gem::Requirement
201
+ requirement: !ruby/object:Gem::Requirement
202
202
  requirements:
203
203
  - - "~>"
204
204
  - !ruby/object:Gem::Version
205
205
  version: '2.0'
206
- requirement: !ruby/object:Gem::Requirement
206
+ type: :development
207
+ prerelease: false
208
+ version_requirements: !ruby/object:Gem::Requirement
207
209
  requirements:
208
210
  - - "~>"
209
211
  - !ruby/object:Gem::Version
210
212
  version: '2.0'
211
- prerelease: false
212
- type: :development
213
213
  - !ruby/object:Gem::Dependency
214
214
  name: activesupport
215
- version_requirements: !ruby/object:Gem::Requirement
216
- requirements:
217
- - - ">="
218
- - !ruby/object:Gem::Version
219
- version: '0'
220
215
  requirement: !ruby/object:Gem::Requirement
221
216
  requirements:
222
217
  - - ">="
223
218
  - !ruby/object:Gem::Version
224
219
  version: '0'
225
- prerelease: false
226
220
  type: :development
227
- - !ruby/object:Gem::Dependency
228
- name: faraday
221
+ prerelease: false
229
222
  version_requirements: !ruby/object:Gem::Requirement
230
223
  requirements:
231
224
  - - ">="
232
225
  - !ruby/object:Gem::Version
233
226
  version: '0'
227
+ - !ruby/object:Gem::Dependency
228
+ name: faraday
234
229
  requirement: !ruby/object:Gem::Requirement
235
230
  requirements:
236
231
  - - ">="
237
232
  - !ruby/object:Gem::Version
238
233
  version: '0'
239
- prerelease: false
240
234
  type: :development
241
- - !ruby/object:Gem::Dependency
242
- name: appraisal
235
+ prerelease: false
243
236
  version_requirements: !ruby/object:Gem::Requirement
244
237
  requirements:
245
238
  - - ">="
246
239
  - !ruby/object:Gem::Version
247
240
  version: '0'
241
+ - !ruby/object:Gem::Dependency
242
+ name: appraisal
248
243
  requirement: !ruby/object:Gem::Requirement
249
244
  requirements:
250
245
  - - ">="
251
246
  - !ruby/object:Gem::Version
252
247
  version: '0'
253
- prerelease: false
254
248
  type: :development
255
- description: Enables consumer driven contract testing, providing a mock service and DSL for the consumer project, and interaction playback and verification for the service provider project.
249
+ prerelease: false
250
+ version_requirements: !ruby/object:Gem::Requirement
251
+ requirements:
252
+ - - ">="
253
+ - !ruby/object:Gem::Version
254
+ version: '0'
255
+ description: Enables consumer driven contract testing, providing a mock service and
256
+ DSL for the consumer project, and interaction playback and verification for the
257
+ service provider project.
256
258
  email:
257
259
  - james.fraser@alumni.swinburne.edu
258
260
  - sergei.matheson@gmail.com
@@ -330,6 +332,10 @@ files:
330
332
  - lib/pact/provider/state/provider_state_proxy.rb
331
333
  - lib/pact/provider/test_methods.rb
332
334
  - lib/pact/provider/verification_report.rb
335
+ - lib/pact/provider/verification_results/create.rb
336
+ - lib/pact/provider/verification_results/publish.rb
337
+ - lib/pact/provider/verification_results/publish_all.rb
338
+ - lib/pact/provider/verification_results/verification_result.rb
333
339
  - lib/pact/provider/world.rb
334
340
  - lib/pact/tasks.rb
335
341
  - lib/pact/tasks/task_helper.rb
@@ -343,7 +349,7 @@ homepage: https://github.com/realestate-com-au/pact
343
349
  licenses:
344
350
  - MIT
345
351
  metadata: {}
346
- post_install_message:
352
+ post_install_message:
347
353
  rdoc_options: []
348
354
  require_paths:
349
355
  - lib
@@ -358,9 +364,11 @@ required_rubygems_version: !ruby/object:Gem::Requirement
358
364
  - !ruby/object:Gem::Version
359
365
  version: '0'
360
366
  requirements: []
361
- rubyforge_project:
362
- rubygems_version: 2.4.8
363
- signing_key:
367
+ rubyforge_project:
368
+ rubygems_version: 2.6.11
369
+ signing_key:
364
370
  specification_version: 4
365
- summary: Enables consumer driven contract testing, providing a mock service and DSL for the consumer project, and interaction playback and verification for the service provider project.
371
+ summary: Enables consumer driven contract testing, providing a mock service and DSL
372
+ for the consumer project, and interaction playback and verification for the service
373
+ provider project.
366
374
  test_files: []