Class: TestMinitestMock

Inherits:
Minitest::Test show all
Defined in:
lib/rubypitaya/app-template/vendor/bundle/ruby/3.1.0/gems/minitest-5.17.0/test/minitest/test_minitest_mock.rb

Constant Summary

Constants inherited from Minitest::Test

Minitest::Test::PASSTHROUGH_EXCEPTIONS, Minitest::Test::SETUP_METHODS, Minitest::Test::TEARDOWN_METHODS

Constants included from Minitest::Assertions

Minitest::Assertions::E, Minitest::Assertions::UNDEFINED

Constants inherited from Minitest::Runnable

Minitest::Runnable::SIGNALS

Instance Attribute Summary

Attributes inherited from Minitest::Runnable

#assertions, #failures, #time

Instance Method Summary collapse

Methods inherited from Minitest::Test

#capture_exceptions, #class_name, #clean, i_suck_and_my_tests_are_order_dependent!, make_my_diffs_pretty!, #neuter_exception, #new_exception, parallelize_me!, #run, runnable_methods, #sanitize_exception, test_order, #with_empty_backtrace_filter, #with_info_handler

Methods included from Minitest::Guard

#jruby?, #maglev?, #mri?, #osx?, #rubinius?, #windows?

Methods included from Minitest::Test::LifecycleHooks

#after_setup, #after_teardown, #before_setup, #before_teardown, #teardown

Methods included from Minitest::Reportable

#class_name, #error?, #location, #passed?, #result_code, #skipped?

Methods included from Minitest::Assertions

#_synchronize, #assert, #assert_empty, #assert_equal, #assert_in_delta, #assert_in_epsilon, #assert_includes, #assert_instance_of, #assert_kind_of, #assert_match, #assert_mock, #assert_nil, #assert_operator, #assert_output, #assert_path_exists, #assert_predicate, #assert_raises, #assert_respond_to, #assert_same, #assert_send, #assert_silent, #assert_throws, #capture_io, #capture_subprocess_io, #diff, diff, diff=, #exception_details, #fail_after, #flunk, #message, #mu_pp, #mu_pp_for_diff, #pass, #refute, #refute_empty, #refute_equal, #refute_in_delta, #refute_in_epsilon, #refute_includes, #refute_instance_of, #refute_kind_of, #refute_match, #refute_nil, #refute_operator, #refute_path_exists, #refute_predicate, #refute_respond_to, #refute_same, #skip, #skip_until, #skipped?, #things_to_diff

Methods inherited from Minitest::Runnable

#failure, inherited, #initialize, #marshal_dump, #marshal_load, methods_matching, #name, #name=, on_signal, #passed?, reset, #result_code, run, #run, run_one_method, runnable_methods, runnables, #skipped?, #time_it, #whatever, with_info_handler

Constructor Details

This class inherits a constructor from Minitest::Runnable

Instance Method Details

#setupObject



12
13
14
15
# File 'lib/rubypitaya/app-template/vendor/bundle/ruby/3.1.0/gems/minitest-5.17.0/test/minitest/test_minitest_mock.rb', line 12

def setup
  @mock = Minitest::Mock.new.expect(:foo, nil)
  @mock.expect(:meaning_of_life, 42)
end

#test_allow_expectations_to_be_added_after_creationObject



38
39
40
41
# File 'lib/rubypitaya/app-template/vendor/bundle/ruby/3.1.0/gems/minitest-5.17.0/test/minitest/test_minitest_mock.rb', line 38

def test_allow_expectations_to_be_added_after_creation
  @mock.expect(:bar, true)
  assert @mock.bar
end

#test_allow_return_value_specificationObject



21
22
23
# File 'lib/rubypitaya/app-template/vendor/bundle/ruby/3.1.0/gems/minitest-5.17.0/test/minitest/test_minitest_mock.rb', line 21

def test_allow_return_value_specification
  assert_equal 42, @mock.meaning_of_life
end

#test_assign_per_mock_return_valuesObject



162
163
164
165
166
167
168
169
170
171
# File 'lib/rubypitaya/app-template/vendor/bundle/ruby/3.1.0/gems/minitest-5.17.0/test/minitest/test_minitest_mock.rb', line 162

