@@ -351,16 +351,40 @@ defmodule MoxTest do
351351
352352 verify! ( )
353353 expect ( CalcMock , :add , fn x , y -> x + y end )
354+ expect ( SciCalcOnlyMock , :exponent , fn x , y -> x * y end )
354355
355- message = ~r" expected CalcMock.add/2 to be invoked once but it was invoked 0 times"
356- assert_raise Mox.VerificationError , message , & verify! / 0
356+ assert_raise ( Mox.VerificationError , & verify! / 0 )
357+ try do
358+ verify! ( )
359+ rescue
360+ error in Mox.VerificationError ->
361+ assert error . message =~ ~r" expected CalcMock.add/2 to be invoked once but it was invoked 0 times"
362+ assert error . message =~ ~r" expected SciCalcOnlyMock.exponent/2 to be invoked once but it was invoked 0 times"
363+ end
357364
358- assert CalcMock . add ( 2 , 3 ) == 5
365+ CalcMock . add ( 2 , 3 )
366+ assert_raise ( Mox.VerificationError , & verify! / 0 )
367+ try do
368+ verify! ( )
369+ rescue
370+ error in Mox.VerificationError ->
371+ refute error . message =~ ~r" expected CalcMock.add/2"
372+ assert error . message =~ ~r" expected SciCalcOnlyMock.exponent/2 to be invoked once but it was invoked 0 times"
373+ end
374+
375+ SciCalcOnlyMock . exponent ( 2 , 3 )
359376 verify! ( )
360- expect ( CalcMock , :add , fn x , y -> x + y end )
361377
362- message = ~r" expected CalcMock.add/2 to be invoked 2 times but it was invoked once"
363- assert_raise Mox.VerificationError , message , & verify! / 0
378+ # Adding another expected call makes verification fail again
379+ expect ( CalcMock , :add , fn x , y -> x + y end )
380+ assert_raise ( Mox.VerificationError , & verify! / 0 )
381+ try do
382+ verify! ( )
383+ rescue
384+ error in Mox.VerificationError ->
385+ assert error . message =~ ~r" expected CalcMock.add/2 to be invoked 2 times but it was invoked once"
386+ refute error . message =~ ~r" expected SciCalcOnlyMock.exponent/2"
387+ end
364388 end
365389
366390 test "verifies when mocks are over-called in the process in private mode" do
@@ -386,22 +410,43 @@ defmodule MoxTest do
386410
387411 verify! ( )
388412 expect ( CalcMock , :add , fn x , y -> x + y end )
413+ expect ( SciCalcOnlyMock , :exponent , fn x , y -> x * y end )
389414
390- message = ~r" expected CalcMock.add/2 to be invoked once but it was invoked 0 times"
391- assert_raise Mox.VerificationError , message , & verify! / 0
415+ assert_raise ( Mox.VerificationError , & verify! / 0 )
416+ try do
417+ verify! ( )
418+ rescue
419+ error in Mox.VerificationError ->
420+ assert error . message =~ ~r" expected CalcMock.add/2 to be invoked once but it was invoked 0 times"
421+ assert error . message =~ ~r" expected SciCalcOnlyMock.exponent/2 to be invoked once but it was invoked 0 times"
422+ end
392423
393- task =
394- Task . async ( fn ->
395- assert CalcMock . add ( 2 , 3 ) == 5
396- end )
424+ Task . async ( fn -> SciCalcOnlyMock . exponent ( 2 , 4 ) end )
425+ |> Task . await ( )
397426
398- Task . await ( task )
427+ assert_raise ( Mox.VerificationError , & verify! / 0 )
428+ try do
429+ verify! ( )
430+ rescue
431+ error in Mox.VerificationError ->
432+ assert error . message =~ ~r" expected CalcMock.add/2 to be invoked once but it was invoked 0 times"
433+ refute error . message =~ ~r" expected SciCalcOnlyMock.exponent/2"
434+ end
435+
436+ Task . async ( fn -> CalcMock . add ( 5 , 6 ) end )
437+ |> Task . await ( )
399438
400439 verify! ( )
401- expect ( CalcMock , :add , fn x , y -> x + y end )
402440
403- message = ~r" expected CalcMock.add/2 to be invoked 2 times but it was invoked once"
404- assert_raise Mox.VerificationError , message , & verify! / 0
441+ expect ( CalcMock , :add , fn x , y -> x + y end )
442+ assert_raise ( Mox.VerificationError , & verify! / 0 )
443+ try do
444+ verify! ( )
445+ rescue
446+ error in Mox.VerificationError ->
447+ assert error . message =~ ~r" expected CalcMock.add/2 to be invoked 2 times but it was invoked once"
448+ refute error . message =~ ~r" expected SciCalcOnlyMock.exponent/2"
449+ end
405450 end
406451
407452 test "verifies mocks are over-called for the current process in global mode" do
@@ -431,40 +476,57 @@ defmodule MoxTest do
431476 set_mox_private ( )
432477
433478 verify! ( CalcMock )
479+ verify! ( SciCalcOnlyMock )
434480 expect ( CalcMock , :add , fn x , y -> x + y end )
481+ expect ( SciCalcOnlyMock , :exponent , fn x , y -> x * y end )
435482
436483 message = ~r" expected CalcMock.add/2 to be invoked once but it was invoked 0 times"
437- assert_raise Mox.VerificationError , message , & verify! / 0
484+ assert_raise Mox.VerificationError , message , fn -> verify! ( CalcMock ) end
485+ message = ~r" expected SciCalcOnlyMock.exponent/2 to be invoked once but it was invoked 0 times"
486+ assert_raise Mox.VerificationError , message , fn -> verify! ( SciCalcOnlyMock ) end
438487
439- assert CalcMock . add ( 2 , 3 ) == 5
488+ CalcMock . add ( 2 , 3 )
440489 verify! ( CalcMock )
441- expect ( CalcMock , :add , fn x , y -> x + y end )
490+ message = ~r" expected SciCalcOnlyMock.exponent/2 to be invoked once but it was invoked 0 times"
491+ assert_raise Mox.VerificationError , message , fn -> verify! ( SciCalcOnlyMock ) end
442492
493+ SciCalcOnlyMock . exponent ( 2 , 3 )
494+ verify! ( CalcMock )
495+ verify! ( SciCalcOnlyMock )
496+
497+ expect ( CalcMock , :add , fn x , y -> x + y end )
443498 message = ~r" expected CalcMock.add/2 to be invoked 2 times but it was invoked once"
444- assert_raise Mox.VerificationError , message , & verify! / 0
499+ assert_raise Mox.VerificationError , message , fn -> verify! ( CalcMock ) end
500+ verify! ( SciCalcOnlyMock )
445501 end
446502
447503 test "verifies all mocks for current process in global mode" do
448504 set_mox_global ( )
449505
450506 verify! ( CalcMock )
507+ verify! ( SciCalcOnlyMock )
451508 expect ( CalcMock , :add , fn x , y -> x + y end )
509+ expect ( SciCalcOnlyMock , :exponent , fn x , y -> x * y end )
452510
453511 message = ~r" expected CalcMock.add/2 to be invoked once but it was invoked 0 times"
454- assert_raise Mox.VerificationError , message , & verify! / 0
455-
456- task =
457- Task . async ( fn ->
458- assert CalcMock . add ( 2 , 3 ) == 5
459- end )
512+ assert_raise Mox.VerificationError , message , fn -> verify! ( CalcMock ) end
513+ message = ~r" expected SciCalcOnlyMock.exponent/2 to be invoked once but it was invoked 0 times"
514+ assert_raise Mox.VerificationError , message , fn -> verify! ( SciCalcOnlyMock ) end
460515
461- Task . await ( task )
516+ Task . async ( fn -> CalcMock . add ( 2 , 3 ) end )
517+ |> Task . await ( )
518+ verify! ( CalcMock )
519+ message = ~r" expected SciCalcOnlyMock.exponent/2 to be invoked once but it was invoked 0 times"
520+ assert_raise Mox.VerificationError , message , fn -> verify! ( SciCalcOnlyMock ) end
462521
522+ SciCalcOnlyMock . exponent ( 2 , 3 )
463523 verify! ( CalcMock )
464- expect ( CalcMock , :add , fn x , y -> x + y end )
524+ verify! ( SciCalcOnlyMock )
465525
526+ expect ( CalcMock , :add , fn x , y -> x + y end )
466527 message = ~r" expected CalcMock.add/2 to be invoked 2 times but it was invoked once"
467528 assert_raise Mox.VerificationError , message , & verify! / 0
529+ verify! ( SciCalcOnlyMock )
468530 end
469531
470532 test "raises if a non-mock is given" do
0 commit comments