pact_broker 1.0.0.alpha1 → 1.0.0.alpha2

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,10 @@
1
+ 1,Media Projects,1,3158419,0,1,0,0,0,0,0,0,0,0,0
2
+ 2,Billee,1,3158419,0,2,0,0,0,0,0,0,0,0,0
3
+ 3,Media Billee Orchestrator,1,3158419,0,3,2,1,0,0,0,0,0,0,0
4
+ 4,Media Bill to Contact Sync,1,3158419,0,4,5,2,1,0,0,0,0,0,0
5
+ 5,Media Bill to Contact Changes,1,3158419,0,5,0,0,0,0,0,0,0,0,0
6
+ 6,Media Billing Account Sync,1,3158419,0,6,7,2,1,0,0,0,0,0,0
7
+ 7,Media Billing Account Changes,1,3158419,0,7,0,0,0,0,0,0,0,0,0
8
+ 8,Billee notifications,1,3158419,0,8,2,0,0,0,0,0,0,0,0
9
+ 9,Billee name notifications,1,3158419,0,9,10,0,0,0,0,0,0,0,0
10
+ 10,Media Project Changes,1,3158419,0,10,0,0,0,0,0,0,0,0,0
@@ -19,17 +19,17 @@ module PactBroker::Api
19
19
  let(:json_content) { 'json_content' }
20
20
  let(:pact) { double("pact", json_content: json_content)}
21
21
  let(:html) { 'html' }
22
- let(:pact_id_params) { {:provider_name=>"provider_name", :consumer_name=>"consumer_name", :consumer_version_number=>"latest"} }
22
+ let(:pact_id_params) { {:provider_name=>"provider_name", :consumer_name=>"consumer_name"} }
23
23
 
24
24
  before do
25
- allow(PactBroker::Services::PactService).to receive(:find_pact).and_return(pact)
25
+ allow(PactBroker::Services::PactService).to receive(:find_latest_pact).and_return(pact)
26
26
  allow(PactBroker.configuration.html_pact_renderer).to receive(:call).and_return(html)
27
27
  end
28
28
 
29
- subject { get "/pact/provider/provider_name/consumer/consumer_name/latest",{}, {'HTTP_ACCEPT' => "text/html"} }
29
+ subject { get "/pacts/provider/provider_name/consumer/consumer_name/latest",{}, {'HTTP_ACCEPT' => "text/html"} }
30
30
 
31
31
  it "find the pact" do
32
- expect(PactBroker::Services::PactService).to receive(:find_pact).with(pact_id_params)
32
+ expect(PactBroker::Services::PactService).to receive(:find_latest_pact).with(pact_id_params)
33
33
  subject
34
34
  end
35
35
 
@@ -4,15 +4,41 @@ require 'spec/support/provider_state_builder'
4
4
  module PactBroker
5
5
  module Repositories
6
6
  describe PactRepository do
7
+
8
+ describe "find_latest_pact" do
9
+
10
+ context "with a tag" do
11
+ context "when a version with a pact exists with the given tag" do
12
+ before do
13
+ ProviderStateBuilder.new
14
+ .create_consumer("Consumer")
15
+ .create_consumer_version("2.3.4")
16
+ .create_provider("Provider")
17
+ .create_pact
18
+ .create_consumer_version("1.2.3")
19
+ .create_consumer_version_tag("prod")
20
+ .create_pact
21
+ end
22
+
23
+ let(:latest_prod_pact) { PactRepository.new.find_latest_pact("Consumer", "Provider", "prod") }
24
+
25
+ it "returns the pact for the latest tagged version" do
26
+ expect(latest_prod_pact.consumer_version.number).to eq("1.2.3")
27
+ end
28
+ end
29
+
30
+ end
31
+ end
32
+
7
33
  describe "find_latest_pacts" do
8
34
  before do
9
35
  ProviderStateBuilder.new
10
36
  .create_condor
11
37
  .create_condor_version('1.3.0')
12
38
  .create_pricing_service
13
- .create_pact
39
+ .create_condor_pricing_service_pact
14
40
  .create_condor_version('1.4.0')
15
- .create_pact
41
+ .create_condor_pricing_service_pact
16
42
  .create_contract_email_service
17
43
  .create_contract_email_service_version('2.6.0')