def test_assign_per_mock_return_values
  a = Minitest::Mock.new
  b = Minitest::Mock.new

  a.expect(:foo, :a)
  b.expect(:foo, :b)

  assert_equal :a, a.foo
  assert_equal :b, b.foo
end

#test_blow_up_if_not_calledObject



25
26
27
28
29
# File 'lib/rubypitaya/app-template/vendor/bundle/ruby/3.1.0/gems/minitest-5.17.0/test/minitest/test_minitest_mock.rb', line 25

def test_blow_up_if_not_called
  @mock.foo

  util_verify_bad "expected meaning_of_life() => 42"
end

#test_blow_up_on_wrong_argumentsObject



124
125
126
127
128
129
130
131
132
133
134
135
# File 'lib/rubypitaya/app-template/vendor/bundle/ruby/3.1.0/gems/minitest-5.17.0/test/minitest/test_minitest_mock.rb', line 124

def test_blow_up_on_wrong_arguments
  @mock.foo
  @mock.meaning_of_life
  @mock.expect(:sum, 3, [1, 2])

  e = assert_raises MockExpectationError do
    @mock.sum(2, 4)
  end

  exp = "mocked method :sum called with unexpected arguments [2, 4]"
  assert_equal exp, e.message
end

#test_blow_up_on_wrong_number_of_argumentsObject



51
52
53
54
55
56
57
58
59
60
61
# File 'lib/rubypitaya/app-template/vendor/bundle/ruby/3.1.0/gems/minitest-5.17.0/test/minitest/test_minitest_mock.rb', line 51

def test_blow_up_on_wrong_number_of_arguments
  @mock.foo
  @mock.meaning_of_life
  @mock.expect(:sum, 3, [1, 2])

  e = assert_raises ArgumentError do
    @mock.sum
  end

  assert_equal "mocked method :sum expects 2 arguments, got []", e.message
end

#test_create_stub_methodObject



17
18
19
# File 'lib/rubypitaya/app-template/vendor/bundle/ruby/3.1.0/gems/minitest-5.17.0/test/minitest/test_minitest_mock.rb', line 17

def test_create_stub_method
  assert_nil @mock.foo
end

#test_delegator_calls_are_propagatedObject



261
262
263
264
265
266
267
268
# File 'lib/rubypitaya/app-template/vendor/bundle/ruby/3.1.0/gems/minitest-5.17.0/test/minitest/test_minitest_mock.rb', line 261

def test_delegator_calls_are_propagated
  delegator = Object.new
  mock = Minitest::Mock.new delegator

  refute delegator.nil?
  refute mock.nil?
  assert_mock mock
end

#test_do_not_create_stub_method_on_new_mocksObject



173
174
175
176
177
178
# File 'lib/rubypitaya/app-template/vendor/bundle/ruby/3.1.0/gems/minitest-5.17.0/test/minitest/test_minitest_mock.rb', line 173

def test_do_not_create_stub_method_on_new_mocks
  a = Minitest::Mock.new
  a.expect(:foo, :a)

  assert !Minitest::Mock.new.respond_to?(:foo)
end

#test_expect_with_non_array_argsObject



137
138
139
140
141
142
143
# File 'lib/rubypitaya/app-template/vendor/bundle/ruby/3.1.0/gems/minitest-5.17.0/test/minitest/test_minitest_mock.rb', line 137

def test_expect_with_non_array_args
  e = assert_raises ArgumentError do
    @mock.expect :blah, 3, false
  end

  assert_match "args must be an array", e.message
end

#test_expectations_can_be_satisfied_via_public_sendObject



115
116
117
118
119
120
121
122
# File 'lib/rubypitaya/app-template/vendor/bundle/ruby/3.1.0/gems/minitest-5.17.0/test/minitest/test_minitest_mock.rb', line 115

def test_expectations_can_be_satisfied_via_public_send
  skip "Doesn't run on 1.8" if RUBY_VERSION < "1.9"

  @mock.public_send :foo
  @mock.public_send :meaning_of_life

  assert_mock @mock
end

#test_expectations_can_be_satisfied_via_sendObject



108
109
110
111
112
113
# File 'lib/rubypitaya/app-template/vendor/bundle/ruby/3.1.0/gems/minitest-5.17.0/test/minitest/test_minitest_mock.rb', line 108

def test_expectations_can_be_satisfied_via_send
  @mock.send :foo
  @mock.send :meaning_of_life

  assert_mock @mock
