assert 2.18.2 → 2.19.2

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 (80) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +4 -2
  3. data/README.md +7 -6
  4. data/assert.gemspec +5 -2
  5. data/bin/assert +1 -0
  6. data/lib/assert.rb +2 -0
  7. data/lib/assert/actual_value.rb +143 -0
  8. data/lib/assert/assert_runner.rb +2 -0
  9. data/lib/assert/assertions.rb +82 -20
  10. data/lib/assert/cli.rb +2 -0
  11. data/lib/assert/config.rb +2 -0
  12. data/lib/assert/config_helpers.rb +2 -0
  13. data/lib/assert/context.rb +33 -37
  14. data/lib/assert/context/let_dsl.rb +16 -0
  15. data/lib/assert/context/method_missing.rb +22 -0
  16. data/lib/assert/context/setup_dsl.rb +3 -0
  17. data/lib/assert/context/subject_dsl.rb +26 -24
  18. data/lib/assert/context/suite_dsl.rb +3 -0
  19. data/lib/assert/context/test_dsl.rb +3 -0
  20. data/lib/assert/context_info.rb +2 -0
  21. data/lib/assert/default_runner.rb +2 -0
  22. data/lib/assert/default_suite.rb +2 -0
  23. data/lib/assert/default_view.rb +2 -0
  24. data/lib/assert/factory.rb +2 -0
  25. data/lib/assert/file_line.rb +2 -0
  26. data/lib/assert/macro.rb +2 -0
  27. data/lib/assert/macros/methods.rb +6 -4
  28. data/lib/assert/result.rb +8 -1
  29. data/lib/assert/runner.rb +2 -0
  30. data/lib/assert/stub.rb +45 -0
  31. data/lib/assert/suite.rb +9 -10
  32. data/lib/assert/test.rb +3 -9
  33. data/lib/assert/utils.rb +3 -1
  34. data/lib/assert/version.rb +3 -1
  35. data/lib/assert/view.rb +2 -0
  36. data/lib/assert/view_helpers.rb +2 -0
  37. data/test/helper.rb +28 -28
  38. data/test/support/factory.rb +17 -0
  39. data/test/support/inherited_stuff.rb +2 -0
  40. data/test/system/stub_tests.rb +334 -333
  41. data/test/system/test_tests.rb +101 -109
  42. data/test/unit/actual_value_tests.rb +373 -0
  43. data/test/unit/assert_tests.rb +79 -61
  44. data/test/unit/assertions/assert_block_tests.rb +32 -31
  45. data/test/unit/assertions/assert_changes_tests.rb +99 -0
  46. data/test/unit/assertions/assert_empty_tests.rb +35 -32
  47. data/test/unit/assertions/assert_equal_tests.rb +96 -74
  48. data/test/unit/assertions/assert_file_exists_tests.rb +34 -33
  49. data/test/unit/assertions/assert_includes_tests.rb +40 -37
  50. data/test/unit/assertions/assert_instance_of_tests.rb +36 -33
  51. data/test/unit/assertions/assert_kind_of_tests.rb +36 -33
  52. data/test/unit/assertions/assert_match_tests.rb +36 -33
  53. data/test/unit/assertions/assert_nil_tests.rb +32 -31
  54. data/test/unit/assertions/assert_raises_tests.rb +57 -55
  55. data/test/unit/assertions/assert_respond_to_tests.rb +38 -35
  56. data/test/unit/assertions/assert_same_tests.rb +88 -81
  57. data/test/unit/assertions/assert_true_false_tests.rb +62 -60
  58. data/test/unit/assertions_tests.rb +28 -24
  59. data/test/unit/config_helpers_tests.rb +45 -38
  60. data/test/unit/config_tests.rb +40 -34
  61. data/test/unit/context/let_dsl_tests.rb +12 -0
  62. data/test/unit/context/setup_dsl_tests.rb +72 -81
  63. data/test/unit/context/subject_dsl_tests.rb +17 -43
  64. data/test/unit/context/suite_dsl_tests.rb +17 -16
  65. data/test/unit/context/test_dsl_tests.rb +52 -52
  66. data/test/unit/context_info_tests.rb +25 -15
  67. data/test/unit/context_tests.rb +186 -179
  68. data/test/unit/default_runner_tests.rb +4 -5
  69. data/test/unit/default_suite_tests.rb +59 -53
  70. data/test/unit/factory_tests.rb +7 -3
  71. data/test/unit/file_line_tests.rb +35 -35
  72. data/test/unit/macro_tests.rb +16 -10
  73. data/test/unit/result_tests.rb +161 -183
  74. data/test/unit/runner_tests.rb +67 -65
  75. data/test/unit/suite_tests.rb +58 -59
  76. data/test/unit/test_tests.rb +120 -139
  77. data/test/unit/utils_tests.rb +45 -45
  78. data/test/unit/view_helpers_tests.rb +56 -52
  79. data/test/unit/view_tests.rb +24 -23
  80. metadata +29 -6
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "assert"
2
4
 
