pact-support 0.0.1

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.
Files changed (107) hide show
  1. checksums.yaml +15 -0
  2. data/.gitignore +29 -0
  3. data/.rspec +2 -0
  4. data/.travis.yml +8 -0
  5. data/CHANGELOG.md +4 -0
  6. data/Gemfile +4 -0
  7. data/Gemfile.lock +80 -0
  8. data/LICENSE.txt +22 -0
  9. data/README.md +4 -0
  10. data/Rakefile +4 -0
  11. data/lib/pact/configuration.rb +164 -0
  12. data/lib/pact/consumer/request.rb +27 -0
  13. data/lib/pact/consumer_contract.rb +1 -0
  14. data/lib/pact/consumer_contract/consumer_contract.rb +114 -0
  15. data/lib/pact/consumer_contract/file_name.rb +19 -0
  16. data/lib/pact/consumer_contract/headers.rb +51 -0
  17. data/lib/pact/consumer_contract/interaction.rb +73 -0
  18. data/lib/pact/consumer_contract/pact_file.rb +24 -0
  19. data/lib/pact/consumer_contract/request.rb +73 -0
  20. data/lib/pact/consumer_contract/response.rb +51 -0
  21. data/lib/pact/consumer_contract/service_consumer.rb +28 -0
  22. data/lib/pact/consumer_contract/service_provider.rb +28 -0
  23. data/lib/pact/logging.rb +14 -0
  24. data/lib/pact/matchers.rb +1 -0
  25. data/lib/pact/matchers/actual_type.rb +16 -0
  26. data/lib/pact/matchers/base_difference.rb +37 -0
  27. data/lib/pact/matchers/differ.rb +153 -0
  28. data/lib/pact/matchers/difference.rb +13 -0
  29. data/lib/pact/matchers/difference_indicator.rb +26 -0
  30. data/lib/pact/matchers/embedded_diff_formatter.rb +62 -0
  31. data/lib/pact/matchers/expected_type.rb +35 -0
  32. data/lib/pact/matchers/index_not_found.rb +15 -0
  33. data/lib/pact/matchers/list_diff_formatter.rb +101 -0
  34. data/lib/pact/matchers/matchers.rb +139 -0
  35. data/lib/pact/matchers/no_diff_indicator.rb +18 -0
  36. data/lib/pact/matchers/regexp_difference.rb +13 -0
  37. data/lib/pact/matchers/type_difference.rb +16 -0
  38. data/lib/pact/matchers/unexpected_index.rb +11 -0
  39. data/lib/pact/matchers/unexpected_key.rb +11 -0
  40. data/lib/pact/matchers/unix_diff_formatter.rb +114 -0
  41. data/lib/pact/reification.rb +28 -0
  42. data/lib/pact/rspec.rb +53 -0
  43. data/lib/pact/shared/active_support_support.rb +51 -0
  44. data/lib/pact/shared/dsl.rb +76 -0
  45. data/lib/pact/shared/jruby_support.rb +18 -0
  46. data/lib/pact/shared/json_differ.rb +15 -0
  47. data/lib/pact/shared/key_not_found.rb +15 -0
  48. data/lib/pact/shared/null_expectation.rb +31 -0
  49. data/lib/pact/shared/request.rb +97 -0
  50. data/lib/pact/shared/text_differ.rb +14 -0
  51. data/lib/pact/something_like.rb +49 -0
  52. data/lib/pact/support.rb +9 -0
  53. data/lib/pact/support/version.rb +5 -0
  54. data/lib/pact/symbolize_keys.rb +12 -0
  55. data/lib/pact/term.rb +85 -0
  56. data/lib/tasks/pact.rake +29 -0
  57. data/pact-support.gemspec +35 -0
  58. data/spec/lib/pact/consumer/request_spec.rb +25 -0
  59. data/spec/lib/pact/consumer_contract/active_support_support_spec.rb +58 -0
  60. data/spec/lib/pact/consumer_contract/consumer_contract_spec.rb +141 -0
  61. data/spec/lib/pact/consumer_contract/headers_spec.rb +107 -0
  62. data/spec/lib/pact/consumer_contract/interaction_spec.rb +151 -0
  63. data/spec/lib/pact/consumer_contract/request_spec.rb +329 -0
  64. data/spec/lib/pact/consumer_contract/response_spec.rb +73 -0
  65. data/spec/lib/pact/matchers/differ_spec.rb +215 -0
  66. data/spec/lib/pact/matchers/difference_spec.rb +22 -0
  67. data/spec/lib/pact/matchers/embedded_diff_formatter_spec.rb +90 -0
  68. data/spec/lib/pact/matchers/index_not_found_spec.rb +21 -0
  69. data/spec/lib/pact/matchers/list_diff_formatter_spec.rb +120 -0
  70. data/spec/lib/pact/matchers/matchers_spec.rb +500 -0
  71. data/spec/lib/pact/matchers/regexp_difference_spec.rb +20 -0
  72. data/spec/lib/pact/matchers/type_difference_spec.rb +34 -0
  73. data/spec/lib/pact/matchers/unexpected_index_spec.rb +20 -0
  74. data/spec/lib/pact/matchers/unexpected_key_spec.rb +20 -0
  75. data/spec/lib/pact/matchers/unix_diff_formatter_spec.rb +216 -0
  76. data/spec/lib/pact/reification_spec.rb +67 -0
  77. data/spec/lib/pact/shared/dsl_spec.rb +86 -0
  78. data/spec/lib/pact/shared/json_differ_spec.rb +36 -0
  79. data/spec/lib/pact/shared/key_not_found_spec.rb +20 -0
  80. data/spec/lib/pact/shared/request_spec.rb +196 -0
  81. data/spec/lib/pact/shared/text_differ_spec.rb +54 -0
  82. data/spec/lib/pact/something_like_spec.rb +21 -0
  83. data/spec/lib/pact/term_spec.rb +89 -0
  84. data/spec/spec_helper.rb +19 -0
  85. data/spec/support/a_consumer-a_producer.json +32 -0
  86. data/spec/support/a_consumer-a_provider.json +32 -0
  87. data/spec/support/active_support_if_configured.rb +6 -0
  88. data/spec/support/case-insensitive-response-header-matching.json +21 -0
  89. data/spec/support/consumer_contract_template.json +24 -0
  90. data/spec/support/dsl_spec_support.rb +7 -0
  91. data/spec/support/factories.rb +82 -0
  92. data/spec/support/generated_index.md +4 -0
  93. data/spec/support/generated_markdown.md +55 -0
  94. data/spec/support/interaction_view_model.json +63 -0
  95. data/spec/support/interaction_view_model_with_terms.json +50 -0
  96. data/spec/support/markdown_pact.json +48 -0
  97. data/spec/support/missing_provider_states_output.txt +25 -0
  98. data/spec/support/options.json +21 -0
  99. data/spec/support/shared_examples_for_request.rb +94 -0
  100. data/spec/support/spec_support.rb +20 -0
  101. data/spec/support/stubbing.json +22 -0
  102. data/spec/support/term.json +48 -0
  103. data/spec/support/test_app_fail.json +61 -0
  104. data/spec/support/test_app_pass.json +38 -0
  105. data/spec/support/test_app_with_right_content_type_differ.json +23 -0
  106. data/tasks/spec.rake +6 -0
  107. metadata +401 -0