end

#test_handles_kwargs_in_error_messageObject



270
271
272
273
274
275
276
277
278
279
280
281
282
283
# File 'lib/rubypitaya/app-template/vendor/bundle/ruby/3.1.0/gems/minitest-5.17.0/test/minitest/test_minitest_mock.rb', line 270

def test_handles_kwargs_in_error_message
  mock = Minitest::Mock.new

  mock.expect :foo, nil, [], kw: true
  mock.expect :foo, nil, [], kw: false

  mock.foo kw: true

  e = assert_raises(MockExpectationError) { mock.verify }

  exp = "expected foo(:kw=>false) => nil, got [foo(:kw=>true) => nil]"

  assert_equal exp, e.message
end

#test_method_missing_emptyObject



208
209
210
211
212
213
214
215
216
217
218
219
220
# File 'lib/rubypitaya/app-template/vendor/bundle/ruby/3.1.0/gems/minitest-5.17.0/test/minitest/test_minitest_mock.rb', line 208

def test_method_missing_empty
  mock = Minitest::Mock.new

  mock.expect :a, nil

  mock.a

  e = assert_raises MockExpectationError do
    mock.a
  end

  assert_equal "No more expects available for :a: [] {}", e.message
end

#test_mock_allow_all_kwargs__old_style_envObject



381
382
383
384
385
386
387
# File 'lib/rubypitaya/app-template/vendor/bundle/ruby/3.1.0/gems/minitest-5.17.0/test/minitest/test_minitest_mock.rb', line 381

def test_mock_allow_all_kwargs__old_style_env
  with_kwargs_env do
    mock = Minitest::Mock.new
    mock.expect :foo, true, [Hash]
    assert_equal true, mock.foo(bar: 42)
  end
end

#test_mock_allow_all_kwargs__old_style_env__rewriteObject



389
390
391
392
393
394
395
# File 'lib/rubypitaya/app-template/vendor/bundle/ruby/3.1.0/gems/minitest-5.17.0/test/minitest/test_minitest_mock.rb', line 389

def test_mock_allow_all_kwargs__old_style_env__rewrite
  with_kwargs_env do
    mock = Minitest::Mock.new
    mock.expect :foo, true, [], bar: Integer
    assert_equal true, mock.foo(bar: 42)
  end
end

#test_mock_args_does_not_raiseObject



72
73
74
75
76
77
78
79
# File 'lib/rubypitaya/app-template/vendor/bundle/ruby/3.1.0/gems/minitest-5.17.0/test/minitest/test_minitest_mock.rb', line 72

def test_mock_args_does_not_raise
  arg = Minitest::Mock.new
  mock = Minitest::Mock.new
  mock.expect(:foo, nil, [arg])
  mock.foo(arg)

  assert_mock mock
end

#test_mock_block_is_passed_function_blockObject



485
486
487
488
489
490
491
492
493
494
# File 'lib/rubypitaya/app-template/vendor/bundle/ruby/3.1.0/gems/minitest-5.17.0/test/minitest/test_minitest_mock.rb', line 485

def test_mock_block_is_passed_function_block
  mock = Minitest::Mock.new
  block = proc { "bar" }
  mock.expect :foo, nil do |arg, &blk|
    arg == "foo" &&
    blk == block
  end
  mock.foo "foo", &block
  assert_mock mock
end

#test_mock_block_is_passed_function_paramsObject



296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
# File 'lib/rubypitaya/app-template/vendor/bundle/ruby/3.1.0/gems/minitest-5.17.0/test/minitest/test_minitest_mock.rb', line 296

def test_mock_block_is_passed_function_params
  arg1, arg2, arg3 = :bar, [1, 2, 3], { :a => "a" }
  mock = Minitest::Mock.new
  mock.expect :foo, nil do |a1, a2, a3|
    a1 == arg1 && a2 == arg2 && a3 == arg3
  end

  assert_silent do
    if RUBY_VERSION > "3" then
      mock.foo arg1, arg2, arg3
    else
      mock.foo arg1, arg2, **arg3 # oddity just for ruby 2.7
    end
  end

  assert_mock mock
end

#test_mock_block_is_passed_keyword_args__argsObject



371
372
373
374
375
376
377
378
379
# File 'lib/rubypitaya/app-template/vendor/bundle/ruby/3.1.0/gems/minitest-5.17.0/test/minitest/test_minitest_mock.rb', line 371

