3
3
4
4
module Pact
5
5
describe ConsumerContract do
6
-
7
6
describe ".from_json" do
7
+
8
8
let ( :loaded_pact ) { ConsumerContract . from_json ( string ) }
9
- context "when the top level object is a ConsumerContract" do
10
- let ( :string ) { '{"interactions":[{"request": {"path":"/path", "method" : "get"}, "response": {"status" : 200}}], "consumer": {"name" : "Bob"} , "provider": {"name" : "Mary"} }' }
11
9
12
- it "should create a Pact " do
13
- expect ( loaded_pact ) . to be_instance_of ConsumerContract
14
- end
10
+ context "with an HTTP contract " do
11
+ context "when the top level object is a ConsumerContract" do
12
+ let ( :string ) { '{"interactions":[{"request": {"path":"/path", "method" : "get"}, "response": {"status" : 200}}], "consumer": {"name" : "Bob"} , "provider": {"name" : "Mary"} }' }
15
13
16
- it "should have interactions " do
17
- expect ( loaded_pact . interactions ) . to be_instance_of Array
18
- end
14
+ it "should create a Pact " do
15
+ expect ( loaded_pact ) . to be_instance_of ConsumerContract
16
+ end
19
17
20
- it "should have a consumer" do
21
- expect ( loaded_pact . consumer ) . to be_instance_of Pact ::ServiceConsumer
18
+ it "should have interactions" do
19
+ expect ( loaded_pact . interactions ) . to be_instance_of Array
20
+ end
21
+
22
+ it "should have a consumer" do
23
+ expect ( loaded_pact . consumer ) . to be_instance_of Pact ::ServiceConsumer
24
+ end
25
+
26
+ it "should have a provider" do
27
+ expect ( loaded_pact . provider ) . to be_instance_of Pact ::ServiceProvider
28
+ end
22
29
end
23
30
24
- it "should have a provider" do
25
- expect ( loaded_pact . provider ) . to be_instance_of Pact ::ServiceProvider
31
+ context "with old 'producer' key" do
32
+ let ( :string ) { File . read ( './spec/support/a_consumer-a_producer.json' ) }
33
+ it "should create a Pact" do
34
+ expect ( loaded_pact ) . to be_instance_of ConsumerContract
35
+ end
36
+
37
+ it "should have interactions" do
38
+ expect ( loaded_pact . interactions ) . to be_instance_of Array
39
+ end
40
+
41
+ it "should have a consumer" do
42
+ expect ( loaded_pact . consumer ) . to be_instance_of Pact ::ServiceConsumer
43
+ end
44
+
45
+ it "should have a provider" do
46
+ expect ( loaded_pact . provider ) . to be_instance_of Pact ::ServiceProvider
47
+ expect ( loaded_pact . provider . name ) . to eq "an old producer"
48
+ end
49
+
50
+ it "should have a provider_state" do
51
+ expect ( loaded_pact . interactions . first . provider_state ) . to eq 'state one'
52
+ end
26
53
end
27
54
end
28
55
29
- context "with old 'producer' key" do
30
- let ( :string ) { File . read ( './spec/support/a_consumer-a_producer.json' ) }
56
+ context "with a Message contract" do
57
+ let ( :string ) { '{"messages":[{"content": {"foo": "bar"}}], "consumer": {"name" : "Bob"} , "provider": {"name" : "Mary"}}' }
58
+
31
59
it "should create a Pact" do
32
60
expect ( loaded_pact ) . to be_instance_of ConsumerContract
33
61
end
34
62
35
- it "should have interactions " do
63
+ it "should have messages " do
36
64
expect ( loaded_pact . interactions ) . to be_instance_of Array
65
+ expect ( loaded_pact . interactions . first ) . to be_instance_of Pact ::Message
37
66
end
38
67
39
68
it "should have a consumer" do
@@ -42,12 +71,8 @@ module Pact
42
71
43
72
it "should have a provider" do
44
73
expect ( loaded_pact . provider ) . to be_instance_of Pact ::ServiceProvider
45
- expect ( loaded_pact . provider . name ) . to eq "an old producer"
46
74
end
47
75
48
- it "should have a provider_state" do
49
- expect ( loaded_pact . interactions . first . provider_state ) . to eq 'state one'
50
- end
51
76
end
52
77
end
53
78
0 commit comments