18
44
  .create_contract_proposal_service
@@ -26,7 +26,8 @@ module PactBroker
26
26
 
27
27
  it "does something" do
28
28
  get "/"
29
- puts last_response.body
29
+ expect(last_response.body).to include("Relationships")
30
+ expect(last_response.status).to eq(200)
30
31
  end
31
32
 
32
33
  end
@@ -14,7 +14,7 @@ module PactBroker
14
14
 
15
15
  its(:consumer_name) { should eq 'consumer_name'}
16
16
  its(:provider_name) { should eq 'provider_name'}
17
- its(:latest_pact_url) { should eq "/pact/provider/provider_name/consumer/consumer_name/latest" }
17
+ its(:latest_pact_url) { should eq "/pacts/provider/provider_name/consumer/consumer_name/latest" }
18
18
 
19
19
  describe "<=>" do
20
20
 
@@ -21,7 +21,7 @@ Pact.service_provider "Pact Broker" do
21
21
  end
22
22
 
23
23
  # honours_pact_with "Pact Broker Client", :ref => :head do
24
- # pact_uri URI.encode("http://rea-pact-broker.biq.vpc.realestate.com.au/pact/provider/Pact Broker/consumer/Pact Broker Client/latest")
24
+ # pact_uri URI.encode("http://rea-pact-broker.biq.vpc.realestate.com.au/pacts/provider/Pact Broker/consumer/Pact Broker Client/latest")
25
25
  # end
26
26
 
27
27
  end
@@ -24,7 +24,7 @@ Pact.provider_states_for "Pact Broker Client" do
24
24
  .create_condor
25
25
  .create_condor_version('1.3.0')
26
26
  .create_pricing_service
27
- .create_pact
27
+ .create_condor_pricing_service_pact
28
28
  end
29
29
  end
30
30
 
@@ -38,7 +38,7 @@ Pact.provider_states_for "Pact Broker Client" do
38
38
  .create_condor
39
39
  .create_condor_version('1.3.0')
40
40
  .create_pricing_service
41
- .create_pact
41
+ .create_condor_pricing_service_pact
42
42
  end
43
43
  end
44
44
 
@@ -69,17 +69,22 @@ Pact.provider_states_for "Pact Broker Client" do
69
69
 
70
70
  provider_state "a pact between Condor and the Pricing Service exists for the production version of Condor" do
71
71
  set_up do
72
- # Your set up code goes here
72
+ ProviderStateBuilder.new
73
+ .create_consumer("Condor")
74
+ .create_consumer_version('1.3.0')
75
+ .create_consumer_version_tag('prod')
76
+ .create_provider("Pricing Service")
77
+ .create_pact
73
78
  end
74
79
  end
75
80
 
76
- provider_state "a version with production details exists for the Pricing Service" do
81
+ provider_state "a pacticipant version with production details exists for the Pricing Service" do
77
82
  set_up do
78
83
  # Your set up code goes here
79
84
  end
80
85
  end
81
86
 
82
- provider_state "no version exists for the Pricing Service" do
87
+ provider_state "no pacticipant version exists for the Pricing Service" do
83
88
  no_op
84
89
  end
85
90
  end
@@ -9,6 +9,9 @@ require './spec/support/provider_state_builder'
9
9
  require 'pact_broker/api'
10
10
  require 'rspec/fire'
11
11
 
12
+ YAML::ENGINE.yamler = 'psych'
13
+ I18n.config.enforce_available_locales = false
14
+
12
15
  def load_fixture(file_name)
13
16
  File.read(File.expand_path(File.join(File.dirname(__FILE__), 'fixtures', file_name)))
14
17
  end
@@ -50,7 +50,7 @@ class ProviderStateBuilder
50
50
  self
51
51
  end
52
52
 
53
- def create_pact
53
+ def create_condor_pricing_service_pact
54
54
  @pact_id = pact_repository.create(version_id: @condor_version_id, provider_id: @pricing_service_id, json_content: json_content).id
55
55
  self
56
56
  end
@@ -77,16 +77,43 @@ class ProviderStateBuilder
77
77
  self
78
78
  end
79
79
 