def test_mock_block_is_passed_keyword_args__args
  arg1, arg2, arg3 = :bar, [1, 2, 3], { :a => "a" }
  mock = Minitest::Mock.new
  mock.expect :foo, nil, k1: arg1, k2: arg2, k3: arg3

  mock.foo(k1: arg1, k2: arg2, k3: arg3)

  assert_mock mock
end

#test_mock_block_is_passed_keyword_args__args__old_style_badObject



397
398
399
400
401
402
403
404
405
406
407
# File 'lib/rubypitaya/app-template/vendor/bundle/ruby/3.1.0/gems/minitest-5.17.0/test/minitest/test_minitest_mock.rb', line 397

def test_mock_block_is_passed_keyword_args__args__old_style_bad
  arg1, arg2, arg3 = :bar, [1, 2, 3], { :a => "a" }
  mock = Minitest::Mock.new
  mock.expect :foo, nil, [{k1: arg1, k2: arg2, k3: arg3}]

  e = assert_raises ArgumentError do
    mock.foo(k1: arg1, k2: arg2, k3: arg3)
  end

  assert_equal "mocked method :foo expects 1 arguments, got []", e.message
end

#test_mock_block_is_passed_keyword_args__args__old_style_bothObject



421
422
423
424
425
426
427
428
429
430
431
432
433
434
# File 'lib/rubypitaya/app-template/vendor/bundle/ruby/3.1.0/gems/minitest-5.17.0/test/minitest/test_minitest_mock.rb', line 421

def test_mock_block_is_passed_keyword_args__args__old_style_both
  with_kwargs_env do
    arg1, arg2, arg3 = :bar, [1, 2, 3], { :a => "a" }
    mock = Minitest::Mock.new

    assert_output nil, /Using MT_KWARGS_HAC. yet passing kwargs/ do
      mock.expect :foo, nil, [{}], k1: arg1, k2: arg2, k3: arg3
    end

    mock.foo({}, k1: arg1, k2: arg2, k3: arg3)

    assert_mock mock
  end
end

#test_mock_block_is_passed_keyword_args__args__old_style_envObject



409
410
411
412
413
414
415
416
417
418
419
# File 'lib/rubypitaya/app-template/vendor/bundle/ruby/3.1.0/gems/minitest-5.17.0/test/minitest/test_minitest_mock.rb', line 409

def test_mock_block_is_passed_keyword_args__args__old_style_env
  with_kwargs_env do
    arg1, arg2, arg3 = :bar, [1, 2, 3], { :a => "a" }
    mock = Minitest::Mock.new
    mock.expect :foo, nil, [{k1: arg1, k2: arg2, k3: arg3}]

    mock.foo(k1: arg1, k2: arg2, k3: arg3)

    assert_mock mock
  end
end

#test_mock_block_is_passed_keyword_args__args_bad_extraObject



448
449
450
451
452
453
454
455
456
457
458
# File 'lib/rubypitaya/app-template/vendor/bundle/ruby/3.1.0/gems/minitest-5.17.0/test/minitest/test_minitest_mock.rb', line 448

def test_mock_block_is_passed_keyword_args__args_bad_extra
  arg1, arg2, arg3 = :bar, [1, 2, 3], { :a => "a" }
  mock = Minitest::Mock.new
  mock.expect :foo, nil, k1: arg1, k2: arg2

  e = assert_raises ArgumentError do
    mock.foo(k1: arg1, k2: arg2, k3: arg3)
  end

  assert_equal "mocked method :foo expects 2 keyword arguments, got %p" % {k1: arg1, k2: arg2, k3: arg3}, e.message
end

#test_mock_block_is_passed_keyword_args__args_bad_keyObject



460
461
462
463
464
465
466
467
468
469
470
471
# File 'lib/rubypitaya/app-template/vendor/bundle/ruby/3.1.0/gems/minitest-5.17.0/test/minitest/test_minitest_mock.rb', line 460

def test_mock_block_is_passed_keyword_args__args_bad_key
  arg1, arg2, arg3 = :bar, [1, 2, 3], { :a => "a" }
  mock = Minitest::Mock.new
  mock.expect :foo, nil, k1: arg1, k2: arg2, k3: arg3

  e = assert_raises MockExpectationError do
    mock.foo(k1: arg1, k2: arg2, BAD: arg3)
  end

  assert_includes e.message, "unexpected keywords [:k1, :k2, :k3]"
  assert_includes e.message, "vs [:k1, :k2, :BAD]"
