webmock 3.14.0 → 3.19.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (141) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +124 -2
  3. data/README.md +46 -18
  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 +8 -1
  12. data/lib/webmock/http_lib_adapters/curb_adapter.rb +4 -2
  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 +3 -3
  18. data/lib/webmock/http_lib_adapters/http_rb/request.rb +3 -1
  19. data/lib/webmock/http_lib_adapters/http_rb/response.rb +6 -1
  20. data/lib/webmock/http_lib_adapters/http_rb/streamer.rb +6 -2
  21. data/lib/webmock/http_lib_adapters/http_rb/webmock.rb +8 -2
  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 +24 -115
  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 +26 -8
  38. data/lib/webmock/request_registry.rb +2 -0
  39. data/lib/webmock/request_signature.rb +4 -2
  40. data/lib/webmock/request_signature_snippet.rb +2 -0
  41. data/lib/webmock/request_stub.rb +34 -0
  42. data/lib/webmock/response.rb +10 -8
  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 +12 -0
  62. data/lib/webmock.rb +2 -0
  63. metadata +51 -183
  64. data/.gemtest +0 -0
  65. data/.github/workflows/CI.yml +0 -37
  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 -499
  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 -153
  88. data/spec/acceptance/net_http/net_http_spec.rb +0 -369
  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 -125
  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 -736
  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 -155
  125. data/spec/unit/request_stub_spec.rb +0 -199
  126. data/spec/unit/response_spec.rb +0 -286
  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 -60
  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