80
+ def create_consumer consumer_name
81
+ create_pacticipant consumer_name
82
+ @consumer = @pacticipant
83
+ self
84
+ end
85
+
86
+ def create_provider provider_name
87
+ create_pacticipant provider_name
88
+ @provider = @pacticipant
89
+ self
90
+ end
91
+
80
92
  def create_version version_number
81
93
  @version = PactBroker::Models::Version.create(:number => version_number, :pacticipant => @pacticipant)
82
94
  self
83
95
  end
84
96
 
97
+ def create_consumer_version version_number
98
+ @consumer_version = PactBroker::Models::Version.create(:number => version_number, :pacticipant => @consumer)
99
+ self
100
+ end
101
+
85
102
  def create_tag tag_name
86
103
  @tag = PactBroker::Models::Tag.create(name: tag_name, version: @version)
87
104
  self
88
105
  end
89
106
 
107
+ def create_consumer_version_tag tag_name
108
+ @tag = PactBroker::Models::Tag.create(name: tag_name, version: @consumer_version)
109
+ self
110
+ end
111
+
112
+ def create_pact
113
+ @pact = PactBroker::Models::Pact.create(consumer_version: @consumer_version, provider: @provider, json_content: json_content)
114
+ self
115
+ end
116
+
90
117
  private
91
118
 
92
119
  # def create_pacticipant name
@@ -97,7 +124,7 @@ class ProviderStateBuilder
97
124
  # version_repository.create(number: number, pacticipant: pacticipant)
98
125
  # end
99
126
 
100
- # def create_pact version, provider
127
+ # def create_condor_pricing_service_pact version, provider
101
128
  # pact_repository.create(consumer_version: version, provider: provider, json_content: json_content)
102
129
  # end
103
130
 
@@ -5,7 +5,7 @@ Pact::VerificationTask.new(:dev) do | pact |
5
5
  end
6
6
 
7
7
  namespace :pact do
8
- #task :prepare => [:overwrite_rack_env, 'db:recreate']
8
+ task :prepare => ['db:set_test_env', 'db:prepare:test']
9
9
  task :verify => :prepare
10
10
  task 'verify:at' => :prepare
11
11
  task 'verify:dev' => :prepare
metadata CHANGED
@@ -1,8 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pact_broker
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0.alpha1
5
- prerelease: 6
4
+ version: 1.0.0.alpha2
6
5
  platform: ruby
7
6
  authors:
8
7
  - Bethany Skurrie
@@ -11,140 +10,123 @@ authors:
11
10
  autorequire:
12
11
  bindir: bin
13
12
  cert_chain: []
14
- date: 2014-05-09 00:00:00.000000000 Z
13
+ date: 2014-05-19 00:00:00.000000000 Z
15
14
  dependencies:
16
15
  - !ruby/object:Gem::Dependency
17
16
  name: httparty
18
17
  requirement: !ruby/object:Gem::Requirement
19
- none: false
20
18
  requirements:
21
- - - ! '>='
19
+ - - '>='
22
20
  - !ruby/object:Gem::Version
23
21
  version: '0'
24
22
  type: :runtime
25
23
  prerelease: false
26
24
  version_requirements: !ruby/object:Gem::Requirement
27
- none: false
28
25
  requirements:
29
- - - ! '>='
26
+ - - '>='
30
27
  - !ruby/object:Gem::Version
31
28
  version: '0'
32
29
  - !ruby/object:Gem::Dependency
33
30
  name: json
34
31
  requirement: !ruby/object:Gem::Requirement
35
- none: false
36
32
  requirements:
37
- - - ! '>='
33
+ - - '>='
38
34
  - !ruby/object:Gem::Version
39
35
  version: '0'
40
36
  type: :runtime
41
37
  prerelease: false
42
38
  version_requirements: !ruby/object:Gem::Requirement
43
- none: false
44
39
  requirements:
45
- - - ! '>='
40
+ - - '>='
46
41
  - !ruby/object:Gem::Version
47
42
  version: '0'
48
43
  - !ruby/object:Gem::Dependency
49
44
  name: roar
50
45
  requirement: !ruby/object:Gem::Requirement
51
- none: false
52
46
  requirements:
53
- - - ! '>='
47
+ - - '>='
54
48
  - !ruby/object:Gem::Version
55
49
  version: '0'
