@@ -351,16 +351,40 @@ defmodule MoxTest do
351
351
352
352
verify! ( )
353
353
expect ( CalcMock , :add , fn x , y -> x + y end )
354
+ expect ( SciCalcOnlyMock , :exponent , fn x , y -> x * y end )
354
355
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
357
364
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 )
359
376
verify! ( )
360
- expect ( CalcMock , :add , fn x , y -> x + y end )
361
377
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
364
388
end
365
389
366
390
test "verifies when mocks are over-called in the process in private mode" do
@@ -386,22 +410,43 @@ defmodule MoxTest do
386
410
387
411
verify! ( )
388
412
expect ( CalcMock , :add , fn x , y -> x + y end )
413
+ expect ( SciCalcOnlyMock , :exponent , fn x , y -> x * y end )
389
414
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
392
423
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 ( )
397
426
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 ( )
399
438
400
439
verify! ( )
401
- expect ( CalcMock , :add , fn x , y -> x + y end )
402
440
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
405
450
end
406
451
407
452
test "verifies mocks are over-called for the current process in global mode" do
@@ -431,40 +476,57 @@ defmodule MoxTest do
431
476
set_mox_private ( )
432
477
433
478
verify! ( CalcMock )
479
+ verify! ( SciCalcOnlyMock )
434
480
expect ( CalcMock , :add , fn x , y -> x + y end )
481
+ expect ( SciCalcOnlyMock , :exponent , fn x , y -> x * y end )
435
482
436
483
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
438
487
439
- assert CalcMock . add ( 2 , 3 ) == 5
488
+ CalcMock . add ( 2 , 3 )
440
489
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
442
492
493
+ SciCalcOnlyMock . exponent ( 2 , 3 )
494
+ verify! ( CalcMock )
495
+ verify! ( SciCalcOnlyMock )
496
+
497
+ expect ( CalcMock , :add , fn x , y -> x + y end )
443
498
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 )
445
501
end
446
502
447
503
test "verifies all mocks for current process in global mode" do
448
504
set_mox_global ( )
449
505
450
506
verify! ( CalcMock )
507
+ verify! ( SciCalcOnlyMock )
451
508
expect ( CalcMock , :add , fn x , y -> x + y end )
509
+ expect ( SciCalcOnlyMock , :exponent , fn x , y -> x * y end )
452
510
453
511
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
460
515
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
462
521
522
+ SciCalcOnlyMock . exponent ( 2 , 3 )
463
523
verify! ( CalcMock )
464
- expect ( CalcMock , :add , fn x , y -> x + y end )
524
+ verify! ( SciCalcOnlyMock )
465
525
526
+ expect ( CalcMock , :add , fn x , y -> x + y end )
466
527
message = ~r" expected CalcMock.add/2 to be invoked 2 times but it was invoked once"
467
528
assert_raise Mox.VerificationError , message , & verify! / 0
529
+ verify! ( SciCalcOnlyMock )
468
530
end
469
531
470
532
test "raises if a non-mock is given" do
0 commit comments