pact 1.0.26 → 1.0.27

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.
@@ -0,0 +1,19 @@
1
+ require 'spec_helper'
2
+ require 'pact/provider/print_missing_provider_states'
3
+
4
+ module Pact
5
+ module Provider
6
+ describe PrintMissingProviderStates do
7
+
8
+ describe "text" do
9
+ let(:missing_provider_states) { {'Consumer 1' => ['state1','state2'], 'Consumer 2' => ['state3']} }
10
+ let(:expected_output) { File.read("./spec/support/missing_provider_states_output.txt")}
11
+ subject { PrintMissingProviderStates.text missing_provider_states }
12
+ it "returns the text" do
13
+ expect(subject).to include expected_output
14
+ end
15
+ end
16
+
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,60 @@
1
+ require 'spec_helper'
2
+ require 'pact/provider/provider_state_proxy'
3
+
4
+ module Pact
5
+ module Provider
6
+ describe ProviderStateProxy do
7
+
8
+ let(:provider_state_proxy) { ProviderStateProxy.new }
9
+
10
+ describe "get" do
11
+ let(:name) { "some state" }
12
+ let(:options) { { :for => 'some consumer'} }
13
+ let(:provider_state) { double("provider_state")}
14
+
15
+ subject { provider_state_proxy.get name, options }
16
+
17
+ before do
18
+ ProviderState.stub(:get).and_return(provider_state)
19
+ end
20
+ context "when the provider state exists" do
21
+
22
+ it "retrieves the provider state from ProviderState" do
23
+ ProviderState.should_receive(:get).with(name, options).and_return(provider_state)
24
+ subject
25
+ end
26
+
27
+ it "returns the state" do
28
+ expect(subject).to eq provider_state
29
+ end
30
+
31
+ end
32
+
33
+ context "when the state does not exist" do
34
+
35
+ let(:provider_state) { nil }
36
+ let(:expected_missing_provider_states) { {"some consumer" => ["some state"]} }
37
+
38
+ it "raises an error" do
39
+ expect { subject }.to raise_error /Could not find.*some state.*consumer.*/
40
+ end
41
+
42
+ it "records the provider state as missing" do
43
+ subject rescue nil
44
+ expect(provider_state_proxy.missing_provider_states).to eq expected_missing_provider_states
45
+ end
46
+
47
+ context "when the same missing provider state is requested" do
48
+ it "ensures the list only contains unique entries" do
49
+ subject rescue nil
50
+ subject rescue nil
51
+ expect(provider_state_proxy.missing_provider_states['some consumer'].size).to eq 1
52
+ end
53
+ end
54
+ end
55
+
56
+
57
+ end
58
+ end
59
+ end
60
+ end
@@ -0,0 +1,33 @@
1
+ require 'spec_helper'
2
+ require 'pact/provider/world'
3
+
4
+ describe Pact do
5
+ describe ".world" do
6
+ it "returns a world" do
7
+ expect(Pact.world).to be_instance_of Pact::Provider::World
8
+ end
9
+ it "returns the same world each time" do
10
+ expect(Pact.world).to be Pact.world
11
+ end
12
+ end
13
+
14
+ end
15
+
16
+ module Pact
17
+ module Provider
18
+ describe World do
19
+
20
+ subject { World.new }
21
+ describe "provider_states" do
22
+ it "returns a provider state proxy" do
23
+ expect(subject.provider_states).to be_instance_of ProviderStateProxy
24
+ end
25
+ it "returns the same object each time" do
26
+ expect(subject.provider_states).to be subject.provider_states
27
+ end
28
+
29
+ end
30
+
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,25 @@
1
+ Pact.provider_states_for "Consumer 1" do
2
+
3
+ provider_state "state1" do
4
+ set_up do
5
+ # Your set up code goes here
6
+ end
7
+ end
8
+
9
+ provider_state "state2" do
10
+ set_up do
11
+ # Your set up code goes here
12
+ end
13
+ end
14
+
15
+ end
16
+
17
+ Pact.provider_states_for "Consumer 2" do
18
+
19
+ provider_state "state3" do
20
+ set_up do
21
+ # Your set up code goes here
22
+ end
23
+ end
24
+
25
+ end
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.0.26
4
+ version: 1.0.27
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -13,7 +13,7 @@ authors:
13
13
  autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
- date: 2013-12-05 00:00:00.000000000 Z
16
+ date: 2013-12-10 00:00:00.000000000 Z
17
17
  dependencies:
18
18
  - !ruby/object:Gem::Dependency
19
19
  name: randexp
@@ -330,6 +330,7 @@ files:
330
330
  - lib/pact/consumer_contract/service_provider.rb
331
331
  - lib/pact/logging.rb
332
332
  - lib/pact/matchers.rb
333
+ - lib/pact/matchers/diff_decorator.rb
333
334
  - lib/pact/matchers/index_not_found.rb
334
335
  - lib/pact/matchers/matchers.rb
335
336
  - lib/pact/matchers/unexpected_index.rb
@@ -341,11 +342,14 @@ files:
341
342
  - lib/pact/provider/pact_helper_locator.rb
342
343
  - lib/pact/provider/pact_spec_runner.rb
343
344
  - lib/pact/provider/pact_verification.rb
345
+ - lib/pact/provider/print_missing_provider_states.rb
344
346
  - lib/pact/provider/provider_state.rb
347
+ - lib/pact/provider/provider_state_proxy.rb
345
348
  - lib/pact/provider/request.rb
346
349
  - lib/pact/provider/rspec.rb
347
350
  - lib/pact/provider/test_methods.rb
348
351
  - lib/pact/provider/verification_report.rb