56
50
  type: :runtime
57
51
  prerelease: false
58
52
  version_requirements: !ruby/object:Gem::Requirement
59
- none: false
60
53
  requirements:
61
- - - ! '>='
54
+ - - '>='
62
55
  - !ruby/object:Gem::Version
63
56
  version: '0'
64
57
  - !ruby/object:Gem::Dependency
65
58
  name: sequel
66
59
  requirement: !ruby/object:Gem::Requirement
67
- none: false
68
60
  requirements:
69
- - - ! '>='
61
+ - - '>='
70
62
  - !ruby/object:Gem::Version
71
63
  version: '0'
72
64
  type: :runtime
73
65
  prerelease: false
74
66
  version_requirements: !ruby/object:Gem::Requirement
75
- none: false
76
67
  requirements:
77
- - - ! '>='
68
+ - - '>='
78
69
  - !ruby/object:Gem::Version
79
70
  version: '0'
80
71
  - !ruby/object:Gem::Dependency
81
72
  name: sqlite3
82
73
  requirement: !ruby/object:Gem::Requirement
83
- none: false
84
74
  requirements:
85
- - - ! '>='
75
+ - - '>='
86
76
  - !ruby/object:Gem::Version
87
77
  version: '0'
88
78
  type: :runtime
89
79
  prerelease: false
90
80
  version_requirements: !ruby/object:Gem::Requirement
91
- none: false
92
81
  requirements:
93
- - - ! '>='
82
+ - - '>='
94
83
  - !ruby/object:Gem::Version
95
84
  version: '0'
96
85
  - !ruby/object:Gem::Dependency
97
86
  name: webmachine
98
87
  requirement: !ruby/object:Gem::Requirement
99
- none: false
100
88
  requirements:
101
- - - ! '>='
89
+ - - '>='
102
90
  - !ruby/object:Gem::Version
103
91
  version: '0'
104
92
  type: :runtime
105
93
  prerelease: false
106
94
  version_requirements: !ruby/object:Gem::Requirement
107
- none: false
108
95
  requirements:
109
- - - ! '>='
96
+ - - '>='
110
97
  - !ruby/object:Gem::Version
111
98
  version: '0'
112
99
  - !ruby/object:Gem::Dependency
113
100
  name: versionomy
114
101
  requirement: !ruby/object:Gem::Requirement
115
- none: false
116
102
  requirements:
117
- - - ! '>='
103
+ - - '>='
118
104
  - !ruby/object:Gem::Version
119
105
  version: '0'
120
106
  type: :runtime
121
107
  prerelease: false
122
108
  version_requirements: !ruby/object:Gem::Requirement
123
- none: false
124
109
  requirements:
125
- - - ! '>='
110
+ - - '>='
126
111
  - !ruby/object:Gem::Version
127
112
  version: '0'
128
113
  - !ruby/object:Gem::Dependency
129
114
  name: rack
130
115
  requirement: !ruby/object:Gem::Requirement
131
- none: false
132
116
  requirements:
133
- - - ! '>='
117
+ - - '>='
134
118
  - !ruby/object:Gem::Version
135
119
  version: '0'
136
120
  type: :runtime
137
121
  prerelease: false
138
122
  version_requirements: !ruby/object:Gem::Requirement
139
- none: false
140
123
  requirements:
141
- - - ! '>='
124
+ - - '>='
142
125
  - !ruby/object:Gem::Version
143
126
  version: '0'
144
127
  - !ruby/object:Gem::Dependency
145
128
  name: redcarpet
146
129
  requirement: !ruby/object:Gem::Requirement
147
- none: false
148
130
  requirements:
149
131
  - - ~>
150
132
  - !ruby/object:Gem::Version
@@ -152,7 +134,6 @@ dependencies:
152
134
  type: :runtime
153
135
  prerelease: false
154
136
  version_requirements: !ruby/object:Gem::Requirement
155
- none: false
156
137
  requirements:
157
138
  - - ~>
158
139
  - !ruby/object:Gem::Version
@@ -160,7 +141,6 @@ dependencies:
160
141
  - !ruby/object:Gem::Dependency
161
142
  name: pact
162
143
  requirement: !ruby/object:Gem::Requirement
163
- none: false
164
144
  requirements:
