webmock 3.18.1 → 3.19.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.
Files changed (141) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +34 -0
  3. data/README.md +34 -15
  4. data/lib/webmock/api.rb +2 -0
  5. data/lib/webmock/assertion_failure.rb +2 -0
  6. data/lib/webmock/callback_registry.rb +2 -0
  7. data/lib/webmock/config.rb +2 -0
  8. data/lib/webmock/cucumber.rb +2 -0
  9. data/lib/webmock/deprecation.rb +2 -0
  10. data/lib/webmock/errors.rb +2 -0
  11. data/lib/webmock/http_lib_adapters/async_http_client_adapter.rb +2 -0
  12. data/lib/webmock/http_lib_adapters/curb_adapter.rb +2 -0
  13. data/lib/webmock/http_lib_adapters/em_http_request_adapter.rb +14 -6
  14. data/lib/webmock/http_lib_adapters/excon_adapter.rb +2 -0
  15. data/lib/webmock/http_lib_adapters/http_lib_adapter.rb +2 -0
  16. data/lib/webmock/http_lib_adapters/http_lib_adapter_registry.rb +2 -0
  17. data/lib/webmock/http_lib_adapters/http_rb/client.rb +2 -0
  18. data/lib/webmock/http_lib_adapters/http_rb/request.rb +3 -1
  19. data/lib/webmock/http_lib_adapters/http_rb/response.rb +2 -0
  20. data/lib/webmock/http_lib_adapters/http_rb/streamer.rb +2 -0
  21. data/lib/webmock/http_lib_adapters/http_rb/webmock.rb +2 -0
  22. data/lib/webmock/http_lib_adapters/http_rb_adapter.rb +2 -0
  23. data/lib/webmock/http_lib_adapters/httpclient_adapter.rb +2 -0
  24. data/lib/webmock/http_lib_adapters/manticore_adapter.rb +2 -0
  25. data/lib/webmock/http_lib_adapters/net_http.rb +2 -0
  26. data/lib/webmock/http_lib_adapters/net_http_response.rb +2 -0
  27. data/lib/webmock/http_lib_adapters/patron_adapter.rb +2 -0
  28. data/lib/webmock/http_lib_adapters/typhoeus_hydra_adapter.rb +2 -0
  29. data/lib/webmock/matchers/any_arg_matcher.rb +2 -0
  30. data/lib/webmock/matchers/hash_argument_matcher.rb +2 -0
  31. data/lib/webmock/matchers/hash_excluding_matcher.rb +2 -0
  32. data/lib/webmock/matchers/hash_including_matcher.rb +2 -0
  33. data/lib/webmock/minitest.rb +2 -0
  34. data/lib/webmock/rack_response.rb +2 -0
  35. data/lib/webmock/request_body_diff.rb +2 -0
  36. data/lib/webmock/request_execution_verifier.rb +2 -0
  37. data/lib/webmock/request_pattern.rb +3 -1
  38. data/lib/webmock/request_registry.rb +2 -0
  39. data/lib/webmock/request_signature.rb +2 -0
  40. data/lib/webmock/request_signature_snippet.rb +2 -0
  41. data/lib/webmock/request_stub.rb +7 -1
  42. data/lib/webmock/response.rb +2 -0
  43. data/lib/webmock/responses_sequence.rb +2 -0
  44. data/lib/webmock/rspec/matchers/request_pattern_matcher.rb +2 -0
  45. data/lib/webmock/rspec/matchers/webmock_matcher.rb +2 -0
  46. data/lib/webmock/rspec/matchers.rb +2 -0
  47. data/lib/webmock/rspec.rb +2 -0
  48. data/lib/webmock/stub_registry.rb +2 -0
  49. data/lib/webmock/stub_request_snippet.rb +2 -0
  50. data/lib/webmock/test_unit.rb +2 -0
  51. data/lib/webmock/util/hash_counter.rb +12 -6
  52. data/lib/webmock/util/hash_keys_stringifier.rb +2 -0
  53. data/lib/webmock/util/hash_validator.rb +2 -0
  54. data/lib/webmock/util/headers.rb +22 -8
  55. data/lib/webmock/util/json.rb +2 -0
  56. data/lib/webmock/util/query_mapper.rb +2 -0
  57. data/lib/webmock/util/uri.rb +3 -1
  58. data/lib/webmock/util/values_stringifier.rb +2 -0
  59. data/lib/webmock/util/version_checker.rb +7 -5
  60. data/lib/webmock/version.rb +3 -1
  61. data/lib/webmock/webmock.rb +2 -0
  62. data/lib/webmock.rb +2 -0
  63. metadata +36 -168
  64. data/.gemtest +0 -0
  65. data/.github/workflows/CI.yml +0 -38
  66. data/.gitignore +0 -34
  67. data/.rspec-tm +0 -2
  68. data/Gemfile +0 -9
  69. data/Rakefile +0 -38
  70. data/minitest/test_helper.rb +0 -34
  71. data/minitest/test_webmock.rb +0 -9
  72. data/minitest/webmock_spec.rb +0 -60
  73. data/spec/acceptance/async_http_client/async_http_client_spec.rb +0 -375
  74. data/spec/acceptance/async_http_client/async_http_client_spec_helper.rb +0 -73
  75. data/spec/acceptance/curb/curb_spec.rb +0 -510
  76. data/spec/acceptance/curb/curb_spec_helper.rb +0 -147
  77. data/spec/acceptance/em_http_request/em_http_request_spec.rb +0 -462
  78. data/spec/acceptance/em_http_request/em_http_request_spec_helper.rb +0 -77
  79. data/spec/acceptance/excon/excon_spec.rb +0 -77
  80. data/spec/acceptance/excon/excon_spec_helper.rb +0 -52
  81. data/spec/acceptance/http_rb/http_rb_spec.rb +0 -93
  82. data/spec/acceptance/http_rb/http_rb_spec_helper.rb +0 -54
  83. data/spec/acceptance/httpclient/httpclient_spec.rb +0 -217
  84. data/spec/acceptance/httpclient/httpclient_spec_helper.rb +0 -57
  85. data/spec/acceptance/manticore/manticore_spec.rb +0 -107
  86. data/spec/acceptance/manticore/manticore_spec_helper.rb +0 -35
  87. data/spec/acceptance/net_http/net_http_shared.rb +0 -190
  88. data/spec/acceptance/net_http/net_http_spec.rb +0 -395
  89. data/spec/acceptance/net_http/net_http_spec_helper.rb +0 -64
  90. data/spec/acceptance/net_http/real_net_http_spec.rb +0 -20
  91. data/spec/acceptance/patron/patron_spec.rb +0 -123
  92. data/spec/acceptance/patron/patron_spec_helper.rb +0 -54
  93. data/spec/acceptance/shared/allowing_and_disabling_net_connect.rb +0 -313
  94. data/spec/acceptance/shared/callbacks.rb +0 -148
  95. data/spec/acceptance/shared/complex_cross_concern_behaviors.rb +0 -36
  96. data/spec/acceptance/shared/enabling_and_disabling_webmock.rb +0 -95
  97. data/spec/acceptance/shared/precedence_of_stubs.rb +0 -15
  98. data/spec/acceptance/shared/request_expectations.rb +0 -930
  99. data/spec/acceptance/shared/returning_declared_responses.rb +0 -409
  100. data/spec/acceptance/shared/stubbing_requests.rb +0 -678
  101. data/spec/acceptance/typhoeus/typhoeus_hydra_spec.rb +0 -135
  102. data/spec/acceptance/typhoeus/typhoeus_hydra_spec_helper.rb +0 -60
  103. data/spec/acceptance/webmock_shared.rb +0 -41
  104. data/spec/fixtures/test.txt +0 -1
  105. data/spec/quality_spec.rb +0 -84
  106. data/spec/spec_helper.rb +0 -48
  107. data/spec/support/example_curl_output.txt +0 -22
  108. data/spec/support/failures.rb +0 -9
  109. data/spec/support/my_rack_app.rb +0 -53
  110. data/spec/support/network_connection.rb +0 -19
  111. data/spec/support/webmock_server.rb +0 -70
  112. data/spec/unit/api_spec.rb +0 -175
  113. data/spec/unit/errors_spec.rb +0 -129
  114. data/spec/unit/http_lib_adapters/http_lib_adapter_registry_spec.rb +0 -17
  115. data/spec/unit/http_lib_adapters/http_lib_adapter_spec.rb +0 -12
  116. data/spec/unit/matchers/hash_excluding_matcher_spec.rb +0 -61
  117. data/spec/unit/matchers/hash_including_matcher_spec.rb +0 -87
  118. data/spec/unit/rack_response_spec.rb +0 -112
  119. data/spec/unit/request_body_diff_spec.rb +0 -90
  120. data/spec/unit/request_execution_verifier_spec.rb +0 -208
  121. data/spec/unit/request_pattern_spec.rb +0 -748
  122. data/spec/unit/request_registry_spec.rb +0 -95
  123. data/spec/unit/request_signature_snippet_spec.rb +0 -89
  124. data/spec/unit/request_signature_spec.rb +0 -175
  125. data/spec/unit/request_stub_spec.rb +0 -234
  126. data/spec/unit/response_spec.rb +0 -314
  127. data/spec/unit/stub_registry_spec.rb +0 -103
  128. data/spec/unit/stub_request_snippet_spec.rb +0 -115
  129. data/spec/unit/util/hash_counter_spec.rb +0 -39
  130. data/spec/unit/util/hash_keys_stringifier_spec.rb +0 -27
  131. data/spec/unit/util/headers_spec.rb +0 -28
  132. data/spec/unit/util/json_spec.rb +0 -33
  133. data/spec/unit/util/query_mapper_spec.rb +0 -157
  134. data/spec/unit/util/uri_spec.rb +0 -371
  135. data/spec/unit/util/version_checker_spec.rb +0 -65
  136. data/spec/unit/webmock_spec.rb +0 -114
  137. data/test/http_request.rb +0 -24
  138. data/test/shared_test.rb +0 -108
  139. data/test/test_helper.rb +0 -23
  140. data/test/test_webmock.rb +0 -12
  141. data/webmock.gemspec +0 -54
