pact_broker-client 1.1.0 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.travis.yml +16 -1
- data/Appraisals +6 -0
- data/CHANGELOG.md +7 -0
- data/README.md +2 -0
- data/gemfiles/default.gemfile +5 -0
- data/gemfiles/default.gemfile.lock +99 -0
- data/gemfiles/ruby_under_22.gemfile +7 -0
- data/gemfiles/ruby_under_22.gemfile.lock +100 -0
- data/lib/pact_broker/client/base_client.rb +1 -1
- data/lib/pact_broker/client/pacts.rb +23 -0
- data/lib/pact_broker/client/version.rb +1 -1
- data/pact-broker-client.gemspec +2 -3
- data/spec/pacts/pact_broker_client-pact_broker.json +61 -1
- data/spec/service_providers/pact_broker_client_retrieve_all_pacts_for_provider_spec.rb +53 -0
- data/spec/service_providers/pact_broker_client_retrive_pact_spec.rb +1 -1
- data/spec/support/latest_pacts_for_provider.json +15 -0
- metadata +25 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 6ce7491eef82209698edba4cb2634ceb83ef69f4
|
|
4
|
+
data.tar.gz: 14a3c6d6f84aa3826b68bce12b74528f69e5978d
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: d0213fe9b132dcecacff316757703115d2c849ba40dadb9d20ba035df8e269e348fba8dd390d8d8809f23b3aa35e86a6c8e8c33af961813b36e6353311e69fb2
|
|
7
|
+
data.tar.gz: 22f7ecc131a2e0ab53bc21700cae9c406d7b52b1c4e5a51eb45657a3f4d8db190fbd674168a70e892a602f94cc3eaf2a9ef4a206717b87884a6bec20b23e578e
|
data/.travis.yml
CHANGED
|
@@ -1,8 +1,23 @@
|
|
|
1
1
|
language: ruby
|
|
2
|
-
sudo: false
|
|
3
2
|
rvm:
|
|
4
3
|
- 2.0.0
|
|
5
4
|
- 2.1.8
|
|
6
5
|
- 2.2.4
|
|
7
6
|
- 2.3.1
|
|
8
7
|
- jruby-9.0.5.0
|
|
8
|
+
gemfile:
|
|
9
|
+
- gemfiles/default.gemfile
|
|
10
|
+
- gemfiles/ruby_under_22.gemfile
|
|
11
|
+
matrix:
|
|
12
|
+
exclude:
|
|
13
|
+
# rack 2.0 and activesupport 5.0 no longer support ruby under 2.2.
|
|
14
|
+
- rvm: 2.0.0
|
|
15
|
+
gemfile: gemfiles/default.gemfile
|
|
16
|
+
- rvm: 2.1.8
|
|
17
|
+
gemfile: gemfiles/default.gemfile
|
|
18
|
+
- rvm: 2.2.4
|
|
19
|
+
gemfile: gemfiles/ruby_under_22.gemfile
|
|
20
|
+
- rvm: 2.3.1
|
|
21
|
+
gemfile: gemfiles/ruby_under_22.gemfile
|
|
22
|
+
- rvm: jruby-9.0.5.0
|
|
23
|
+
gemfile: gemfiles/ruby_under_22.gemfile
|
data/Appraisals
ADDED
data/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,13 @@ 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.2.0 (2016-11-23)
|
|
6
|
+
* 08e6025 - Fixed broken spec - expected hal+json (Bethany Skurrie, Wed Nov 23 09:20:39 2016 +1100)
|
|
7
|
+
* ec4b7d7 - Added Travis badge. (Beth Skurrie, Wed Nov 23 09:16:10 2016 +1100)
|
|
8
|
+
* ff133f2 - Adding appraisals and updating test matrix (Bethany Skurrie, Wed Nov 23 09:10:40 2016 +1100)
|
|
9
|
+
* e79eec6 - Add hal+json to list of accepted content types (Steve Pletcher, Wed Sep 21 10:27:20 2016 -0400)
|
|
10
|
+
* 314f059 - add the option to retrieve all the latest (tagged) pacts for a provider (Olga Vasylchenko, Mon Nov 21 15:01:09 2016 +0100)
|
|
11
|
+
|
|
5
12
|
#### 1.1.0 (2016-08-19)
|
|
6
13
|
* b5ea1b3 - Add support for publishing pacts via patch request (Steve Pletcher, Fri Aug 5 11:16:18 2016 -0400)
|
|
7
14
|
|
data/README.md
CHANGED
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
A client for the Pact Broker. Publishes pacts to, and retrieves pacts from, the pact broker.
|
|
4
4
|
|
|
5
|
+
[](https://travis-ci.org/bethesque/pact_broker-client)
|
|
6
|
+
|
|
5
7
|
## Usage
|
|
6
8
|
|
|
7
9
|
You will need an instance of a [Pact Broker](https://github.com/bethesque/pact_broker). It's URL will be used below in the configuration for the Consumer and the Provider. eg. http://pact-broker.my.org
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
PATH
|
|
2
|
+
remote: ../
|
|
3
|
+
specs:
|
|
4
|
+
pact_broker-client (1.1.1)
|
|
5
|
+
httparty
|
|
6
|
+
json
|
|
7
|
+
pact
|
|
8
|
+
term-ansicolor
|
|
9
|
+
|
|
10
|
+
GEM
|
|
11
|
+
remote: https://rubygems.org/
|
|
12
|
+
specs:
|
|
13
|
+
appraisal (1.0.2)
|
|
14
|
+
bundler
|
|
15
|
+
rake
|
|
16
|
+
thor (>= 0.14.0)
|
|
17
|
+
awesome_print (1.7.0)
|
|
18
|
+
coderay (1.1.1)
|
|
19
|
+
diff-lcs (1.2.5)
|
|
20
|
+
fakefs (0.6.1)
|
|
21
|
+
find_a_port (1.0.1)
|
|
22
|
+
httparty (0.13.5)
|
|
23
|
+
json (~> 1.8)
|
|
24
|
+
multi_xml (>= 0.5.2)
|
|
25
|
+
json (1.8.3)
|
|
26
|
+
method_source (0.8.2)
|
|
27
|
+
multi_xml (0.5.5)
|
|
28
|
+
pact (1.9.0)
|
|
29
|
+
awesome_print (~> 1.1)
|
|
30
|
+
find_a_port (~> 1.0.1)
|
|
31
|
+
json
|
|
32
|
+
pact-mock_service (~> 0.7)
|
|
33
|
+
pact-support (~> 0.5)
|
|
34
|
+
rack-test (~> 0.6.2)
|
|
35
|
+
randexp (~> 0.1.7)
|
|
36
|
+
rspec (>= 2.14)
|
|
37
|
+
term-ansicolor (~> 1.0)
|
|
38
|
+
thor
|
|
39
|
+
webrick
|
|
40
|
+
pact-mock_service (0.7.0)
|
|
41
|
+
find_a_port (~> 1.0.1)
|
|
42
|
+
json
|
|
43
|
+
pact-support (~> 0.5)
|
|
44
|
+
rack
|
|
45
|
+
rack-test (~> 0.6.2)
|
|
46
|
+
rspec (>= 2.14)
|
|
47
|
+
term-ansicolor (~> 1.0)
|
|
48
|
+
thor
|
|
49
|
+
webrick
|
|
50
|
+
pact-support (0.5.1)
|
|
51
|
+
awesome_print (~> 1.1)
|
|
52
|
+
find_a_port (~> 1.0.1)
|
|
53
|
+
json
|
|
54
|
+
rack-test (~> 0.6.2)
|
|
55
|
+
randexp (~> 0.1.7)
|
|
56
|
+
rspec (>= 2.14)
|
|
57
|
+
term-ansicolor (~> 1.0)
|
|
58
|
+
thor
|
|
59
|
+
pry (0.10.1)
|
|
60
|
+
coderay (~> 1.1.0)
|
|
61
|
+
method_source (~> 0.8.1)
|
|
62
|
+
slop (~> 3.4)
|
|
63
|
+
rack (1.6.4)
|
|
64
|
+
rack-test (0.6.3)
|
|
65
|
+
rack (>= 1.0)
|
|
66
|
+
rake (10.0.4)
|
|
67
|
+
randexp (0.1.7)
|
|
68
|
+
rspec (3.3.0)
|
|
69
|
+
rspec-core (~> 3.3.0)
|
|
70
|
+
rspec-expectations (~> 3.3.0)
|
|
71
|
+
rspec-mocks (~> 3.3.0)
|
|
72
|
+
rspec-core (3.3.2)
|
|
73
|
+
rspec-support (~> 3.3.0)
|
|
74
|
+
rspec-expectations (3.3.1)
|
|
75
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
|
76
|
+
rspec-support (~> 3.3.0)
|
|
77
|
+
rspec-fire (1.3.0)
|
|
78
|
+
rspec (>= 2.11, < 4)
|
|
79
|
+
rspec-mocks (3.3.2)
|
|
80
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
|
81
|
+
rspec-support (~> 3.3.0)
|
|
82
|
+
rspec-support (3.3.0)
|
|
83
|
+
slop (3.6.0)
|
|
84
|
+
term-ansicolor (1.3.2)
|
|
85
|
+
tins (~> 1.0)
|
|
86
|
+
thor (0.19.1)
|
|
87
|
+
tins (1.12.0)
|
|
88
|
+
webrick (1.3.1)
|
|
89
|
+
|
|
90
|
+
PLATFORMS
|
|
91
|
+
ruby
|
|
92
|
+
|
|
93
|
+
DEPENDENCIES
|
|
94
|
+
appraisal
|
|
95
|
+
fakefs (~> 0.4)
|
|
96
|
+
pact_broker-client!
|
|
97
|
+
pry
|
|
98
|
+
rake (~> 10.0.3)
|
|
99
|
+
rspec-fire
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
PATH
|
|
2
|
+
remote: ../
|
|
3
|
+
specs:
|
|
4
|
+
pact_broker-client (1.1.1)
|
|
5
|
+
httparty
|
|
6
|
+
json
|
|
7
|
+
pact
|
|
8
|
+
term-ansicolor
|
|
9
|
+
|
|
10
|
+
GEM
|
|
11
|
+
remote: https://rubygems.org/
|
|
12
|
+
specs:
|
|
13
|
+
appraisal (1.0.2)
|
|
14
|
+
bundler
|
|
15
|
+
rake
|
|
16
|
+
thor (>= 0.14.0)
|
|
17
|
+
awesome_print (1.7.0)
|
|
18
|
+
coderay (1.1.1)
|
|
19
|
+
diff-lcs (1.2.5)
|
|
20
|
+
fakefs (0.6.1)
|
|
21
|
+
find_a_port (1.0.1)
|
|
22
|
+
httparty (0.13.5)
|
|
23
|
+
json (~> 1.8)
|
|
24
|
+
multi_xml (>= 0.5.2)
|
|
25
|
+
json (1.8.3)
|
|
26
|
+
method_source (0.8.2)
|
|
27
|
+
multi_xml (0.5.5)
|
|
28
|
+
pact (1.9.0)
|
|
29
|
+
awesome_print (~> 1.1)
|
|
30
|
+
find_a_port (~> 1.0.1)
|
|
31
|
+
json
|
|
32
|
+
pact-mock_service (~> 0.7)
|
|
33
|
+
pact-support (~> 0.5)
|
|
34
|
+
rack-test (~> 0.6.2)
|
|
35
|
+
randexp (~> 0.1.7)
|
|
36
|
+
rspec (>= 2.14)
|
|
37
|
+
term-ansicolor (~> 1.0)
|
|
38
|
+
thor
|
|
39
|
+
webrick
|
|
40
|
+
pact-mock_service (0.7.0)
|
|
41
|
+
find_a_port (~> 1.0.1)
|
|
42
|
+
json
|
|
43
|
+
pact-support (~> 0.5)
|
|
44
|
+
rack
|
|
45
|
+
rack-test (~> 0.6.2)
|
|
46
|
+
rspec (>= 2.14)
|
|
47
|
+
term-ansicolor (~> 1.0)
|
|
48
|
+
thor
|
|
49
|
+
webrick
|
|
50
|
+
pact-support (0.5.1)
|
|
51
|
+
awesome_print (~> 1.1)
|
|
52
|
+
find_a_port (~> 1.0.1)
|
|
53
|
+
json
|
|
54
|
+
rack-test (~> 0.6.2)
|
|
55
|
+
randexp (~> 0.1.7)
|
|
56
|
+
rspec (>= 2.14)
|
|
57
|
+
term-ansicolor (~> 1.0)
|
|
58
|
+
thor
|
|
59
|
+
pry (0.10.1)
|
|
60
|
+
coderay (~> 1.1.0)
|
|
61
|
+
method_source (~> 0.8.1)
|
|
62
|
+
slop (~> 3.4)
|
|
63
|
+
rack (1.6.4)
|
|
64
|
+
rack-test (0.6.3)
|
|
65
|
+
rack (>= 1.0)
|
|
66
|
+
rake (10.0.4)
|
|
67
|
+
randexp (0.1.7)
|
|
68
|
+
rspec (3.3.0)
|
|
69
|
+
rspec-core (~> 3.3.0)
|
|
70
|
+
rspec-expectations (~> 3.3.0)
|
|
71
|
+
rspec-mocks (~> 3.3.0)
|
|
72
|
+
rspec-core (3.3.2)
|
|
73
|
+
rspec-support (~> 3.3.0)
|
|
74
|
+
rspec-expectations (3.3.1)
|
|
75
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
|
76
|
+
rspec-support (~> 3.3.0)
|
|
77
|
+
rspec-fire (1.3.0)
|
|
78
|
+
rspec (>= 2.11, < 4)
|
|
79
|
+
rspec-mocks (3.3.2)
|
|
80
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
|
81
|
+
rspec-support (~> 3.3.0)
|
|
82
|
+
rspec-support (3.3.0)
|
|
83
|
+
slop (3.6.0)
|
|
84
|
+
term-ansicolor (1.3.2)
|
|
85
|
+
tins (~> 1.0)
|
|
86
|
+
thor (0.19.1)
|
|
87
|
+
tins (1.12.0)
|
|
88
|
+
webrick (1.3.1)
|
|
89
|
+
|
|
90
|
+
PLATFORMS
|
|
91
|
+
ruby
|
|
92
|
+
|
|
93
|
+
DEPENDENCIES
|
|
94
|
+
appraisal
|
|
95
|
+
fakefs (~> 0.4)
|
|
96
|
+
pact_broker-client!
|
|
97
|
+
pry
|
|
98
|
+
rack (< 2.0)
|
|
99
|
+
rake (~> 10.0.3)
|
|
100
|
+
rspec-fire
|
|
@@ -46,6 +46,14 @@ module PactBroker
|
|
|
46
46
|
end
|
|
47
47
|
end
|
|
48
48
|
|
|
49
|
+
def list_latest_for_provider options
|
|
50
|
+
url = get_latest_provider_contracts(options)
|
|
51
|
+
response = self.class.get(url, headers: {})
|
|
52
|
+
handle_response(response) do
|
|
53
|
+
map_latest_provider_pacts_to_hash JSON.parse(response.body)["_links"]["pacts"]
|
|
54
|
+
end
|
|
55
|
+
end
|
|
56
|
+
|
|
49
57
|
def latest options
|
|
50
58
|
url = get_latest_consumer_contract_url(options)
|
|
51
59
|
response = self.class.get(url, headers: default_get_headers)
|
|
@@ -73,6 +81,15 @@ module PactBroker
|
|
|
73
81
|
end
|
|
74
82
|
end
|
|
75
83
|
|
|
84
|
+
def map_latest_provider_pacts_to_hash pacts_list
|
|
85
|
+
pacts_list.collect do |pact_hash|
|
|
86
|
+
{
|
|
87
|
+
name: pact_hash["name"],
|
|
88
|
+
href: pact_hash["href"]
|
|
89
|
+
}
|
|
90
|
+
end
|
|
91
|
+
end
|
|
92
|
+
|
|
76
93
|
def find_latest_link response
|
|
77
94
|
links = response['_links']
|
|
78
95
|
return nil unless links
|
|
@@ -98,6 +115,12 @@ module PactBroker
|
|
|
98
115
|
"/pacts/provider/#{provider_name}/consumer/#{consumer_name}/latest#{tag}"
|
|
99
116
|
end
|
|
100
117
|
|
|
118
|
+
def get_latest_provider_contracts options
|
|
119
|
+
provider_name = encode_param(options[:provider])
|
|
120
|
+
tag = options[:tag] ? "/#{options[:tag]}" : ""
|
|
121
|
+
"/pacts/provider/#{provider_name}/latest#{tag}"
|
|
122
|
+
end
|
|
123
|
+
|
|
101
124
|
def get_consumer_contract_url options
|
|
102
125
|
consumer_name = encode_param(options[:consumer])
|
|
103
126
|
provider_name = encode_param(options[:provider])
|
data/pact-broker-client.gemspec
CHANGED
|
@@ -23,13 +23,12 @@ Gem::Specification.new do |gem|
|
|
|
23
23
|
|
|
24
24
|
gem.add_runtime_dependency 'pact'
|
|
25
25
|
gem.add_runtime_dependency 'httparty'
|
|
26
|
-
gem.add_runtime_dependency 'json'
|
|
26
|
+
gem.add_runtime_dependency 'json'
|
|
27
27
|
gem.add_runtime_dependency 'term-ansicolor'
|
|
28
28
|
|
|
29
|
-
#gem.add_development_dependency 'geminabox-client'
|
|
30
29
|
gem.add_development_dependency 'rake', '~> 10.0.3'
|
|
31
30
|
gem.add_development_dependency 'pry'
|
|
32
31
|
gem.add_development_dependency 'fakefs', '~> 0.4'
|
|
33
32
|
gem.add_development_dependency 'rspec-fire'
|
|
34
|
-
|
|
33
|
+
gem.add_development_dependency 'appraisal'
|
|
35
34
|
end
|
|
@@ -426,6 +426,66 @@
|
|
|
426
426
|
}
|
|
427
427
|
}
|
|
428
428
|
},
|
|
429
|
+
{
|
|
430
|
+
"description": "a request for the list of the latest prod pacts from all consumers for the Pricing Service'",
|
|
431
|
+
"provider_state": "tagged as prod pact between Condor and the Pricing Service exists",
|
|
432
|
+
"request": {
|
|
433
|
+
"method": "get",
|
|
434
|
+
"path": "/pacts/provider/Pricing%20Service/latest/prod",
|
|
435
|
+
"headers": {
|
|
436
|
+
}
|
|
437
|
+
},
|
|
438
|
+
"response": {
|
|
439
|
+
"status": 200,
|
|
440
|
+
"headers": {
|
|
441
|
+
},
|
|
442
|
+
"body": {
|
|
443
|
+
"_links": {
|
|
444
|
+
"provider": {
|
|
445
|
+
"href": "http://example.org/pacticipants/Pricing%20Service",
|
|
446
|
+
"title": "Pricing%20Service"
|
|
447
|
+
},
|
|
448
|
+
"pacts": [
|
|
449
|
+
{
|
|
450
|
+
"href": "http://example.org/pacts/provider/Pricing%20Service/consumer/Condor/version/1.3.0",
|
|
451
|
+
"title": "Pact between Condor (v1.3.0) and Pricing%20Service",
|
|
452
|
+
"name": "Condor"
|
|
453
|
+
}
|
|
454
|
+
]
|
|
455
|
+
}
|
|
456
|
+
}
|
|
457
|
+
}
|
|
458
|
+
},
|
|
459
|
+
{
|
|
460
|
+
"description": "a request for the list of the latest pacts from all consumers for the Pricing Service'",
|
|
461
|
+
"provider_state": "a latest pact between Condor and the Pricing Service exists",
|
|
462
|
+
"request": {
|
|
463
|
+
"method": "get",
|
|
464
|
+
"path": "/pacts/provider/Pricing%20Service/latest",
|
|
465
|
+
"headers": {
|
|
466
|
+
}
|
|
467
|
+
},
|
|
468
|
+
"response": {
|
|
469
|
+
"status": 200,
|
|
470
|
+
"headers": {
|
|
471
|
+
},
|
|
472
|
+
"body": {
|
|
473
|
+
"_links": {
|
|
474
|
+
"provider": {
|
|
475
|
+
"href": "http://example.org/pacticipants/Pricing%20Service",
|
|
476
|
+
"title": "Pricing%20Service"
|
|
477
|
+
},
|
|
478
|
+
"pacts": [
|
|
479
|
+
{
|
|
480
|
+
"href": "http://example.org/pacts/provider/Pricing%20Service/consumer/Condor/version/1.3.0",
|
|
481
|
+
"title": "Pact between Condor (v1.3.0) and Pricing%20Service",
|
|
482
|
+
"name": "Condor"
|
|
483
|
+
}
|
|
484
|
+
]
|
|
485
|
+
}
|
|
486
|
+
}
|
|
487
|
+
}
|
|
488
|
+
},
|
|
429
489
|
{
|
|
430
490
|
"description": "a request retrieve a pact for a specific version",
|
|
431
491
|
"provider_state": "the 'Pricing Service' and 'Condor' already exist in the pact-broker, and Condor already has a pact published for version 1.3.0",
|
|
@@ -512,7 +572,7 @@
|
|
|
512
572
|
"method": "get",
|
|
513
573
|
"path": "/pacts/provider/Pricing%20Service/consumer/Condor/latest/prod",
|
|
514
574
|
"headers": {
|
|
515
|
-
"Accept": "application/json"
|
|
575
|
+
"Accept": "application/json, application/hal+json"
|
|
516
576
|
}
|
|
517
577
|
},
|
|
518
578
|
"response": {
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
require_relative 'pact_helper'
|
|
2
|
+
require 'pact_broker/client'
|
|
3
|
+
|
|
4
|
+
module PactBroker::Client
|
|
5
|
+
describe Pacts, :pact => true do
|
|
6
|
+
|
|
7
|
+
include_context "pact broker"
|
|
8
|
+
|
|
9
|
+
describe "retriving all pacts for provider" do
|
|
10
|
+
let(:response_body) { JSON.parse(File.read("./spec/support/latest_pacts_for_provider.json")) }
|
|
11
|
+
let(:expectedPactsArray) { [{:name => "Condor", :href => "http://example.org/pacts/provider/Pricing%20Service/consumer/Condor/version/1.3.0"}] }
|
|
12
|
+
|
|
13
|
+
context "when retrieving all the latest pacts for provider with prod tag specified" do
|
|
14
|
+
before do
|
|
15
|
+
pact_broker.
|
|
16
|
+
given("tagged as prod pact between Condor and the Pricing Service exists").
|
|
17
|
+
upon_receiving("a request for the list of the latest prod pacts from all consumers for the Pricing Service'").
|
|
18
|
+
with(
|
|
19
|
+
method: :get,
|
|
20
|
+
path: "/pacts/provider/Pricing%20Service/latest/prod",
|
|
21
|
+
headers: {}).
|
|
22
|
+
will_respond_with(
|
|
23
|
+
status: 200,
|
|
24
|
+
body: response_body)
|
|
25
|
+
end
|
|
26
|
+
it 'returns the map of all provider latest prod pacts' do
|
|
27
|
+
pactsArray = pact_broker_client.pacticipants.versions.pacts.list_latest_for_provider provider: 'Pricing Service', tag: 'prod'
|
|
28
|
+
expect(pactsArray.length).to eq(1)
|
|
29
|
+
expect(pactsArray).to eq(expectedPactsArray)
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
context "when retrieving all the latest pacts for provider with no tag specified" do
|
|
33
|
+
before do
|
|
34
|
+
pact_broker.
|
|
35
|
+
given("a latest pact between Condor and the Pricing Service exists").
|
|
36
|
+
upon_receiving("a request for the list of the latest pacts from all consumers for the Pricing Service'").
|
|
37
|
+
with(
|
|
38
|
+
method: :get,
|
|
39
|
+
path: "/pacts/provider/Pricing%20Service/latest",
|
|
40
|
+
headers: {}).
|
|
41
|
+
will_respond_with(
|
|
42
|
+
status: 200,
|
|
43
|
+
body: response_body)
|
|
44
|
+
end
|
|
45
|
+
it 'returns the map of all provider latest pacts' do
|
|
46
|
+
pactsArray = pact_broker_client.pacticipants.versions.pacts.list_latest_for_provider provider: 'Pricing Service'
|
|
47
|
+
expect(pactsArray.length).to eq(1)
|
|
48
|
+
expect(pactsArray).to eq(expectedPactsArray)
|
|
49
|
+
end
|
|
50
|
+
end
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
end
|
|
@@ -89,7 +89,7 @@ module PactBroker::Client
|
|
|
89
89
|
with(
|
|
90
90
|
method: :get,
|
|
91
91
|
path: '/pacts/provider/Pricing%20Service/consumer/Condor/latest/prod',
|
|
92
|
-
headers:
|
|
92
|
+
headers: { 'Accept' => 'application/json, application/hal+json'}
|
|
93
93
|
).
|
|
94
94
|
will_respond_with(
|
|
95
95
|
status: 200,
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
{
|
|
2
|
+
"_links": {
|
|
3
|
+
"provider": {
|
|
4
|
+
"href": "http://example.org/pacticipants/Pricing%20Service",
|
|
5
|
+
"title": "Pricing%20Service"
|
|
6
|
+
},
|
|
7
|
+
"pacts": [
|
|
8
|
+
{
|
|
9
|
+
"href": "http://example.org/pacts/provider/Pricing%20Service/consumer/Condor/version/1.3.0",
|
|
10
|
+
"title": "Pact between Condor (v1.3.0) and Pricing%20Service",
|
|
11
|
+
"name": "Condor"
|
|
12
|
+
}
|
|
13
|
+
]
|
|
14
|
+
}
|
|
15
|
+
}
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: pact_broker-client
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.
|
|
4
|
+
version: 1.2.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Bethany Skurrie
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2016-
|
|
11
|
+
date: 2016-11-23 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: pact
|
|
@@ -122,6 +122,20 @@ dependencies:
|
|
|
122
122
|
- - '>='
|
|
123
123
|
- !ruby/object:Gem::Version
|
|
124
124
|
version: '0'
|
|
125
|
+
- !ruby/object:Gem::Dependency
|
|
126
|
+
name: appraisal
|
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
|
128
|
+
requirements:
|
|
129
|
+
- - '>='
|
|
130
|
+
- !ruby/object:Gem::Version
|
|
131
|
+
version: '0'
|
|
132
|
+
type: :development
|
|
133
|
+
prerelease: false
|
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
135
|
+
requirements:
|
|
136
|
+
- - '>='
|
|
137
|
+
- !ruby/object:Gem::Version
|
|
138
|
+
version: '0'
|
|
125
139
|
description: Publishes pacts to, and retrieves pacts from, the pact broker server.
|
|
126
140
|
email:
|
|
127
141
|
- bskurrie@dius.com.au
|
|
@@ -132,6 +146,7 @@ files:
|
|
|
132
146
|
- .gitignore
|
|
133
147
|
- .rspec
|
|
134
148
|
- .travis.yml
|
|
149
|
+
- Appraisals
|
|
135
150
|
- CHANGELOG.md
|
|
136
151
|
- Gemfile
|
|
137
152
|
- README.md
|
|
@@ -140,6 +155,10 @@ files:
|
|
|
140
155
|
- ci.sh
|
|
141
156
|
- doc/markdown/Pact Broker Client - Pact Broker.md
|
|
142
157
|
- doc/markdown/README.md
|
|
158
|
+
- gemfiles/default.gemfile
|
|
159
|
+
- gemfiles/default.gemfile.lock
|
|
160
|
+
- gemfiles/ruby_under_22.gemfile
|
|
161
|
+
- gemfiles/ruby_under_22.gemfile.lock
|
|
143
162
|
- lib/pact_broker/client.rb
|
|
144
163
|
- lib/pact_broker/client/base_client.rb
|
|
145
164
|
- lib/pact_broker/client/pact_broker_client.rb
|
|
@@ -164,10 +183,12 @@ files:
|
|
|
164
183
|
- spec/service_providers/pact_broker_client_pacticipant_version_spec.rb
|
|
165
184
|
- spec/service_providers/pact_broker_client_publish_spec.rb
|
|
166
185
|
- spec/service_providers/pact_broker_client_register_repository_spec.rb
|
|
186
|
+
- spec/service_providers/pact_broker_client_retrieve_all_pacts_for_provider_spec.rb
|
|
167
187
|
- spec/service_providers/pact_broker_client_retrive_pact_spec.rb
|
|
168
188
|
- spec/service_providers/pact_broker_client_tags_spec.rb
|
|
169
189
|
- spec/service_providers/pact_helper.rb
|
|
170
190
|
- spec/spec_helper.rb
|
|
191
|
+
- spec/support/latest_pacts_for_provider.json
|
|
171
192
|
- spec/support/pacticipant_get.json
|
|
172
193
|
- spec/support/pacticipants_list.json
|
|
173
194
|
- spec/support/pacts_latest_list.json
|
|
@@ -209,10 +230,12 @@ test_files:
|
|
|
209
230
|
- spec/service_providers/pact_broker_client_pacticipant_version_spec.rb
|
|
210
231
|
- spec/service_providers/pact_broker_client_publish_spec.rb
|
|
211
232
|
- spec/service_providers/pact_broker_client_register_repository_spec.rb
|
|
233
|
+
- spec/service_providers/pact_broker_client_retrieve_all_pacts_for_provider_spec.rb
|
|
212
234
|
- spec/service_providers/pact_broker_client_retrive_pact_spec.rb
|
|
213
235
|
- spec/service_providers/pact_broker_client_tags_spec.rb
|
|
214
236
|
- spec/service_providers/pact_helper.rb
|
|
215
237
|
- spec/spec_helper.rb
|
|
238
|
+
- spec/support/latest_pacts_for_provider.json
|
|
216
239
|
- spec/support/pacticipant_get.json
|
|
217
240
|
- spec/support/pacticipants_list.json
|
|
218
241
|
- spec/support/pacts_latest_list.json
|