end

#test_mock_block_is_passed_keyword_args__args_bad_missingObject



436
437
438
439
440
441
442
443
444
445
446
# File 'lib/rubypitaya/app-template/vendor/bundle/ruby/3.1.0/gems/minitest-5.17.0/test/minitest/test_minitest_mock.rb', line 436

def test_mock_block_is_passed_keyword_args__args_bad_missing
  arg1, arg2, arg3 = :bar, [1, 2, 3], { :a => "a" }
  mock = Minitest::Mock.new
  mock.expect :foo, nil, k1: arg1, k2: arg2, k3: arg3

  e = assert_raises ArgumentError do
    mock.foo(k1: arg1, k2: arg2)
  end

  assert_equal "mocked method :foo expects 3 keyword arguments, got %p" % {k1: arg1, k2: arg2}, e.message
end

#test_mock_block_is_passed_keyword_args__args_bad_valObject



473
474
475
476
477
478
479
480
481
482
483
# File 'lib/rubypitaya/app-template/vendor/bundle/ruby/3.1.0/gems/minitest-5.17.0/test/minitest/test_minitest_mock.rb', line 473

def test_mock_block_is_passed_keyword_args__args_bad_val
  arg1, arg2, arg3 = :bar, [1, 2, 3], { :a => "a" }
  mock = Minitest::Mock.new
  mock.expect :foo, nil, k1: arg1, k2: arg2, k3: arg3

  e = assert_raises MockExpectationError do
    mock.foo(k1: arg1, k2: :BAD!, k3: arg3)
  end

  assert_match(/unexpected keyword arguments.* vs .*:k2=>:BAD!/, e.message)
end

#test_mock_block_is_passed_keyword_args__blockObject



314
315
316
317
318
319
320
321
322
323
324
# File 'lib/rubypitaya/app-template/vendor/bundle/ruby/3.1.0/gems/minitest-5.17.0/test/minitest/test_minitest_mock.rb', line 314

def test_mock_block_is_passed_keyword_args__block
  arg1, arg2, arg3 = :bar, [1, 2, 3], { :a => "a" }
  mock = Minitest::Mock.new
  mock.expect :foo, nil do |k1:, k2:, k3:|
    k1 == arg1 && k2 == arg2 && k3 == arg3
  end

  mock.foo(k1: arg1, k2: arg2, k3: arg3)

  assert_mock mock
end

#test_mock_block_is_passed_keyword_args__block_bad_extraObject



341
342
343
344
345
346
347
348
349
350
351
352
353
354
# File 'lib/rubypitaya/app-template/vendor/bundle/ruby/3.1.0/gems/minitest-5.17.0/test/minitest/test_minitest_mock.rb', line 341

def test_mock_block_is_passed_keyword_args__block_bad_extra
  arg1, arg2, arg3 = :bar, [1, 2, 3], { :a => "a" }
  mock = Minitest::Mock.new
  mock.expect :foo, nil do |k1:, k2:|
    k1 == arg1 && k2 == arg2 && k3 == arg3
  end

  e = assert_raises ArgumentError do
    mock.foo(k1: arg1, k2: arg2, k3: arg3)
  end

  # basically testing ruby ... need ? for ruby < 2.7 :(
  assert_match(/unknown keyword: :?k3/, e.message)
end

#test_mock_block_is_passed_keyword_args__block_bad_missingObject



326
327
328
329
330
331
332
333
334
335
336
337
338
339
# File 'lib/rubypitaya/app-template/vendor/bundle/ruby/3.1.0/gems/minitest-5.17.0/test/minitest/test_minitest_mock.rb', line 326

def test_mock_block_is_passed_keyword_args__block_bad_missing
  arg1, arg2, arg3 = :bar, [1, 2, 3], { :a => "a" }
  mock = Minitest::Mock.new
  mock.expect :foo, nil do |k1:, k2:, k3:|
    k1 == arg1 && k2 == arg2 && k3 == arg3
  end

  e = assert_raises ArgumentError do
    mock.foo(k1: arg1, k2: arg2)
  end

  # basically testing ruby ... need ? for ruby < 2.7 :(
  assert_match(/missing keyword: :?k3/, e.message)