165
145
  - - ~>
166
146
  - !ruby/object:Gem::Version
@@ -168,7 +148,6 @@ dependencies:
168
148
  type: :runtime
169
149
  prerelease: false
170
150
  version_requirements: !ruby/object:Gem::Requirement
171
- none: false
172
151
  requirements:
173
152
  - - ~>
174
153
  - !ruby/object:Gem::Version
@@ -176,55 +155,48 @@ dependencies:
176
155
  - !ruby/object:Gem::Dependency
177
156
  name: padrino
178
157
  requirement: !ruby/object:Gem::Requirement
179
- none: false
180
158
  requirements:
181
159
  - - ~>
182
160
  - !ruby/object:Gem::Version
183
- version: 0.9.29
161
+ version: '0.12'
184
162
  type: :runtime
185
163
  prerelease: false
186
164
  version_requirements: !ruby/object:Gem::Requirement
187
- none: false
188
165
  requirements:
189
166
  - - ~>
190
167
  - !ruby/object:Gem::Version
191
- version: 0.9.29
168
+ version: '0.12'
192
169
  - !ruby/object:Gem::Dependency
193
170
  name: haml
194
171
  requirement: !ruby/object:Gem::Requirement
195
- none: false
196
172
  requirements:
197
- - - ! '>='
173
+ - - '>='
198
174
  - !ruby/object:Gem::Version
199
175
  version: '0'
200
176
  type: :runtime
201
177
  prerelease: false
202
178
  version_requirements: !ruby/object:Gem::Requirement
203
- none: false
204
179
  requirements:
205
- - - ! '>='
180
+ - - '>='
206
181
  - !ruby/object:Gem::Version
207
182
  version: '0'
208
183
  - !ruby/object:Gem::Dependency
209
184
  name: pry
210
185
  requirement: !ruby/object:Gem::Requirement
211
- none: false
212
186
  requirements:
213
- - - ! '>='
187
+ - - '>='
214
188
  - !ruby/object:Gem::Version
215
189
  version: '0'
216
190
  type: :development
217
191
  prerelease: false
218
192
  version_requirements: !ruby/object:Gem::Requirement
219
- none: false
220
193
  requirements:
221
- - - ! '>='
194
+ - - '>='
222
195
  - !ruby/object:Gem::Version
223
196
  version: '0'
224
197
  - !ruby/object:Gem::Dependency
225
198
  name: rake
226
199
  requirement: !ruby/object:Gem::Requirement
227
- none: false
228
200
  requirements:
229
201
  - - ~>
230
202
  - !ruby/object:Gem::Version
@@ -232,7 +204,6 @@ dependencies:
232
204
  type: :development
233
205
  prerelease: false
234
206
  version_requirements: !ruby/object:Gem::Requirement
235
- none: false
236
207
  requirements:
237
208
  - - ~>
238
209
  - !ruby/object:Gem::Version
@@ -240,7 +211,6 @@ dependencies:
240
211
  - !ruby/object:Gem::Dependency
241
212
  name: fakefs
242
213
  requirement: !ruby/object:Gem::Requirement
243
- none: false
244
214
  requirements:
245
215
  - - ~>
246
216
  - !ruby/object:Gem::Version
@@ -248,7 +218,6 @@ dependencies:
248
218
  type: :development
249
219
  prerelease: false
250
220
  version_requirements: !ruby/object:Gem::Requirement
251
- none: false
252
221
  requirements:
253
222
  - - ~>
254
223
  - !ruby/object:Gem::Version
@@ -256,7 +225,6 @@ dependencies:
256
225
  - !ruby/object:Gem::Dependency
257
226
  name: rspec-fire
258
227
  requirement: !ruby/object:Gem::Requirement
259
- none: false
260
228
  requirements:
261
229
  - - ~>
262
230
  - !ruby/object:Gem::Version
@@ -264,7 +232,6 @@ dependencies:
264
232
  type: :development
265
233
  prerelease: false
266
234
  version_requirements: !ruby/object:Gem::Requirement
267
- none: false
268
235
  requirements:
269
236
  - - ~>
270
237
  - !ruby/object:Gem::Version
@@ -272,7 +239,6 @@ dependencies:
272
239
  - !ruby/object:Gem::Dependency