3
5
  class Assert::Test
@@ -6,332 +8,322 @@ class Assert::Test
6
8
  include Assert::Test::TestHelpers
7
9
 
8
10
  desc "Assert::Test"
9
- subject{ @test }
11
+
12
+ setup do
13
+ subject.run(&test_run_callback)
14
+ end
10
15
  end
11
16
 
12
17
  class NoResultsTests < SystemTests
13
18
  desc "when producing no results"
14
- setup do
15
- @test = Factory.test
16
- @test.run(&test_run_callback)
17
- end
19
+ subject { Factory.test }
18
20
 
19
21
  should "generate 0 results" do
20
- assert_equal 0, test_run_result_count
22
+ assert_that(test_run_result_count).equals(0)
21
23
  end
22
24
  end
23
25
 
24
26
  class PassTests < SystemTests
25
27
  desc "when passing a single assertion"
26
- setup do
27
- @test = Factory.test{ assert(1 == 1) }
28
- @test.run(&test_run_callback)
29
- end
28
+ subject { Factory.test{ assert(1 == 1) } }
30
29
 
31
30
  should "generate 1 result" do
32
- assert_equal 1, test_run_result_count
31
+ assert_that(test_run_result_count).equals(1)
33
32
  end
34
33
 
35
34
  should "generate 1 pass result" do
36
- assert_equal 1, test_run_result_count(:pass)
35
+ assert_that(test_run_result_count(:pass)).equals(1)
37
36
  end
38
37
  end
39
38
 
40
39
  class FailTests < SystemTests
41
40
  desc "when failing a single assertion"
42
- setup do
43
- @test = Factory.test{ assert(1 == 0) }
44
- @test.run(&test_run_callback)
45
- end
41
+ subject { Factory.test{ assert(1 == 0) } }
46
42
 
47
43
  should "generate 1 result" do
48
- assert_equal 1, test_run_result_count
44
+ assert_that(test_run_result_count).equals(1)
49
45
  end
50
46
 
51
47
  should "generate 1 fail result" do
52
- assert_equal 1, test_run_result_count(:fail)
48
+ assert_that(test_run_result_count(:fail)).equals(1)
53
49
  end
54
50
  end
55
51
 
56
52
  class SkipTests < SystemTests
57
53
  desc "when skipping once"
58
- setup do
59
- @test = Factory.test{ skip }
60
- @test.run(&test_run_callback)
61
- end
54
+ subject { Factory.test{ skip } }
62
55
 
63
56
  should "generate 1 result" do
64
- assert_equal 1, test_run_result_count
57
+ assert_that(test_run_result_count).equals(1)
65
58
  end
66
59
 
67
60
  should "generate 1 skip result" do
68
- assert_equal 1, test_run_result_count(:skip)
61
+ assert_that(test_run_result_count(:skip)).equals(1)
69
62
  end
70
63
  end
71
64
 
72
65
  class ErrorTests < SystemTests
73
66
  desc "when erroring once"
74
- setup do
75
- @test = Factory.test{ raise("WHAT") }
76
- @test.run(&test_run_callback)
77
- end
67
+ subject { Factory.test{ raise("WHAT") } }
78
68
 
79
69
  should "generate 1 result" do
80
- assert_equal 1, test_run_result_count
70
+ assert_that(test_run_result_count).equals(1)
81
71
  end
82
72
 
83
73
  should "generate 1 error result" do
84
- assert_equal 1, test_run_result_count(:error)
74
+ assert_that(test_run_result_count(:error)).equals(1)
85
75
  end