@@ -1,208 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe WebMock::RequestExecutionVerifier do
4
- before(:each) do
5
- @verifier = WebMock::RequestExecutionVerifier.new
6
- @request_pattern = double(WebMock::RequestPattern, to_s: "www.example.com")
7
- @verifier.request_pattern = @request_pattern
8
- allow(WebMock::RequestRegistry.instance).to receive(:to_s).and_return("executed requests")
9
- @executed_requests_info = "\n\nThe following requests were made:\n\nexecuted requests\n" + "="*60
10
- end
11
-
12
- describe "description" do
13
-
14
- it "reports the description" do
15
- @verifier.expected_times_executed = 2
16
- expect(@verifier.description).to eq "request www.example.com 2 times"
17
- end
18
-
19
- it "reports description correctly when expectation is 1 time" do
20
- @verifier.expected_times_executed = 1
21
- expect(@verifier.description).to eq "request www.example.com 1 time"
22
- end
23
-
24
- context "at_least_times_executed is set" do
25
- it "reports description correctly when expectation at least 2 times" do
26
- @verifier.at_least_times_executed = 2
27
- expect(@verifier.description).to eq "request www.example.com at least 2 times"
28
- end
29
-
30
- it "reports description correctly when expectation is at least 3 times" do
31
- @verifier.at_least_times_executed = 3
32
- expect(@verifier.description).to eq "request www.example.com at least 3 times"
33
- end
34
- end
35
-
36
- context "at_most_times_executed is set" do
37
- it "reports description correctly when expectation is at most 2 times" do
38
- @verifier.at_most_times_executed = 2
39
- expect(@verifier.description).to eq "request www.example.com at most 2 times"
40
- end
41
-
42
- it "reports description correctly when expectation is at most 1 time" do
43
- @verifier.at_most_times_executed = 1
44
- expect(@verifier.description).to eq "request www.example.com at most 1 time"
45
- end
46
- end
47
-
48
- end
49
-
50
- describe "failure message" do
51
-
52
- it "reports the failure message" do
53
- @verifier.times_executed = 0
54
- @verifier.expected_times_executed = 2
55
- expected_text = "The request www.example.com was expected to execute 2 times but it executed 0 times"
56
- expected_text += @executed_requests_info
57
- expect(@verifier.failure_message).to eq(expected_text)
58
- end
59
-
60
- it "reports failure message correctly when executed times is one" do
61
- @verifier.times_executed = 1
62
- @verifier.expected_times_executed = 1
63
- expected_text = "The request www.example.com was expected to execute 1 time but it executed 1 time"
64
- expected_text += @executed_requests_info
65
- expect(@verifier.failure_message).to eq(expected_text)
66
- end
67
-
68
- context "at_least_times_executed is set" do
69
- it "reports failure message correctly when executed times is one" do
70
- @verifier.times_executed = 1
71
- @verifier.at_least_times_executed = 2
72
- expected_text = "The request www.example.com was expected to execute at least 2 times but it executed 1 time"
73
- expected_text += @executed_requests_info
74
- expect(@verifier.failure_message).to eq(expected_text)
75
- end
76
-
77
- it "reports failure message correctly when executed times is two" do
78
- @verifier.times_executed = 2
79
- @verifier.at_least_times_executed = 3
80
- expected_text = "The request www.example.com was expected to execute at least 3 times but it executed 2 times"
81
- expected_text += @executed_requests_info
82
- expect(@verifier.failure_message).to eq(expected_text)
83
- end
84
- end
85
-
86
- context "at_most_times_executed is set" do
87
- it "reports failure message correctly when executed times is three" do
88
- @verifier.times_executed = 3
89
- @verifier.at_most_times_executed = 2
90
- expected_text = "The request www.example.com was expected to execute at most 2 times but it executed 3 times"
91
- expected_text += @executed_requests_info
92
- expect(@verifier.failure_message).to eq(expected_text)
93
- end
94
-
95
- it "reports failure message correctly when executed times is two" do
96
- @verifier.times_executed = 2
97
- @verifier.at_most_times_executed = 1
98
- expected_text = "The request www.example.com was expected to execute at most 1 time but it executed 2 times"
99
- expected_text += @executed_requests_info
100
- expect(@verifier.failure_message).to eq(expected_text)
101
- end
102
- end
103
- end
104
-
105
- describe "negative failure message" do
106
-
107
- it "reports failure message if it executed number of times specified" do
108
- @verifier.times_executed = 2
109
- @verifier.expected_times_executed = 2
110
- expected_text = "The request www.example.com was not expected to execute 2 times but it executed 2 times"
111
- expected_text += @executed_requests_info
112
- expect(@verifier.failure_message_when_negated).to eq(expected_text)
113
- end
114
-
115
- it "reports failure message when not expected request but it executed" do
116
- @verifier.times_executed = 1
117
- expected_text = "The request www.example.com was not expected to execute but it executed 1 time"
118
- expected_text += @executed_requests_info
119
- expect(@verifier.failure_message_when_negated).to eq(expected_text)
120
- end
121
-
122
- context "at_least_times_executed is set" do
123
- it "reports failure message correctly when executed times is one" do
124
- @verifier.times_executed = 3
125
- @verifier.at_least_times_executed = 2
126
- expected_text = "The request www.example.com was not expected to execute at least 2 times but it executed 3 times"
127
- expected_text += @executed_requests_info
128
- expect(@verifier.failure_message_when_negated).to eq(expected_text)
129
- end
130
-
131
- it "reports failure message correctly when executed times is two" do
132
- @verifier.times_executed = 2
133
- @verifier.at_least_times_executed = 2
134
- expected_text = "The request www.example.com was not expected to execute at least 2 times but it executed 2 times"
135
- expected_text += @executed_requests_info
136
- expect(@verifier.failure_message_when_negated).to eq(expected_text)
137
- end
138
- end
139
-
140
- context "at_most_times_executed is set" do
141
- it "reports failure message correctly when executed times is three" do
142
- @verifier.times_executed = 2
143
- @verifier.at_most_times_executed = 3
144
- expected_text = "The request www.example.com was not expected to execute at most 3 times but it executed 2 times"
145
- expected_text += @executed_requests_info
146
- expect(@verifier.failure_message_when_negated).to eq(expected_text)
147
- end
148
-
149
- it "reports failure message correctly when executed times is one" do
150
- @verifier.times_executed = 1
151
- @verifier.at_most_times_executed = 2
152
- expected_text = "The request www.example.com was not expected to execute at most 2 times but it executed 1 time"
153
- expected_text += @executed_requests_info
154
- expect(@verifier.failure_message_when_negated).to eq(expected_text)
155
- end
156
- end
157
-
158
- end
159
-
160
- describe "matches?" do
161
-
162
- it "succeeds if request was executed expected number of times" do
163
- expect(WebMock::RequestRegistry.instance).
164
- to receive(:times_executed).with(@request_pattern).and_return(10)
165
- @verifier.expected_times_executed = 10
166
- expect(@verifier.matches?).to be_truthy
167
- end
168
-
169
- it "fails if request was not executed expected number of times" do
170
- expect(WebMock::RequestRegistry.instance).
171
- to receive(:times_executed).with(@request_pattern).and_return(10)
172
- @verifier.expected_times_executed = 5
173
- expect(@verifier.matches?).to be_falsey
174
- end
175
-
176
- end
177
-
178
- describe "does_not_match?" do
179
-
180
- it "fails if request executed expected number of times" do
181
- expect(WebMock::RequestRegistry.instance).
182
- to receive(:times_executed).with(@request_pattern).and_return(10)
183
- @verifier.expected_times_executed = 10
184
- expect(@verifier.does_not_match?).to be_falsey
185
- end
186
-
187
- it "succeeds if request was not executed at all and expected number of times was not set" do
188
- expect(WebMock::RequestRegistry.instance).
189
- to receive(:times_executed).with(@request_pattern).and_return(0)
190
- expect(@verifier.does_not_match?).to be_truthy
191
- end
192
-
193
- it "fails if request was executed and expected number of times was not set" do
194
- expect(WebMock::RequestRegistry.instance).
195
- to receive(:times_executed).with(@request_pattern).and_return(1)
196
- expect(@verifier.does_not_match?).to be_falsey
197
- end
198
-
199
- it "succeeds if request was not executed expected number of times" do
200
- expect(WebMock::RequestRegistry.instance).
201
- to receive(:times_executed).with(@request_pattern).and_return(10)
202
- @verifier.expected_times_executed = 5
203
- expect(@verifier.does_not_match?).to be_truthy
204
- end
205
-
206
- end
207
-
208
- end