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 +4 -4
- data/CHANGELOG.md +8 -0
- data/lib/pact/provider/configuration/configuration_extension.rb +2 -0
- data/lib/pact/provider/configuration/service_provider_config.rb +9 -1
- data/lib/pact/provider/configuration/service_provider_dsl.rb +22 -3
- data/lib/pact/provider/pact_source.rb +4 -1
- data/lib/pact/provider/pact_spec_runner.rb +7 -2
- data/lib/pact/provider/pact_uri.rb +15 -4
- data/lib/pact/provider/rspec.rb +6 -6
- data/lib/pact/provider/verification_results/create.rb +42 -0
- data/lib/pact/provider/verification_results/publish.rb +78 -0
- data/lib/pact/provider/verification_results/publish_all.rb +36 -0
- data/lib/pact/provider/verification_results/verification_result.rb +28 -0
- data/lib/pact/version.rb +1 -1
- data/pact.gemspec +3 -3
- metadata +92 -84
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8e38dc280e6592408508f4e59c018203b8504946
|
4
|
+
data.tar.gz: f26b048371865114bea388c812bf2b33bc23ead9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
|
|
@@ -3,13 +3,21 @@ module Pact
|
|
3
3
|
module Configuration
|
4
4
|
class ServiceProviderConfig
|
5
5
|
|
6
|
-
|
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
|
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
|
-
|
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(
|
19
|
-
URI(@uri).tap { |x| x.userinfo="#{
|
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
|
data/lib/pact/provider/rspec.rb
CHANGED
@@ -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}", :
|
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(:
|
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
|
-
:
|
65
|
-
:
|
66
|
-
:
|
67
|
-
:
|
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
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'
|
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', '~>
|
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', '~>
|
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.
|
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:
|
15
|
+
date: 2017-05-08 00:00:00.000000000 Z
|
16
16
|
dependencies:
|
17
17
|
- !ruby/object:Gem::Dependency
|
18
18
|
name: randexp
|
19
|
-
|
19
|
+
requirement: !ruby/object:Gem::Requirement
|
20
20
|
requirements:
|
21
21
|
- - "~>"
|
22
22
|
- !ruby/object:Gem::Version
|
23
23
|
version: 0.1.7
|
24
|
-
|
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
|
-
|
33
|
+
requirement: !ruby/object:Gem::Requirement
|
34
34
|
requirements:
|
35
35
|
- - ">="
|
36
36
|
- !ruby/object:Gem::Version
|
37
37
|
version: '2.14'
|
38
|
-
|
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
|
-
|
47
|
+
requirement: !ruby/object:Gem::Requirement
|
48
48
|
requirements:
|
49
49
|
- - "~>"
|
50
50
|
- !ruby/object:Gem::Version
|
51
51
|
version: 0.6.2
|
52
|
-
|
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
|
-
|
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:
|
85
|
-
prerelease: false
|
79
|
+
version: 1.8.5
|
86
80
|
type: :runtime
|
87
|
-
|
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:
|
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
|
-
|
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: '
|
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
|
-
|
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
|
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
|
-
|
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.
|
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: '
|
141
|
-
prerelease: false
|
135
|
+
version: '1.2'
|
142
136
|
type: :runtime
|
143
|
-
|
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:
|
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
|
-
|
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:
|
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:
|
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
|
-
|
173
|
+
requirement: !ruby/object:Gem::Requirement
|
174
174
|
requirements:
|
175
175
|
- - ">="
|
176
176
|
- !ruby/object:Gem::Version
|
177
177
|
version: '0'
|
178
|
-
|
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
|
-
|
187
|
+
requirement: !ruby/object:Gem::Requirement
|
188
188
|
requirements:
|
189
189
|
- - '='
|
190
190
|
- !ruby/object:Gem::Version
|
191
191
|
version: '0.5'
|
192
|
-
|
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
|
-
|
201
|
+
requirement: !ruby/object:Gem::Requirement
|
202
202
|
requirements:
|
203
203
|
- - "~>"
|
204
204
|
- !ruby/object:Gem::Version
|
205
205
|
version: '2.0'
|
206
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
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.
|
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
|
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: []
|