352
+ - lib/pact/provider/world.rb
349
353
  - lib/pact/reification.rb
350
354
  - lib/pact/shared/dsl.rb
351
355
  - lib/pact/shared/key_not_found.rb
@@ -356,11 +360,12 @@ files:
356
360
  - lib/pact/tasks.rb
357
361
  - lib/pact/tasks/task_helper.rb
358
362
  - lib/pact/tasks/verification_task.rb
363
+ - lib/pact/templates/provider_state.erb
359
364
  - lib/pact/term.rb
360
365
  - lib/pact/version.rb
361
366
  - lib/tasks/pact.rake
362
367
  - pact.gemspec
363
- - scratchpad.txt
368
+ - scratchpad.rb
364
369
  - spec/features/consumption_spec.rb
365
370
  - spec/features/production_spec.rb
366
371
  - spec/features/provider_states/zebras.rb
@@ -384,14 +389,17 @@ files:
384
389
  - spec/lib/pact/consumer_contract/consumer_contract_spec.rb
385
390
  - spec/lib/pact/consumer_contract/interaction_spec.rb
386
391
  - spec/lib/pact/consumer_contract/request_spec.rb
392
+ - spec/lib/pact/matchers/diff_decorator_spec.rb
387
393
  - spec/lib/pact/matchers/matchers_spec.rb
388
394
  - spec/lib/pact/provider/configuration_spec.rb
389
395
  - spec/lib/pact/provider/pact_helper_locator_spec.rb
390
396
  - spec/lib/pact/provider/pact_spec_runner_spec.rb
397
+ - spec/lib/pact/provider/print_missing_provider_states_spec.rb
398
+ - spec/lib/pact/provider/provider_state_proxy_spec.rb
391
399
  - spec/lib/pact/provider/provider_state_spec.rb
392
400
  - spec/lib/pact/provider/request_spec.rb
393
401
  - spec/lib/pact/provider/rspec_spec.rb
394
- - spec/lib/pact/provider/test_methods_spec.rb
402
+ - spec/lib/pact/provider/world_spec.rb
395
403
  - spec/lib/pact/reification_spec.rb
396
404
  - spec/lib/pact/shared/dsl_spec.rb
397
405
  - spec/lib/pact/something_like_spec.rb
@@ -404,6 +412,7 @@ files:
404
412
  - spec/support/consumer_contract_template.json
405
413
  - spec/support/dsl_spec_support.rb
406
414
  - spec/support/factories.rb
415
+ - spec/support/missing_provider_states_output.txt
407
416
  - spec/support/pact_helper.rb
408
417
  - spec/support/shared_examples_for_request.rb
409
418
  - spec/support/test_app_fail.json
@@ -425,7 +434,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
425
434
  version: '0'
426
435
  segments:
427
436
  - 0
428
- hash: 4529256529272671806
437
+ hash: 4188255095502066512
429
438
  required_rubygems_version: !ruby/object:Gem::Requirement
430
439
  none: false
431
440
  requirements:
@@ -434,7 +443,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
434
443
  version: '0'
435
444
  segments:
436
445
  - 0
437
- hash: 4529256529272671806
446
+ hash: 4188255095502066512
438
447
  requirements: []
439
448
  rubyforge_project:
440
449
  rubygems_version: 1.8.23
@@ -467,14 +476,17 @@ test_files:
467
476
  - spec/lib/pact/consumer_contract/consumer_contract_spec.rb
468
477
  - spec/lib/pact/consumer_contract/interaction_spec.rb
469
478
  - spec/lib/pact/consumer_contract/request_spec.rb
479
+ - spec/lib/pact/matchers/diff_decorator_spec.rb
470
480
  - spec/lib/pact/matchers/matchers_spec.rb
471
481
  - spec/lib/pact/provider/configuration_spec.rb
472
482
  - spec/lib/pact/provider/pact_helper_locator_spec.rb
473
483
  - spec/lib/pact/provider/pact_spec_runner_spec.rb
484
+ - spec/lib/pact/provider/print_missing_provider_states_spec.rb
485
+ - spec/lib/pact/provider/provider_state_proxy_spec.rb
474
486
  - spec/lib/pact/provider/provider_state_spec.rb
475
487
  - spec/lib/pact/provider/request_spec.rb
476
488
  - spec/lib/pact/provider/rspec_spec.rb
477
- - spec/lib/pact/provider/test_methods_spec.rb
489
+ - spec/lib/pact/provider/world_spec.rb
478
490
  - spec/lib/pact/reification_spec.rb
479
491
  - spec/lib/pact/shared/dsl_spec.rb
480
492
  - spec/lib/pact/something_like_spec.rb
@@ -487,6 +499,7 @@ test_files:
487
499
  - spec/support/consumer_contract_template.json
488
500
  - spec/support/dsl_spec_support.rb
489
501
  - spec/support/factories.rb
502
+ - spec/support/missing_provider_states_output.txt
490
503
  - spec/support/pact_helper.rb
491
504
  - spec/support/shared_examples_for_request.rb
492
505
  - spec/support/test_app_fail.json
@@ -1,20 +0,0 @@
1
- require 'spec_helper'
2
- require 'pact/provider/test_methods'
3
-
4
- module Pact::Provider
5
- describe TestMethods do
6
-
7
- class TestHelper
8
- include TestMethods
9
- end
10
-
11
- subject { TestHelper.new }
12
-
13
- describe "get_provider_state" do
14
- it "raises a descriptive error if the provider state is not found" do
15
- ProviderState.stub(:get).and_return(nil)
16
- expect{ subject.send(:get_provider_state, 'some state', 'consumer') }.to raise_error /Could not find.*some state.*consumer.*/
17
- end
18
- end
19
- end
20
- end