end

#test_mock_block_is_passed_keyword_args__block_bad_valueObject



356
357
358
359
360
361
362
363
364
365
366
367
368
369
# File 'lib/rubypitaya/app-template/vendor/bundle/ruby/3.1.0/gems/minitest-5.17.0/test/minitest/test_minitest_mock.rb', line 356

def test_mock_block_is_passed_keyword_args__block_bad_value
  arg1, arg2, arg3 = :bar, [1, 2, 3], { :a => "a" }
  mock = Minitest::Mock.new
  mock.expect :foo, nil do |k1:, k2:, k3:|
    k1 == arg1 && k2 == arg2 && k3 == arg3
  end

  e = assert_raises MockExpectationError do
    mock.foo(k1: arg1, k2: arg2, k3: :BAD!)
  end

  exp = "mocked method :foo failed block w/ [] {:k1=>:bar, :k2=>[1, 2, 3], :k3=>:BAD!}"
  assert_equal exp, e.message
end

#test_mock_block_raises_if_args_passedObject



515
516
517
518
519
520
521
522
523
524
525
526
527
# File 'lib/rubypitaya/app-template/vendor/bundle/ruby/3.1.0/gems/minitest-5.17.0/test/minitest/test_minitest_mock.rb', line 515

def test_mock_block_raises_if_args_passed
  mock = Minitest::Mock.new

  e = assert_raises(ArgumentError) do
    mock.expect :foo, nil, [:a, :b, :c] do
      true
    end
  end

  exp = "args ignored when block given"

  assert_match exp, e.message
end

#test_mock_block_raises_if_kwargs_passedObject



529
530
531
532
533
534
535
536
537
538
539
540
541
# File 'lib/rubypitaya/app-template/vendor/bundle/ruby/3.1.0/gems/minitest-5.17.0/test/minitest/test_minitest_mock.rb', line 529

def test_mock_block_raises_if_kwargs_passed
  mock = Minitest::Mock.new

  e = assert_raises(ArgumentError) do
    mock.expect :foo, nil, kwargs:1 do
      true
    end
  end

  exp = "kwargs ignored when block given"

  assert_match exp, e.message
end

#test_mock_called_via___send__Object



570
571
572
573
574
575
576
# File 'lib/rubypitaya/app-template/vendor/bundle/ruby/3.1.0/gems/minitest-5.17.0/test/minitest/test_minitest_mock.rb', line 570

def test_mock_called_via___send__
  mock = Minitest::Mock.new
  mock.expect(:foo, true)

  mock.__send__ :foo
  assert_mock mock
end

#test_mock_called_via_sendObject



562
563
564
565
566
567
568
# File 'lib/rubypitaya/app-template/vendor/bundle/ruby/3.1.0/gems/minitest-5.17.0/test/minitest/test_minitest_mock.rb', line 562

def test_mock_called_via_send
  mock = Minitest::Mock.new
  mock.expect(:foo, true)

  mock.send :foo
  assert_mock mock
end

#test_mock_called_via_send_with_argsObject



578
579
580
581
582
583
584
# File 'lib/rubypitaya/app-template/vendor/bundle/ruby/3.1.0/gems/minitest-5.17.0/test/minitest/test_minitest_mock.rb', line 578

def test_mock_called_via_send_with_args
  mock = Minitest::Mock.new
  mock.expect(:foo, true, [1, 2, 3])

  mock.send(:foo, 1, 2, 3)
  assert_mock mock
end

#test_mock_forward_keyword_argumentsObject



496
497
498
499
500
501
# File 'lib/rubypitaya/app-template/vendor/bundle/ruby/3.1.0/gems/minitest-5.17.0/test/minitest/test_minitest_mock.rb', line 496

def test_mock_forward_keyword_arguments
  mock = Minitest::Mock.new
  mock.expect(:foo, nil) { |bar:| bar == 'bar' }
  mock.foo(bar: 'bar')
  assert_mock mock
end

#test_mock_is_a_blank_slateObject



180
181
182
183
184
185
186
# File 'lib/rubypitaya/app-template/vendor/bundle/ruby/3.1.0/gems/minitest-5.17.0/test/minitest/test_minitest_mock.rb', line 180