86
76
  end
87
77
 
88
78
  class MixedTests < SystemTests
89
79
  desc "when passing 1 assertion and failing 1 assertion"
90
- setup do
91
- @test = Factory.test do
80
+ subject {
81
+ Factory.test do
92
82
  assert(1 == 1)
93
83
  assert(1 == 0)
94
84
  end
95
- @test.run(&test_run_callback)
96
- end
85
+ }
97
86
 
98
87
  should "generate 2 total results" do
99
- assert_equal 2, test_run_result_count
88
+ assert_that(test_run_result_count).equals(2)
100
89
  end
101
90
 
102
91
  should "generate 1 pass result" do
103
- assert_equal 1, test_run_result_count(:pass)
92
+ assert_that(test_run_result_count(:pass)).equals(1)
104
93
  end
105
94
 
106
95
  should "generate 1 fail result" do
107
- assert_equal 1, test_run_result_count(:fail)
96
+ assert_that(test_run_result_count(:fail)).equals(1)
108
97
  end
109
98
  end
110
99
 
111
100
  class MixedSkipTests < SystemTests
112
101
  desc "when passing 1 assertion and failing 1 assertion with a skip call in between"
113
- setup do
114
- @test = Factory.test do
102
+ subject {
103
+ Factory.test do
115
104
  assert(1 == 1)
116
105
  skip
117
106
  assert(1 == 0)
118
107
  end
119
- @test.run(&test_run_callback)
120
- end
108
+ }
121
109
 
122
110
  should "generate 2 total results" do
123
- assert_equal 2, test_run_result_count
111
+ assert_that(test_run_result_count).equals(2)
124
112
  end
125
113
 
126
114
  should "generate a skip for its last result" do
127
- assert_kind_of Assert::Result::Skip, last_test_run_result
115
+ assert_that(last_test_run_result).is_kind_of(Assert::Result::Skip)
128
116
  end
129
117
 
130
118
  should "generate 1 pass result" do
131
- assert_equal 1, test_run_result_count(:pass)
119
+ assert_that(test_run_result_count(:pass)).equals(1)
132
120
  end
133
121
 
134
122
  should "generate 1 skip result" do
135
- assert_equal 1, test_run_result_count(:skip)
123
+ assert_that(test_run_result_count(:skip)).equals(1)
136
124
  end
137
125
 
138
126
  should "generate 0 fail results" do
139
- assert_equal 0, test_run_result_count(:fail)
127
+ assert_that(test_run_result_count(:fail)).equals(0)
140
128
  end
141
129
  end
142
130
 
143
131
  class MixedErrorTests < SystemTests
144
132
  desc "when passing 1 assertion and failing 1 assertion with an exception raised in between"
145
- setup do
146
- @test = Factory.test do
133
+ subject {
134
+ Factory.test do
147
135
  assert(1 == 1)
148
136
  raise Exception, "something errored"
149
137
  assert(1 == 0)
150
138
  end
151
- @test.run(&test_run_callback)
152
- end
139
+ }
153
140
 
154
141
  should "generate 2 total results" do
155
- assert_equal 2, test_run_result_count
142
+ assert_that(test_run_result_count).equals(2)
156
143
  end
157
144
 
158
145
  should "generate an error for its last result" do
159
- assert_kind_of Assert::Result::Error, last_test_run_result
146
+ assert_that(last_test_run_result).is_kind_of(Assert::Result::Error)
160
147
  end
161
148
 
162
149
  should "generate 1 pass result" do
163
- assert_equal 1, test_run_result_count(:pass)
150
+ assert_that(test_run_result_count(:pass)).equals(1)
164
151
  end
165
152
 
166
153
  should "generate 1 error result" do
167
- assert_equal 1, test_run_result_count(:error)
154
+ assert_that(test_run_result_count(:error)).equals(1)
168
155
  end
169
156
 
170
157
  should "generate 0 fail results" do
171
- assert_equal 0, test_run_result_count(:fail)
158
+ assert_that(test_run_result_count(:fail)).equals(0)
172
159
  end
173
160
  end
174
161
 
175
162
  class MixedPassTests < SystemTests
176
163
  desc "when passing 1 assertion and failing 1 assertion with a pass call in between"