273
240
  name: mysql2
274
241
  requirement: !ruby/object:Gem::Requirement
275
- none: false
276
242
  requirements:
277
243
  - - ~>
278
244
  - !ruby/object:Gem::Version
@@ -280,11 +246,24 @@ dependencies:
280
246
  type: :development
281
247
  prerelease: false
282
248
  version_requirements: !ruby/object:Gem::Requirement
283
- none: false
284
249
  requirements:
285
250
  - - ~>
286
251
  - !ruby/object:Gem::Version
287
252
  version: 0.3.15
253
+ - !ruby/object:Gem::Dependency
254
+ name: pact
255
+ requirement: !ruby/object:Gem::Requirement
256
+ requirements:
257
+ - - ~>
258
+ - !ruby/object:Gem::Version
259
+ version: '1.1'
260
+ type: :development
261
+ prerelease: false
262
+ version_requirements: !ruby/object:Gem::Requirement
263
+ requirements:
264
+ - - ~>
265
+ - !ruby/object:Gem::Version
266
+ version: '1.1'
288
267
  description: A server that stores and returns pact files generated by the pact gem.
289
268
  It enables head/prod cross testing of the consumer and provider projects.
290
269
  email:
@@ -316,6 +295,7 @@ files:
316
295
  - db/migrations/03_create_pacts_table.rb
317
296
  - db/migrations/04_create_tags_table.rb
318
297
  - db/migrations/05_add_order_column_to_version.rb
298
+ - db/migrations/06_make_version_foreign_key_mandatory.rb
319
299
  - db/pact_broker_database.sqlite3
320
300
  - example/Gemfile
321
301
  - example/config.ru
@@ -383,12 +363,16 @@ files:
383
363
  - lib/rack/hal_browser/redirect.rb
384
364
  - pact_broker.gemspec
385
365
  - pact_broker_client-pact_broker.json
366
+ - public/Network Graph REA.html
367
+ - public/Network Graph_files/d3.v3.js
368
+ - public/Network Graph_files/ga.js
386
369
  - public/bootstrap.zip
387
370
  - public/config.json
388
371
  - public/css/bootstrap-theme.css
389
372
  - public/css/bootstrap-theme.min.css
390
373
  - public/css/bootstrap.css
391
374
  - public/css/bootstrap.min.css
375
+ - public/d3.v3.js.pagespeed.ce.dFNRrGTALe.js
392
376
  - public/fonts/glyphicons-halflings-regular.eot
393
377
  - public/fonts/glyphicons-halflings-regular.svg
394
378
  - public/fonts/glyphicons-halflings-regular.ttf
@@ -398,6 +382,7 @@ files:
398
382
  - public/javascripts/jquery.tablesorter.min.js
399
383
  - public/js/bootstrap.js
400
384
  - public/js/bootstrap.min.js
385
+ - public/rea.csv
401
386
  - public/stylesheets/github.css
402
387
  - public/stylesheets/relationships.css
403
388
  - script/update-hal-browser
@@ -466,30 +451,26 @@ files:
466
451
  homepage: https://github.com/DiUS/pact_broker
467
452
  licenses:
468
453
  - MIT
454
+ metadata: {}
469
455
  post_install_message:
470
456
  rdoc_options: []
471
457
  require_paths:
472
458
  - lib
473
459
  required_ruby_version: !ruby/object:Gem::Requirement
474
- none: false
475
460
  requirements:
476
- - - ! '>='
461
+ - - '>='
477
462
  - !ruby/object:Gem::Version
478
463
  version: '0'
479
- segments:
480
- - 0
481
- hash: -3233276074341714439
482
464
  required_rubygems_version: !ruby/object:Gem::Requirement
483
- none: false
484
465
  requirements:
485
- - - ! '>'
466
+ - - '>'
486
467
  - !ruby/object:Gem::Version
487
468
  version: 1.3.1
488
469
  requirements: []
489
470
  rubyforge_project:
490
- rubygems_version: 1.8.23
471
+ rubygems_version: 2.0.14
491
472
  signing_key:
492
- specification_version: 3
473
+ specification_version: 4
493
474
  summary: See description
494
475
  test_files:
495
476
  - spec/fixtures/renderer_pact.json