def test_mock_is_a_blank_slate
  @mock.expect :kind_of?, true, [String]
  @mock.expect :==, true, [1]

  assert @mock.kind_of?(String), "didn't mock :kind_of\?"
  assert @mock == 1, "didn't mock :=="
end

#test_mock_returns_retval_when_called_with_blockObject



543
544
545
546
547
548
549
550
551
552
# File 'lib/rubypitaya/app-template/vendor/bundle/ruby/3.1.0/gems/minitest-5.17.0/test/minitest/test_minitest_mock.rb', line 543

def test_mock_returns_retval_when_called_with_block
  mock = Minitest::Mock.new
  mock.expect(:foo, 32) do
    true
  end

  rs = mock.foo

  assert_equal rs, 32
end

#test_no_method_error_on_unexpected_methodsObject



152
153
154
155
156
157
158
159
160
# File 'lib/rubypitaya/app-template/vendor/bundle/ruby/3.1.0/gems/minitest-5.17.0/test/minitest/test_minitest_mock.rb', line 152

def test_no_method_error_on_unexpected_methods
  e = assert_raises NoMethodError do
    @mock.bar
  end

  expected = "unmocked method :bar, expected one of [:foo, :meaning_of_life]"

  assert_match expected, e.message
end

#test_not_blow_up_if_everything_calledObject



31
32
33
34
35
36
# File 'lib/rubypitaya/app-template/vendor/bundle/ruby/3.1.0/gems/minitest-5.17.0/test/minitest/test_minitest_mock.rb', line 31

def test_not_blow_up_if_everything_called
  @mock.foo
  @mock.meaning_of_life

  assert_mock @mock
end

#test_not_verify_if_new_expected_method_is_not_calledObject



43
44
45
46
47
48
49
# File 'lib/rubypitaya/app-template/vendor/bundle/ruby/3.1.0/gems/minitest-5.17.0/test/minitest/test_minitest_mock.rb', line 43

def test_not_verify_if_new_expected_method_is_not_called
  @mock.foo
  @mock.meaning_of_life
  @mock.expect(:bar, true)

  util_verify_bad "expected bar() => true"
end

#test_respond_appropriatelyObject



145
146
147
148
149
150
# File 'lib/rubypitaya/app-template/vendor/bundle/ruby/3.1.0/gems/minitest-5.17.0/test/minitest/test_minitest_mock.rb', line 145

def test_respond_appropriately
  assert @mock.respond_to?(:foo)
  assert @mock.respond_to?(:foo, true)
  assert @mock.respond_to?("foo")
  assert !@mock.respond_to?(:bar)
end

#test_return_mock_does_not_raiseObject



63
64
65
66
67
68
69
70
# File 'lib/rubypitaya/app-template/vendor/bundle/ruby/3.1.0/gems/minitest-5.17.0/test/minitest/test_minitest_mock.rb', line 63

def test_return_mock_does_not_raise
  retval = Minitest::Mock.new
  mock = Minitest::Mock.new
  mock.expect(:foo, retval)
  mock.foo

  assert_mock mock
end

#test_same_method_expects_are_verified_when_all_calledObject



222
223
224
225
226
227
228
229
230
231
# File 'lib/rubypitaya/app-template/vendor/bundle/ruby/3.1.0/gems/minitest-5.17.0/test/minitest/test_minitest_mock.rb', line 222

def test_same_method_expects_are_verified_when_all_called
  mock = Minitest::Mock.new
  mock.expect :foo, nil, [:bar]
  mock.expect :foo, nil, [:baz]

  mock.foo :bar
  mock.foo :baz

  assert_mock mock
end

#test_same_method_expects_blow_up_when_not_all_calledObject



233
234
235
236
237
238
239
240
241
242
243
244
245
# File 'lib/rubypitaya/app-template/vendor/bundle/ruby/3.1.0/gems/minitest-5.17.0/test/minitest/test_minitest_mock.rb', line 233

def test_same_method_expects_blow_up_when_not_all_called
  mock = Minitest::Mock.new
  mock.expect :foo, nil, [:bar]
  mock.expect :foo, nil, [:baz]

  mock.foo :bar

  e = assert_raises(MockExpectationError) { mock.verify }

  exp = "expected foo(:baz) => nil, got [foo(:bar) => nil]"

  assert_equal exp, e.message
end