177
- setup do
178
- @test = Factory.test do
164
+ subject {
165
+ Factory.test do
179
166
  assert(1 == 1)
180
167
  pass
181
168
  assert(1 == 0)
182
169
  end
183
- @test.run(&test_run_callback)
184
- end
170
+ }
185
171
 
186
172
  should "generate 3 total results" do
187
- assert_equal 3, test_run_result_count
173
+ assert_that(test_run_result_count).equals(3)
188
174
  end
189
175
 
190
176
  should "generate a fail for its last result" do
191
- assert_kind_of Assert::Result::Fail, last_test_run_result
177
+ assert_that(last_test_run_result).is_kind_of(Assert::Result::Fail)
192
178
  end
193
179
 
194
180
  should "generate 2 pass results" do
195
- assert_equal 2, test_run_result_count(:pass)
181
+ assert_that(test_run_result_count(:pass)).equals(2)
196
182
  end
197
183
 
198
184
  should "generate 1 fail result" do
199
- assert_equal 1, test_run_result_count(:fail)
185
+ assert_that(test_run_result_count(:fail)).equals(1)
200
186
  end
201
187
  end
202
188
 
203
189
  class MixedFailTests < SystemTests
204
190
  desc "when failing 1 assertion and passing 1 assertion with a fail call in between"
205
- setup do
206
- @test = Factory.test do
191
+ subject {
192
+ Factory.test do
207
193
  assert(1 == 0)
208
194
  fail
209
195
  assert(1 == 1)
210
196
  end
211
- @test.run(&test_run_callback)
212
- end
197
+ }
213
198
 
214
199
  should "generate 3 total results" do
215
- assert_equal 3, test_run_result_count
200
+ assert_that(test_run_result_count).equals(3)
216
201
  end
217
202
 
218
203
  should "generate a pass for its last result" do
219
- assert_kind_of Assert::Result::Pass, last_test_run_result
204
+ assert_that(last_test_run_result).is_kind_of(Assert::Result::Pass)
220
205
  end
221
206
 
222
207
  should "generate 1 pass result" do
223
- assert_equal 1, test_run_result_count(:pass)
208
+ assert_that(test_run_result_count(:pass)).equals(1)
224
209
  end
225
210
 
226
211
  should "generate 2 fail results" do
227
- assert_equal 2, test_run_result_count(:fail)
212
+ assert_that(test_run_result_count(:fail)).equals(2)
228
213
  end
229
214
  end
230
215
 
231
216
  class MixedFlunkTests < SystemTests
232
217
  desc "has failing 1 assertion and passing 1 assertion with a flunk call in between"
233
- setup do
234
- @test = Factory.test do
218
+ subject {
219
+ Factory.test do
235
220
  assert(1 == 0)
236
221
  flunk
237
222
  assert(1 == 1)
238
223
  end
239
- @test.run(&test_run_callback)
240
- end
224
+ }
241
225
 
242
226
  should "generate 3 total results" do
243
- assert_equal 3, test_run_result_count
227
+ assert_that(test_run_result_count).equals(3)
244
228
  end
245
229
 
246
230
  should "generate a pass for its last result" do
247
- assert_kind_of Assert::Result::Pass, last_test_run_result
231
+ assert_that(last_test_run_result).is_kind_of(Assert::Result::Pass)
248
232
  end
249
233
 
250
234
  should "generate 1 pass results" do
251
- assert_equal 1, test_run_result_count(:pass)
235
+ assert_that(test_run_result_count(:pass)).equals(1)
252
236
  end
253
237
 
254
238
  should "generate 2 fail results" do
255
- assert_equal 2, test_run_result_count(:fail)
239
+ assert_that(test_run_result_count(:fail)).equals(2)
256
240
  end
257
241
  end
258
242
 
259
243
  class WithSetupsTests < SystemTests
260
244
  desc "that has setup logic"
261
- setup do
262
- @context_class = Factory.context_class do
245
+ subject {
246
+ Factory.test("t", Factory.context_info(context_class1)) { pass "TEST" }
247
+ }
248
+
249
+ let(:context_class1) {
250
+ Factory.context_class do
263
251
  # assert style
264
- setup{ pass "assert style setup" }
252
+ setup { pass "assert style setup" }
265
253
  # test/unit style
266
254
  def setup; pass "test/unit style setup"; end
267
255
  end
268
- @test = Factory.test("t", Factory.context_info(@context_class)){ pass "TEST" }
269
- @test.run(&test_run_callback)
270
- end
256
+ }
271
257
 
