@@ -413,13 +413,11 @@ defmodule MoxTest do
413
413
message = ~r" expected CalcMock.add/2 to be invoked once but it was invoked 0 times"
414
414
assert_raise Mox.VerificationError , message , & verify! / 0
415
415
416
- task =
417
- Task.Supervisor . async_nolink ( MoxTests.TaskSupervisor , fn ->
418
- CalcMock . add ( 2 , 3 )
419
- CalcMock . add ( 4 , 5 )
420
- end )
421
-
422
- Task . yield ( task )
416
+ Task.Supervisor . async_nolink ( MoxTests.TaskSupervisor , fn ->
417
+ CalcMock . add ( 2 , 3 )
418
+ CalcMock . add ( 4 , 5 )
419
+ end )
420
+ |> Task . yield ( )
423
421
424
422
message = ~r" expected CalcMock.add/2 to be invoked once but it was invoked 2 times"
425
423
assert_raise Mox.VerificationError , message , & verify! / 0
@@ -444,6 +442,25 @@ defmodule MoxTest do
444
442
assert_raise Mox.VerificationError , message , & verify! / 0
445
443
end
446
444
445
+ test "verifies when mocks are over-called in the process in private mode" do
446
+ set_mox_private ( )
447
+
448
+ verify! ( CalcMock )
449
+ expect ( CalcMock , :add , 1 , fn x , y -> x + y end )
450
+ expect ( SciCalcOnlyMock , :exponent , fn x , y -> x * y end )
451
+
452
+ # Emulate mock calls within code that has aggressive error handling
453
+ try do
454
+ CalcMock . add ( 1 , 2 )
455
+ CalcMock . add ( 3 , 4 )
456
+ catch _ , _ ->
457
+ :ok
458
+ end
459
+
460
+ message = ~r" expected CalcMock.add/2 to be invoked once but it was invoked 2 times"
461
+ assert_raise Mox.VerificationError , message , fn -> verify! ( CalcMock ) end
462
+ end
463
+
447
464
test "verifies all mocks for current process in global mode" do
448
465
set_mox_global ( )
449
466
@@ -467,6 +484,26 @@ defmodule MoxTest do
467
484
assert_raise Mox.VerificationError , message , & verify! / 0
468
485
end
469
486
487
+ test "verifies mocks are over-called for the current process in global mode" do
488
+ set_mox_global ( )
489
+
490
+ verify! ( )
491
+ expect ( CalcMock , :add , 1 , fn x , y -> x + y end )
492
+ expect ( SciCalcOnlyMock , :exponent , fn x , y -> x * y end )
493
+
494
+ message = ~r" expected CalcMock.add/2 to be invoked once but it was invoked 0 times"
495
+ assert_raise Mox.VerificationError , message , fn -> verify! ( CalcMock ) end
496
+
497
+ Task.Supervisor . async_nolink ( MoxTests.TaskSupervisor , fn ->
498
+ CalcMock . add ( 2 , 3 )
499
+ CalcMock . add ( 4 , 5 )
500
+ end )
501
+ |> Task . yield
502
+
503
+ message = ~r" expected CalcMock.add/2 to be invoked once but it was invoked 2 times"
504
+ assert_raise Mox.VerificationError , message , fn -> verify! ( CalcMock ) end
505
+ end
506
+
470
507
test "raises if a non-mock is given" do
471
508
assert_raise ArgumentError , ~r" could not load module Unknown" , fn ->
472
509
verify! ( Unknown )
0 commit comments