#test_same_method_expects_with_same_args_blow_up_when_not_all_calledObject



247
248
249
250
251
252
253
254
255
256
257
258
259
# File 'lib/rubypitaya/app-template/vendor/bundle/ruby/3.1.0/gems/minitest-5.17.0/test/minitest/test_minitest_mock.rb', line 247

def test_same_method_expects_with_same_args_blow_up_when_not_all_called
  mock = Minitest::Mock.new
  mock.expect :foo, nil, [:bar]
  mock.expect :foo, nil, [:bar]

  mock.foo :bar

  e = assert_raises(MockExpectationError) { mock.verify }

  exp = "expected foo(:bar) => nil, got [foo(:bar) => nil]"

  assert_equal exp, e.message
end

#test_set_expectation_on_special_methodsObject



81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
# File 'lib/rubypitaya/app-template/vendor/bundle/ruby/3.1.0/gems/minitest-5.17.0/test/minitest/test_minitest_mock.rb', line 81

def test_set_expectation_on_special_methods
  mock = Minitest::Mock.new

  mock.expect :object_id, "received object_id"
  assert_equal "received object_id", mock.object_id

  mock.expect :respond_to_missing?, "received respond_to_missing?"
  assert_equal "received respond_to_missing?", mock.respond_to_missing?

  mock.expect :===, "received ==="
  assert_equal "received ===", mock.===

  mock.expect :inspect, "received inspect"
  assert_equal "received inspect", mock.inspect

  mock.expect :to_s, "received to_s"
  assert_equal "received to_s", mock.to_s

  mock.expect :public_send, "received public_send"
  assert_equal "received public_send", mock.public_send

  mock.expect :send, "received send"
  assert_equal "received send", mock.send

  assert_mock mock
end

#test_verify_allows_called_args_to_be_loosely_specifiedObject



188
189
190
191
192
193
194
# File 'lib/rubypitaya/app-template/vendor/bundle/ruby/3.1.0/gems/minitest-5.17.0/test/minitest/test_minitest_mock.rb', line 188

def test_verify_allows_called_args_to_be_loosely_specified
  mock = Minitest::Mock.new
  mock.expect :loose_expectation, true, [Integer]
  mock.loose_expectation 1

  assert_mock mock
end

#test_verify_fails_when_mock_block_returns_falseObject



503
504
505
506
507
508
509
510
511
512
513
# File 'lib/rubypitaya/app-template/vendor/bundle/ruby/3.1.0/gems/minitest-5.17.0/test/minitest/test_minitest_mock.rb', line 503

def test_verify_fails_when_mock_block_returns_false
  mock = Minitest::Mock.new
  mock.expect :foo, nil do
    false
  end

  e = assert_raises(MockExpectationError) { mock.foo }
  exp = "mocked method :foo failed block w/ [] {}"

  assert_equal exp, e.message
end

#test_verify_passes_when_mock_block_returns_trueObject



285
286
287
288
289
290
291
292
293
294
# File 'lib/rubypitaya/app-template/vendor/bundle/ruby/3.1.0/gems/minitest-5.17.0/test/minitest/test_minitest_mock.rb', line 285

def test_verify_passes_when_mock_block_returns_true
  mock = Minitest::Mock.new
  mock.expect :foo, nil do
    true
  end

  mock.foo

  assert_mock mock
end

#test_verify_raises_with_strict_argsObject



196
197
198
199
200
201
202
203
204
205
206
# File 'lib/rubypitaya/app-template/vendor/bundle/ruby/3.1.0/gems/minitest-5.17.0/test/minitest/test_minitest_mock.rb', line 196

def test_verify_raises_with_strict_args
  mock = Minitest::Mock.new
  mock.expect :strict_expectation, true, [2]

  e = assert_raises MockExpectationError do
    mock.strict_expectation 1
  end

  exp = "mocked method :strict_expectation called with unexpected arguments [1]"
  assert_equal exp, e.message
end

#util_verify_bad(exp) ⇒ Object



554
555
556
557
558
559
560
# File 'lib/rubypitaya/app-template/vendor/bundle/ruby/3.1.0/gems/minitest-5.17.0/test/minitest/test_minitest_mock.rb', line 554

def util_verify_bad exp
  e = assert_raises MockExpectationError do
    @mock.verify
  end

  assert_equal exp, e.message
end