272
258
  should "execute all setup logic when run" do
273
- assert_equal 3, test_run_result_count(:pass)
259
+ assert_that(test_run_result_count(:pass)).equals(3)
274
260
 
275
261
  exp = ["assert style setup", "test/unit style setup", "TEST"]
276
- assert_equal exp, test_run_result_messages
262
+ assert_that(test_run_result_messages).equals(exp)
277
263
  end
278
264
  end
279
265
 
280
266
  class WithTeardownsTests < SystemTests
281
267
  desc "that has teardown logic"
282
- setup do
283
- @context_class = Factory.context_class do
268
+ subject {
269
+ Factory.test("t", Factory.context_info(context_class1)) { pass "TEST" }
270
+ }
271
+
272
+ let(:context_class1) {
273
+ Factory.context_class do
284
274
  # assert style
285
- teardown{ pass "assert style teardown" }
275
+ teardown { pass "assert style teardown" }
286
276
  # test/unit style
287
277
  def teardown; pass "test/unit style teardown"; end
288
278
  end
289
- @test = Factory.test("t", Factory.context_info(@context_class)){ pass "TEST" }
290
- @test.run(&test_run_callback)
291
- end
279
+ }
292
280
 
293
281
  should "execute all teardown logic when run" do
294
- assert_equal 3, test_run_result_count(:pass)
282
+ assert_that(test_run_result_count(:pass)).equals(3)
295
283
 
296
284
  exp = ["TEST", "assert style teardown", "test/unit style teardown"]
297
- assert_equal exp, test_run_result_messages
285
+ assert_that(test_run_result_messages).equals(exp)
298
286
  end
299
287
  end
300
288
 
301
289
  class WithAroundsTests < SystemTests
302
290
  desc "that has around logic (in addition to setups/teardowns)"
303
- setup do
304
- @parent_context_class = Factory.modes_off_context_class do
291
+ subject {
292
+ Factory.test("t", Factory.context_info(context_class1)) { pass "TEST" }
293
+ }
294
+
295
+ let(:parent_context_class1) {
296
+ Factory.modes_off_context_class do
305
297
  around do |block|
306
298
  pass "parent around start"
307
299
  block.call
308
300
  pass "parent around end"
309
301
  end
310
- setup{ pass "parent setup" }
311
- teardown{ pass "parent teardown" }
302
+ setup { pass "parent setup" }
303
+ teardown { pass "parent teardown" }
312
304
  end
313
- @context_class = Factory.modes_off_context_class(@parent_context_class) do
314
- setup{ pass "child setup1" }
305
+ }
306
+ let(:context_class1) {
307
+ Factory.modes_off_context_class(parent_context_class1) do
308
+ setup { pass "child setup1" }
315
309
  around do |block|
316
310
  pass "child around1 start"
317
311
  block.call
318
312
  pass "child around1 end"
319
313
  end
320
- teardown{ pass "child teardown1" }
321
- setup{ pass "child setup2" }
314
+ teardown { pass "child teardown1" }
315
+ setup { pass "child setup2" }
322
316
  around do |block|
323
317
  pass "child around2 start"
324
318
  block.call
325
319
  pass "child around2 end"
326
320
  end
327
- teardown{ pass "child teardown2" }
321
+ teardown { pass "child teardown2" }
328
322
  end
329
- @test = Factory.test("t", Factory.context_info(@context_class)){ pass "TEST" }
330
- @test.run(&test_run_callback)
331
- end
323
+ }
332
324
 
333
325
  should "run the arounds outside of the setups/teardowns/test" do
334
- assert_equal 13, test_run_result_count(:pass)
326
+ assert_that(test_run_result_count(:pass)).equals(13)
335
327
 
336
328
  exp = [
337
329
  "parent around start", "child around1 start", "child around2 start",
@@ -339,7 +331,7 @@ class Assert::Test
339
331
  "child teardown1", "child teardown2", "parent teardown",
340
332
  "child around2 end", "child around1 end", "parent around end"
341
333
  ]
