@@ -458,13 +458,11 @@ defmodule MoxTest do
458
458
message = ~r" expected CalcMock.add/2 to be invoked once but it was invoked 0 times"
459
459
assert_raise Mox.VerificationError , message , & verify! / 0
460
460
461
- task =
462
- Task.Supervisor . async_nolink ( MoxTests.TaskSupervisor , fn ->
463
- CalcMock . add ( 2 , 3 )
464
- CalcMock . add ( 4 , 5 )
465
- end )
466
-
467
- Task . yield ( task )
461
+ Task.Supervisor . async_nolink ( MoxTests.TaskSupervisor , fn ->
462
+ CalcMock . add ( 2 , 3 )
463
+ CalcMock . add ( 4 , 5 )
464
+ end )
465
+ |> Task . yield ( )
468
466
469
467
message = ~r" expected CalcMock.add/2 to be invoked once but it was invoked 2 times"
470
468
assert_raise Mox.VerificationError , message , & verify! / 0
@@ -500,6 +498,25 @@ defmodule MoxTest do
500
498
verify! ( SciCalcOnlyMock )
501
499
end
502
500
501
+ test "verifies when mocks are over-called in the process in private mode" do
502
+ set_mox_private ( )
503
+
504
+ verify! ( CalcMock )
505
+ expect ( CalcMock , :add , 1 , fn x , y -> x + y end )
506
+ expect ( SciCalcOnlyMock , :exponent , fn x , y -> x * y end )
507
+
508
+ # Emulate mock calls within code that has aggressive error handling
509
+ try do
510
+ CalcMock . add ( 1 , 2 )
511
+ CalcMock . add ( 3 , 4 )
512
+ catch _ , _ ->
513
+ :ok
514
+ end
515
+
516
+ message = ~r" expected CalcMock.add/2 to be invoked once but it was invoked 2 times"
517
+ assert_raise Mox.VerificationError , message , fn -> verify! ( CalcMock ) end
518
+ end
519
+
503
520
test "verifies all mocks for current process in global mode" do
504
521
set_mox_global ( )
505
522
@@ -529,6 +546,26 @@ defmodule MoxTest do
529
546
verify! ( SciCalcOnlyMock )
530
547
end
531
548
549
+ test "verifies mocks are over-called for the current process in global mode" do
550
+ set_mox_global ( )
551
+
552
+ verify! ( )
553
+ expect ( CalcMock , :add , 1 , fn x , y -> x + y end )
554
+ expect ( SciCalcOnlyMock , :exponent , fn x , y -> x * y end )
555
+
556
+ message = ~r" expected CalcMock.add/2 to be invoked once but it was invoked 0 times"
557
+ assert_raise Mox.VerificationError , message , fn -> verify! ( CalcMock ) end
558
+
559
+ Task.Supervisor . async_nolink ( MoxTests.TaskSupervisor , fn ->
560
+ CalcMock . add ( 2 , 3 )
561
+ CalcMock . add ( 4 , 5 )
562
+ end )
563
+ |> Task . yield
564
+
565
+ message = ~r" expected CalcMock.add/2 to be invoked once but it was invoked 2 times"
566
+ assert_raise Mox.VerificationError , message , fn -> verify! ( CalcMock ) end
567
+ end
568
+
532
569
test "raises if a non-mock is given" do
533
570
assert_raise ArgumentError , ~r" could not load module Unknown" , fn ->
534
571
verify! ( Unknown )
0 commit comments