@@ -0,0 +1,94 @@
1
+ shared_examples "a request" do
2
+
3
+ describe 'matching' do
4
+ let(:expected) do
5
+ Pact::Request::Expected.from_hash(
6
+ {'method' => 'get', 'path' => 'path', 'query' => /b/}
7
+ )
8
+ end
9
+
10
+ let(:actual) do
11
+ Pact::Consumer::Request::Actual.from_hash({'method' => 'get', 'path' => 'path', 'query' => 'blah', 'headers' => {}, 'body' => ''})
12
+ end
13
+
14
+ it "should match" do
15
+ expect(expected.difference(actual)).to eq({})
16
+ end
17
+ end
18
+
19
+ describe 'full_path' do
20
+ context "with empty path" do
21
+ subject { described_class.from_hash({:path => '', :method => 'get', :query => '', :headers => {}}) }
22
+ it "returns the full path"do
23
+ expect(subject.full_path).to eq "/"
24
+ end
25
+ end
26
+ context "with a path" do
27
+ subject { described_class.from_hash({:path => '/path', :method => 'get', :query => '', :headers => {}}) }
28
+ it "returns the full path"do
29
+ expect(subject.full_path).to eq "/path"
30
+ end
31
+ end
32
+ context "with a path and query" do
33
+ subject { described_class.from_hash({:path => '/path', :method => 'get', :query => "something", :headers => {}}) }
34
+ it "returns the full path"do
35
+ expect(subject.full_path).to eq "/path?something"
36
+ end
37
+ end
38
+ context "with a path and a query that is a Term" do
39
+ subject { described_class.from_hash({:path => '/path', :method => 'get', :headers => {}, :query => Pact::Term.new(generate: 'a', matcher: /a/)}) }
40
+ it "returns the full path with reified path" do
41
+ expect(subject.full_path).to eq "/path?a"
42
+ end
43
+ end
44
+ end
45
+
46
+ describe "building from a hash" do
47
+
48
+ let(:raw_request) do
49
+ {
50
+ 'method' => 'get',
51
+ 'path' => '/mallory',
52
+ 'query' => 'query',
53
+ 'headers' => {
54
+ 'Content-Type' => 'application/json'
55
+ },
56
+ 'body' => 'hello mallory'
57
+ }
58
+ end
59
+
60
+ subject { described_class.from_hash(raw_request) }
61
+
62
+ it "extracts the method" do
63
+ expect(subject.method).to eq 'get'
64
+ end
65
+
66
+ it "extracts the path" do
67
+ expect(subject.path).to eq '/mallory'
68
+ end
69
+
70
+ it "extracts the body" do
71
+ expect(subject.body).to eq 'hello mallory'
72
+ end
73
+
74
+ it "extracts the query" do
75
+ expect(subject.query).to eq 'query'
76
+ end
77
+
78
+ it "blows up if method is absent" do
79
+ raw_request.delete 'method'
80
+ expect { described_class.from_hash(raw_request) }.to raise_error
81
+ end
82
+
83
+ it "blows up if path is absent" do
84
+ raw_request.delete 'path'
85
+ expect { described_class.from_hash(raw_request) }.to raise_error
86
+ end
87
+
88
+ it "does not blow up if body is missing" do
89
+ raw_request.delete 'body'
90
+ expect { described_class.from_hash(raw_request) }.to_not raise_error
91
+ end
92
+
93
+ end
94
+ end
@@ -0,0 +1,20 @@
1
+ require 'pact/rspec'
2
+
3
+ module Pact
4
+ module SpecSupport
5
+
6
+ extend self
7
+
8
+ def remove_ansicolor string
9
+ string.gsub(/\e\[(\d+)m/, '')
10
+ end
11
+
12
+ Pact::RSpec.with_rspec_2 do
13
+
14
+ def instance_double *args
15
+ double(*args)
16
+ end
17
+
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,22 @@
1
+ {
2
+ "consumer": {
3
+ "name": "Consumer"
4
+ },
5
+ "provider": {
6
+ "name": "Provider"
7
+ },
8
+ "interactions": [
9
+ {
10
+ "description": "a test request",
11
+ "request": {
12
+ "method": "get",
13
+ "path": "/"
14
+ },
15
+ "response": {
16
+ "status": 200,
17
+ "body": "stubbing works"
18
+ },
19
+ "provider_state": "something is stubbed"
20
+ }
21
+ ]
22
+ }
@@ -0,0 +1,48 @@
1
+ {
2
+ "consumer": {
3
+ "name": "some-test-consumer"
4
+ },
5
+ "provider": {
6
+ "name": "an unknown provider"
7
+ },
8
+ "interactions": [
9
+ {
10
+ "description": "a test request",
11
+ "request": {
12
+ "method": "get",
13
+ "path": "/weather",
14
+ "query": ""
15
+ },
16
+ "response": {
17
+ "status": 200,
18
+ "headers" : {
19
+ "Content-type": {
20
+ "json_class": "Pact::Term",
21
+ "data": {
22
+ "generate": "text/plain",
23
+ "matcher": {
24
+ "json_class": "Regexp",
25
+ "o": 0,
26
+ "s": "text"
27
+ }
28
+ }
29
+ }
30
+ },
31
+ "body": {
32
+ "message" : {
33
+ "json_class": "Pact::Term",
34
+ "data": {
35
+ "generate": "rainy",
36
+ "matcher": {
37
+ "json_class": "Regexp",
38
+ "o": 0,
39
+ "s": "rain"
40
+ }
41
+ }
42
+ }
43
+ }
44
+ },
45
+ "provider_state": "the weather is sunny"
46
+ }
47
+ ]
48
+ }
@@ -0,0 +1,61 @@
1
+ {
2
+ "consumer": {
3
+ "name": "an unknown consumer"
4
+ },
5
+ "provider": {
6
+ "name": "an unknown provider"
7
+ },
8
+ "interactions": [
9
+ {
10
+ "description": "a test request",
11
+ "request": {
12
+ "method": "get",
13
+ "path": "/weather",
14
+ "query": ""
15
+ },
16
+ "response": {
17
+ "status": 200,
18
+ "headers" : {"Content-type": "application/json"},
19
+ "body": {"message" : "this is not the weather you are looking for", "array": [{"foo": "bar"}], "somethingElse" : {"blah" : {"nested" : "that is missing"} }}
20
+
21
+ },
22
+ "provider_state": "the weather is cloudy"
23
+ },{
24
+ "description": "another test request",
25
+ "request": {
26
+ "method": "get",
27
+ "path": "/weather",
28
+ "query": ""
29
+ },
30
+ "response": {
31
+ "status": 200,
32
+ "headers" : {
33
+ "Content-type": {
34
+ "json_class": "Pact::Term",
35
+ "data": {
36
+ "generate": "application/hal+json",
37
+ "matcher": {"json_class":"Regexp","o":0,"s":"hal"}
38
+ }
39
+ },
40
+ "X-Special-Header": "something"
41
+ },
42
+ "body": {"message" : "this is not the weather you are looking for"}
43
+
44
+ }
45
+ },{
46
+ "description": "another test request",
47
+ "provider_state": "a missing provider state",
48
+ "request": {
49
+ "method": "get",
50
+ "path": "/weather",
51
+ "query": ""
52
+ },
53
+ "response": {
54
+ "status": 200,
55
+ "headers" : {"Content-type": "application/json"},
56
+ "body": {"message" : "this is not the weather you are looking for"}
57
+
58
+ }
59
+ }
60
+ ]
61
+ }
@@ -0,0 +1,38 @@
1
+ {
2
+ "consumer": {
3
+ "name": "some-test-consumer"
4
+ },
5
+ "provider": {
6
+ "name": "an unknown provider"
7
+ },
8
+ "interactions": [
9
+ {
10
+ "description": "a test request",
11
+ "request": {
12
+ "method": "get",
13
+ "path": "/weather",
14
+ "query": ""
15
+ },
16
+ "response": {
17
+ "status": 200,
18
+ "headers" : {"Content-type": "application/json"},
19
+ "body": {"message" : "sunny"}
20
+ },
21
+ "provider_state": "the weather is sunny"
22
+ },
23
+ {
24
+ "description": "a test request for text",
25
+ "request": {
26
+ "method": "get",
27
+ "path": "/sometext",
28
+ "query": "",
29
+ "body" : "some request text"
30
+ },
31
+ "response": {
32
+ "status": 200,
33
+ "headers" : {"Content-type": "text/plain"},
34
+ "body": "some text"
35
+ }
36
+ }
37
+ ]
38
+ }
@@ -0,0 +1,23 @@
1
+ {
2
+ "consumer": {
3
+ "name": "some-test-consumer"
4
+ },
5
+ "provider": {
6
+ "name": "the test app in the pact_helper file"
7
+ },
8
+ "interactions": [
9
+ {
10
+ "description": "a test request expecting an application/json response",
11
+ "request": {
12
+ "method": "get",
13
+ "path": "/content_type_is_important",
14
+ "query": ""
15
+ },
16
+ "response": {
17
+ "status": 200,
18
+ "headers" : {"Content-type": "application/json"},
19
+ "body": {"message" : "A message"}
20
+ }
21
+ }
22
+ ]
23
+ }
@@ -0,0 +1,6 @@
1
+ require 'rspec/core/rake_task'
2
+
3
+ RSpec::Core::RakeTask.new(:spec)
4
+
5
+ task :default => [:spec]
6
+
metadata ADDED
@@ -0,0 +1,401 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: pact-support
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - James Fraser
8
+ - Sergei Matheson
9
+ - Brent Snook
10
+ - Ronald Holshausen
11
+ - Beth Skurrie
12
+ autorequire:
13
+ bindir: bin
14
+ cert_chain: []
15
+ date: 2014-10-12 00:00:00.000000000 Z
16
+ dependencies:
17
+ - !ruby/object:Gem::Dependency
18
+ name: randexp
19
+ requirement: !ruby/object:Gem::Requirement
20
+ requirements:
21
+ - - ~>
22
+ - !ruby/object:Gem::Version
23
+ version: 0.1.7
24
+ type: :runtime
25
+ prerelease: false
26
+ version_requirements: !ruby/object:Gem::Requirement
27
+ requirements:
28
+ - - ~>
29
+ - !ruby/object:Gem::Version
30
+ version: 0.1.7
31
+ - !ruby/object:Gem::Dependency
32
+ name: rspec
33
+ requirement: !ruby/object:Gem::Requirement
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
37
+ version: '2.14'
38
+ type: :runtime
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ requirements:
42
+ - - ! '>='
43
+ - !ruby/object:Gem::Version
44
+ version: '2.14'
45
+ - !ruby/object:Gem::Dependency
46
+ name: rack-test
47
+ requirement: !ruby/object:Gem::Requirement
48
+ requirements:
49
+ - - ~>
50
+ - !ruby/object:Gem::Version
51
+ version: 0.6.2
52
+ type: :runtime
53
+ prerelease: false
54
+ version_requirements: !ruby/object:Gem::Requirement
55
+ requirements:
56
+ - - ~>
57
+ - !ruby/object:Gem::Version
58
+ version: 0.6.2
59
+ - !ruby/object:Gem::Dependency
60
+ name: awesome_print
61
+ requirement: !ruby/object:Gem::Requirement
62
+ requirements:
63
+ - - ~>
64
+ - !ruby/object:Gem::Version
65
+ version: '1.1'
66
+ type: :runtime
67
+ prerelease: false
68
+ version_requirements: !ruby/object:Gem::Requirement
69
+ requirements:
70
+ - - ~>
71
+ - !ruby/object:Gem::Version
72
+ version: '1.1'
73
+ - !ruby/object:Gem::Dependency
74
+ name: json
75
+ requirement: !ruby/object:Gem::Requirement
76
+ requirements:
77
+ - - ! '>='
78
+ - !ruby/object:Gem::Version
79
+ version: '0'
80
+ type: :runtime
81
+ prerelease: false
82
+ version_requirements: !ruby/object:Gem::Requirement
83
+ requirements:
84
+ - - ! '>='
85
+ - !ruby/object:Gem::Version
86
+ version: '0'
87
+ - !ruby/object:Gem::Dependency
88
+ name: term-ansicolor
89
+ requirement: !ruby/object:Gem::Requirement
90
+ requirements:
91
+ - - ~>
92
+ - !ruby/object:Gem::Version
93
+ version: '1.0'
94
+ type: :runtime
95
+ prerelease: false
96
+ version_requirements: !ruby/object:Gem::Requirement
97
+ requirements:
98
+ - - ~>
99
+ - !ruby/object:Gem::Version
100
+ version: '1.0'
101
+ - !ruby/object:Gem::Dependency
102
+ name: find_a_port
103
+ requirement: !ruby/object:Gem::Requirement
104
+ requirements:
105
+ - - ~>
106
+ - !ruby/object:Gem::Version
107
+ version: 1.0.1
108
+ type: :runtime
109
+ prerelease: false
110
+ version_requirements: !ruby/object:Gem::Requirement
111
+ requirements:
112
+ - - ~>
113
+ - !ruby/object:Gem::Version
114
+ version: 1.0.1
115
+ - !ruby/object:Gem::Dependency
116
+ name: thor
117
+ requirement: !ruby/object:Gem::Requirement
118
+ requirements:
119
+ - - ! '>='
120
+ - !ruby/object:Gem::Version
121
+ version: '0'
122
+ type: :runtime
123
+ prerelease: false
124
+ version_requirements: !ruby/object:Gem::Requirement
125
+ requirements:
126
+ - - ! '>='
127
+ - !ruby/object:Gem::Version
128
+ version: '0'
129
+ - !ruby/object:Gem::Dependency
130
+ name: rake
131
+ requirement: !ruby/object:Gem::Requirement
132
+ requirements:
133
+ - - ~>
134
+ - !ruby/object:Gem::Version
135
+ version: 10.0.3
136
+ type: :development
137
+ prerelease: false
138
+ version_requirements: !ruby/object:Gem::Requirement
139
+ requirements:
140
+ - - ~>
141
+ - !ruby/object:Gem::Version
142
+ version: 10.0.3
143
+ - !ruby/object:Gem::Dependency
144
+ name: webmock
145
+ requirement: !ruby/object:Gem::Requirement
146
+ requirements:
147
+ - - ~>
148
+ - !ruby/object:Gem::Version
149
+ version: 1.18.0
150
+ type: :development
151
+ prerelease: false
152
+ version_requirements: !ruby/object:Gem::Requirement
153
+ requirements:
154
+ - - ~>
155
+ - !ruby/object:Gem::Version
156
+ version: 1.18.0
157
+ - !ruby/object:Gem::Dependency
158
+ name: pry
159
+ requirement: !ruby/object:Gem::Requirement
160
+ requirements:
161
+ - - ! '>='
162
+ - !ruby/object:Gem::Version
163
+ version: '0'
164
+ type: :development
165
+ prerelease: false
166
+ version_requirements: !ruby/object:Gem::Requirement
167
+ requirements:
168
+ - - ! '>='
169
+ - !ruby/object:Gem::Version
170
+ version: '0'
171
+ - !ruby/object:Gem::Dependency
172
+ name: fakefs
173
+ requirement: !ruby/object:Gem::Requirement
174
+ requirements:
175
+ - - ~>
176
+ - !ruby/object:Gem::Version
177
+ version: '0.4'
178
+ type: :development
179
+ prerelease: false
180
+ version_requirements: !ruby/object:Gem::Requirement
181
+ requirements:
182
+ - - ~>
183
+ - !ruby/object:Gem::Version
184
+ version: '0.4'
185
+ - !ruby/object:Gem::Dependency
186
+ name: hashie
187
+ requirement: !ruby/object:Gem::Requirement
188
+ requirements:
189
+ - - ~>
190
+ - !ruby/object:Gem::Version
191
+ version: '2.0'
192
+ type: :development
193
+ prerelease: false
194
+ version_requirements: !ruby/object:Gem::Requirement
195
+ requirements:
196
+ - - ~>
197
+ - !ruby/object:Gem::Version
198
+ version: '2.0'
199
+ - !ruby/object:Gem::Dependency
200
+ name: activesupport
201
+ requirement: !ruby/object:Gem::Requirement
202
+ requirements:
203
+ - - ! '>='
204
+ - !ruby/object:Gem::Version
205
+ version: '0'
206
+ type: :development
207
+ prerelease: false
208
+ version_requirements: !ruby/object:Gem::Requirement
209
+ requirements:
210
+ - - ! '>='
211
+ - !ruby/object:Gem::Version
212
+ version: '0'
213
+ description:
214
+ email:
215
+ - james.fraser@alumni.swinburne.edu
216
+ - sergei.matheson@gmail.com
217
+ - brent@fuglylogic.com
218
+ - uglyog@gmail.com
219
+ - bskurrie@dius.com.au
220
+ executables: []
221
+ extensions: []
222
+ extra_rdoc_files: []
223
+ files:
224
+ - .gitignore
225
+ - .rspec
226
+ - .travis.yml
227
+ - CHANGELOG.md
228
+ - Gemfile
229
+ - Gemfile.lock
230
+ - LICENSE.txt
231
+ - README.md
232
+ - Rakefile
233
+ - lib/pact/configuration.rb
234
+ - lib/pact/consumer/request.rb
235
+ - lib/pact/consumer_contract.rb
236
+ - lib/pact/consumer_contract/consumer_contract.rb
237
+ - lib/pact/consumer_contract/file_name.rb
238
+ - lib/pact/consumer_contract/headers.rb
239
+ - lib/pact/consumer_contract/interaction.rb
240
+ - lib/pact/consumer_contract/pact_file.rb
241
+ - lib/pact/consumer_contract/request.rb
242
+ - lib/pact/consumer_contract/response.rb
243
+ - lib/pact/consumer_contract/service_consumer.rb
244
+ - lib/pact/consumer_contract/service_provider.rb
245
+ - lib/pact/logging.rb
246
+ - lib/pact/matchers.rb
247
+ - lib/pact/matchers/actual_type.rb
248
+ - lib/pact/matchers/base_difference.rb
249
+ - lib/pact/matchers/differ.rb
250
+ - lib/pact/matchers/difference.rb
251
+ - lib/pact/matchers/difference_indicator.rb
252
+ - lib/pact/matchers/embedded_diff_formatter.rb
253
+ - lib/pact/matchers/expected_type.rb
254
+ - lib/pact/matchers/index_not_found.rb
255
+ - lib/pact/matchers/list_diff_formatter.rb
256
+ - lib/pact/matchers/matchers.rb
257
+ - lib/pact/matchers/no_diff_indicator.rb
258
+ - lib/pact/matchers/regexp_difference.rb
259
+ - lib/pact/matchers/type_difference.rb
260
+ - lib/pact/matchers/unexpected_index.rb
261
+ - lib/pact/matchers/unexpected_key.rb
262
+ - lib/pact/matchers/unix_diff_formatter.rb
263
+ - lib/pact/reification.rb
264
+ - lib/pact/rspec.rb
265
+ - lib/pact/shared/active_support_support.rb
266
+ - lib/pact/shared/dsl.rb
267
+ - lib/pact/shared/jruby_support.rb
268
+ - lib/pact/shared/json_differ.rb
269
+ - lib/pact/shared/key_not_found.rb
270
+ - lib/pact/shared/null_expectation.rb
271
+ - lib/pact/shared/request.rb
272
+ - lib/pact/shared/text_differ.rb
273
+ - lib/pact/something_like.rb
274
+ - lib/pact/support.rb
275
+ - lib/pact/support/version.rb
276
+ - lib/pact/symbolize_keys.rb
277
+ - lib/pact/term.rb
278
+ - lib/tasks/pact.rake
279
+ - pact-support.gemspec
280
+ - spec/lib/pact/consumer/request_spec.rb
281
+ - spec/lib/pact/consumer_contract/active_support_support_spec.rb
282
+ - spec/lib/pact/consumer_contract/consumer_contract_spec.rb
283
+ - spec/lib/pact/consumer_contract/headers_spec.rb
284
+ - spec/lib/pact/consumer_contract/interaction_spec.rb
285
+ - spec/lib/pact/consumer_contract/request_spec.rb
286
+ - spec/lib/pact/consumer_contract/response_spec.rb
287
+ - spec/lib/pact/matchers/differ_spec.rb
288
+ - spec/lib/pact/matchers/difference_spec.rb
289
+ - spec/lib/pact/matchers/embedded_diff_formatter_spec.rb
290
+ - spec/lib/pact/matchers/index_not_found_spec.rb
291
+ - spec/lib/pact/matchers/list_diff_formatter_spec.rb
292
+ - spec/lib/pact/matchers/matchers_spec.rb
293
+ - spec/lib/pact/matchers/regexp_difference_spec.rb
294
+ - spec/lib/pact/matchers/type_difference_spec.rb
295
+ - spec/lib/pact/matchers/unexpected_index_spec.rb
296
+ - spec/lib/pact/matchers/unexpected_key_spec.rb
297
+ - spec/lib/pact/matchers/unix_diff_formatter_spec.rb
298
+ - spec/lib/pact/reification_spec.rb
299
+ - spec/lib/pact/shared/dsl_spec.rb
300
+ - spec/lib/pact/shared/json_differ_spec.rb
301
+ - spec/lib/pact/shared/key_not_found_spec.rb
302
+ - spec/lib/pact/shared/request_spec.rb
303
+ - spec/lib/pact/shared/text_differ_spec.rb
304
+ - spec/lib/pact/something_like_spec.rb
305
+ - spec/lib/pact/term_spec.rb
306
+ - spec/spec_helper.rb
307
+ - spec/support/a_consumer-a_producer.json
308
+ - spec/support/a_consumer-a_provider.json
309
+ - spec/support/active_support_if_configured.rb
310
+ - spec/support/case-insensitive-response-header-matching.json
311
+ - spec/support/consumer_contract_template.json
312
+ - spec/support/dsl_spec_support.rb
313
+ - spec/support/factories.rb
314
+ - spec/support/generated_index.md
315
+ - spec/support/generated_markdown.md
316
+ - spec/support/interaction_view_model.json
317
+ - spec/support/interaction_view_model_with_terms.json
318
+ - spec/support/markdown_pact.json
319
+ - spec/support/missing_provider_states_output.txt
320
+ - spec/support/options.json
321
+ - spec/support/shared_examples_for_request.rb
322
+ - spec/support/spec_support.rb
323
+ - spec/support/stubbing.json
324
+ - spec/support/term.json
325
+ - spec/support/test_app_fail.json
326
+ - spec/support/test_app_pass.json
327
+ - spec/support/test_app_with_right_content_type_differ.json
328
+ - tasks/spec.rake
329
+ homepage: https://github.com/bethesque/pact-support
330
+ licenses:
331
+ - MIT
332
+ metadata: {}
333
+ post_install_message:
334
+ rdoc_options: []
335
+ require_paths:
336
+ - lib
337
+ required_ruby_version: !ruby/object:Gem::Requirement
338
+ requirements:
339
+ - - ! '>='
340
+ - !ruby/object:Gem::Version
341
+ version: '0'
342
+ required_rubygems_version: !ruby/object:Gem::Requirement
343
+ requirements:
344
+ - - ! '>='
345
+ - !ruby/object:Gem::Version
346
+ version: '0'
347
+ requirements: []
348
+ rubyforge_project:
349
+ rubygems_version: 2.1.11
350
+ signing_key:
351
+ specification_version: 4
352
+ summary: Shared code for Pact gems
353
+ test_files:
354
+ - spec/lib/pact/consumer/request_spec.rb
355
+ - spec/lib/pact/consumer_contract/active_support_support_spec.rb
356
+ - spec/lib/pact/consumer_contract/consumer_contract_spec.rb
357
+ - spec/lib/pact/consumer_contract/headers_spec.rb
358
+ - spec/lib/pact/consumer_contract/interaction_spec.rb
359
+ - spec/lib/pact/consumer_contract/request_spec.rb
360
+ - spec/lib/pact/consumer_contract/response_spec.rb
361
+ - spec/lib/pact/matchers/differ_spec.rb
362
+ - spec/lib/pact/matchers/difference_spec.rb
363
+ - spec/lib/pact/matchers/embedded_diff_formatter_spec.rb
364
+ - spec/lib/pact/matchers/index_not_found_spec.rb
365
+ - spec/lib/pact/matchers/list_diff_formatter_spec.rb
366
+ - spec/lib/pact/matchers/matchers_spec.rb
367
+ - spec/lib/pact/matchers/regexp_difference_spec.rb
368
+ - spec/lib/pact/matchers/type_difference_spec.rb
369
+ - spec/lib/pact/matchers/unexpected_index_spec.rb
370
+ - spec/lib/pact/matchers/unexpected_key_spec.rb
371
+ - spec/lib/pact/matchers/unix_diff_formatter_spec.rb
372
+ - spec/lib/pact/reification_spec.rb
373
+ - spec/lib/pact/shared/dsl_spec.rb
374
+ - spec/lib/pact/shared/json_differ_spec.rb
375
+ - spec/lib/pact/shared/key_not_found_spec.rb
376
+ - spec/lib/pact/shared/request_spec.rb
377
+ - spec/lib/pact/shared/text_differ_spec.rb
378
+ - spec/lib/pact/something_like_spec.rb
379
+ - spec/lib/pact/term_spec.rb
380
+ - spec/spec_helper.rb
381
+ - spec/support/a_consumer-a_producer.json
382
+ - spec/support/a_consumer-a_provider.json
383
+ - spec/support/active_support_if_configured.rb
384
+ - spec/support/case-insensitive-response-header-matching.json
385
+ - spec/support/consumer_contract_template.json
386
+ - spec/support/dsl_spec_support.rb
387
+ - spec/support/factories.rb
388
+ - spec/support/generated_index.md
389
+ - spec/support/generated_markdown.md
390
+ - spec/support/interaction_view_model.json
391
+ - spec/support/interaction_view_model_with_terms.json
392
+ - spec/support/markdown_pact.json
393
+ - spec/support/missing_provider_states_output.txt
394
+ - spec/support/options.json
395
+ - spec/support/shared_examples_for_request.rb
396
+ - spec/support/spec_support.rb
397
+ - spec/support/stubbing.json
398
+ - spec/support/term.json
399
+ - spec/support/test_app_fail.json
400
+ - spec/support/test_app_pass.json
401
+ - spec/support/test_app_with_right_content_type_differ.json