342
- assert_equal exp, test_run_result_messages
334
+ assert_that(test_run_result_messages).equals(exp)
343
335
  end
344
336
  end
345
337
  end
@@ -0,0 +1,373 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "assert"
4
+ require "assert/actual_value"
5
+
6
+ class Assert::ActualValue
7
+ class UnitTests < Assert::Context
8
+ desc "Assert::ActualValue"
9
+ subject { unit_class }
10
+
11
+ let(:unit_class) { Assert::ActualValue }
12
+ end
13
+
14
+ class InitTests < UnitTests
15
+ desc "when init"
16
+ subject { unit_class.new(actual_value1, context: context1) }
17
+
18
+ let(:actual_value1) { Factory.string }
19
+ let(:context1) { Factory.modes_off_context }
20
+
21
+ should have_imeths :returns_true, :does_not_return_true
22
+ should have_imeths :raises, :does_not_raise
23
+ should have_imeths :changes, :does_not_change
24
+ should have_imeths :is_a_kind_of, :is_not_a_kind_of
25
+ should have_imeths :is_kind_of, :is_not_kind_of
26
+ should have_imeths :is_an_instance_of, :is_not_an_instance_of
27
+ should have_imeths :is_instance_of, :is_not_instance_of
28
+ should have_imeths :responds_to, :does_not_respond_to
29
+ should have_imeths :is_the_same_as, :is_not_the_same_as
30
+ should have_imeths :is, :is_not
31
+ should have_imeths :equals, :does_not_equal
32
+ should have_imeths :is_equal_to, :is_not_equal_to
33
+ should have_imeths :matches, :does_not_match
34
+ should have_imeths :is_empty, :is_not_empty
35
+ should have_imeths :includes, :does_not_include
36
+ should have_imeths :is_nil, :is_not_nil
37
+ should have_imeths :is_true, :is_not_true
38
+ should have_imeths :is_false, :is_not_false
39
+ should have_imeths :is_a_file, :is_not_a_file
40
+ end
41
+
42
+ class MethodsTests < InitTests
43
+ desc "methods"
44
+
45
+ let(:args1) { Factory.integer(3).times.map { Factory.string } }
46
+ let(:capture_last_call_block) { ->(call) { @last_call = call } }
47
+
48
+ should "call to their equivalent context methods" do
49
+ assert_calls(
50
+ :assert_block,
51
+ when_calling: :returns_true,
52
+ on_value: -> {}
53
+ ) do |value, call|
54
+ assert_equal args1, call.args
55
+ assert_equal value, call.block
56
+ end
57
+
58
+ assert_calls(
59
+ :assert_not_block,
60
+ when_calling: :does_not_return_true,
61
+ on_value: -> {}
62
+ ) do |value, call|
63
+ assert_equal args1, call.args
64
+ assert_equal value, call.block
65
+ end
66
+
67
+ assert_calls(
68
+ :assert_raises,
69
+ when_calling: :raises,
70
+ on_value: -> {}
71
+ ) do |value, call|
72
+ assert_equal args1, call.args
73
+ assert_equal value, call.block
74
+ end
75
+
76
+ assert_calls(
77
+ :assert_nothing_raised,
78
+ when_calling: :does_not_raise,
79
+ on_value: -> {}
80
+ ) do |value, call|
81
+ assert_equal args1, call.args
82
+ assert_equal value, call.block
83
+ end
84
+
85
+ assert_calls(
86
+ :assert_changes,
87
+ when_calling: :changes,
88
+ on_value: -> {}
89
+ ) do |value, call|
90
+ assert_equal args1, call.args
91
+ assert_equal value, call.block
92
+ end
93
+
94
+ assert_calls(
95
+ :assert_not_changes,
96
+ when_calling: :does_not_change,
97
+ on_value: -> {}
98
+ ) do |value, call|
99
+ assert_equal args1, call.args
100
+ assert_equal value, call.block
101
+ end
102
+
103
+ assert_calls(
104
+ :assert_kind_of,
105
+ when_calling: [:is_a_kind_of, String],
106
+ on_value: actual_value1
107
+ ) do |value, call|
108
+ assert_equal [String, value, *args1], call.args
109
+ end
110
+
111
+ assert_calls(
112
+ :assert_kind_of,
113
+ when_calling: [:is_kind_of, String],
114
+ on_value: actual_value1
115
+ ) do |value, call|
116
+ assert_equal [String, value, *args1], call.args
117
+ end
118
+
119
+ assert_calls(
120
+ :assert_not_kind_of,
121
+ when_calling: [:is_not_a_kind_of, String],
122
+ on_value: actual_value1
123
+ ) do |value, call|
124
+ assert_equal [String, value, *args1], call.args
125
+ end
126
+
127
+ assert_calls(
128
+ :assert_not_kind_of,
129
+ when_calling: [:is_not_kind_of, String],
130
+ on_value: actual_value1
131
+ ) do |value, call|
132
+ assert_equal [String, value, *args1], call.args
133
+ end
134
+
135
+ assert_calls(
136
+ :assert_instance_of,
137
+ when_calling: [:is_an_instance_of, String],
138
+ on_value: actual_value1
139
+ ) do |value, call|
140
+ assert_equal [String, value, *args1], call.args
141
+ end
142
+
143
+ assert_calls(
144
+ :assert_instance_of,
145
+ when_calling: [:is_instance_of, String],
146
+ on_value: actual_value1
147
+ ) do |value, call|
148
+ assert_equal [String, value, *args1], call.args
149
+ end
150
+
151
+ assert_calls(
152
+ :assert_not_instance_of,
153
+ when_calling: [:is_not_an_instance_of, String],
154
+ on_value: actual_value1
155
+ ) do |value, call|
156
+ assert_equal [String, value, *args1], call.args
157
+ end
158
+
159
+ assert_calls(
160
+ :assert_not_instance_of,
161
+ when_calling: [:is_not_instance_of, String],
162
+ on_value: actual_value1
163
+ ) do |value, call|
164
+ assert_equal [String, value, *args1], call.args
165
+ end
166
+
167
+ assert_calls(
168
+ :assert_responds_to,
169
+ when_calling: [:responds_to, :method],
170
+ on_value: actual_value1
171
+ ) do |value, call|
172
+ assert_equal [:method, value, *args1], call.args
173
+ end
174
+
175
+ assert_calls(
176
+ :assert_not_responds_to,
177
+ when_calling: [:does_not_respond_to, :method],
178
+ on_value: actual_value1
179
+ ) do |value, call|
180
+ assert_equal [:method, value, *args1], call.args
181
+ end
182
+
183
+ assert_calls(
184
+ :assert_same,
185
+ when_calling: [:is_the_same_as, "something"],
186
+ on_value: actual_value1
187
+ ) do |value, call|
188
+ assert_equal ["something", value, *args1], call.args
189
+ end
190
+
191
+ assert_calls(
192
+ :assert_same,
193
+ when_calling: [:is, "something"],
194
+ on_value: actual_value1
195
+ ) do |value, call|
196
+ assert_equal ["something", value, *args1], call.args
197
+ end
198
+
199
+ assert_calls(
200
+ :assert_not_same,
201
+ when_calling: [:is_not_the_same_as, "something"],
202
+ on_value: actual_value1
203
+ ) do |value, call|
204
+ assert_equal ["something", value, *args1], call.args
205
+ end
206
+
207
+ assert_calls(
208
+ :assert_not_same,
209
+ when_calling: [:is_not, "something"],
210
+ on_value: actual_value1
211
+ ) do |value, call|
212
+ assert_equal ["something", value, *args1], call.args
213
+ end
214
+
215
+ assert_calls(
216
+ :assert_equal,
217
+ when_calling: [:equals, "something"],
218
+ on_value: actual_value1
219
+ ) do |value, call|
220
+ assert_equal ["something", value, *args1], call.args
221
+ end
222
+
223
+ assert_calls(
224
+ :assert_equal,
225
+ when_calling: [:is_equal_to, "something"],
226
+ on_value: actual_value1
227
+ ) do |value, call|
228
+ assert_equal ["something", value, *args1], call.args
229
+ end
230
+
231
+ assert_calls(
232
+ :assert_not_equal,
233
+ when_calling: [:does_not_equal, "something"],
234
+ on_value: actual_value1
235
+ ) do |value, call|
236
+ assert_equal ["something", value, *args1], call.args
237
+ end
238
+
239
+ assert_calls(
240
+ :assert_not_equal,
241
+ when_calling: [:is_not_equal_to, "something"],
242
+ on_value: actual_value1
243
+ ) do |value, call|
244
+ assert_equal ["something", value, *args1], call.args
245
+ end
246
+
247
+ assert_calls(
248
+ :assert_match,
249
+ when_calling: [:matches, "something"],
250
+ on_value: actual_value1
251
+ ) do |value, call|
252
+ assert_equal ["something", value, *args1], call.args
253
+ end
254
+
255
+ assert_calls(
256
+ :assert_not_match,
257
+ when_calling: [:does_not_match, "something"],
258
+ on_value: actual_value1
259
+ ) do |value, call|
260
+ assert_equal ["something", value, *args1], call.args
261
+ end
262
+
263
+ assert_calls(
264
+ :assert_empty,
265
+ when_calling: :is_empty,
266
+ on_value: actual_value1
267
+ ) do |value, call|
268
+ assert_equal [value, *args1], call.args
269
+ end
270
+
271
+ assert_calls(
272
+ :assert_not_empty,
273
+ when_calling: :is_not_empty,
274
+ on_value: actual_value1
275
+ ) do |value, call|
276
+ assert_equal [value, *args1], call.args
277
+ end
278
+
279
+ assert_calls(
280
+ :assert_includes,
281
+ when_calling: [:includes, "something"],
282
+ on_value: actual_value1
283
+ ) do |value, call|
284
+ assert_equal ["something", value, *args1], call.args
285
+ end
286
+
287
+ assert_calls(
288
+ :assert_not_includes,
289
+ when_calling: [:does_not_include, "something"],
290
+ on_value: actual_value1
291
+ ) do |value, call|
292
+ assert_equal ["something", value, *args1], call.args
293
+ end
294
+
295
+ assert_calls(
296
+ :assert_nil,
297
+ when_calling: :is_nil,
298
+ on_value: actual_value1
299
+ ) do |value, call|
300
+ assert_equal [value, *args1], call.args
301
+ end
302
+
303
+ assert_calls(
304
+ :assert_not_nil,
305
+ when_calling: :is_not_nil,
306
+ on_value: actual_value1
307
+ ) do |value, call|
308
+ assert_equal [value, *args1], call.args
309
+ end
310
+
311
+ assert_calls(
312
+ :assert_true,
313
+ when_calling: :is_true,
314
+ on_value: actual_value1
315
+ ) do |value, call|
316
+ assert_equal [value, *args1], call.args
317
+ end
318
+
319
+ assert_calls(
320
+ :assert_not_true,
321
+ when_calling: :is_not_true,
322
+ on_value: actual_value1
323
+ ) do |value, call|
324
+ assert_equal [value, *args1], call.args
325
+ end
326
+
327
+ assert_calls(
328
+ :assert_false,
329
+ when_calling: :is_false,
330
+ on_value: actual_value1
331
+ ) do |value, call|
332
+ assert_equal [value, *args1], call.args
333
+ end
334
+
335
+ assert_calls(
336
+ :assert_not_false,
337
+ when_calling: :is_not_false,
338
+ on_value: actual_value1
339
+ ) do |value, call|
340
+ assert_equal [value, *args1], call.args
341
+ end
342
+
343
+ assert_calls(
344
+ :assert_file_exists,
345
+ when_calling: :is_a_file,
346
+ on_value: actual_value1
347
+ ) do |value, call|
348
+ assert_equal [value, *args1], call.args
349
+ end
350
+
351
+ assert_calls(
352
+ :assert_not_file_exists,
353
+ when_calling: :is_not_a_file,
354
+ on_value: actual_value1
355
+ ) do |value, call|
356
+ assert_equal [value, *args1], call.args
357
+ end
358
+ end
359
+
360
+ private
361
+
362
+ def assert_calls(context_method, when_calling:, on_value:)
363
+ @last_call = nil
364
+ Assert.stub_on_call(context1, context_method, &capture_last_call_block)
365
+
366
+ unit_class.new(on_value, context: context1).public_send(*[*when_calling, *args1])
367
+ yield(on_value, @last_call)
368
+
369
+ Assert.unstub(context1, context_method)
370
+ @last_call = nil
371
+ end
372
+ end
373
+ end