@@ -435,13 +435,17 @@ public void shouldIncludeLocationAndTextInExecutionException() {
435
435
);
436
436
}
437
437
438
- private void assertStrictness (final Metafix .Strictness strictness , final String fixDef , final boolean stubLogging , final Consumer <Supplier <StreamReceiver >> out ) {
438
+ private void assertStrictness (final Metafix .Strictness strictness , final String fixDef , final boolean stubLogging , final Consumer <Metafix > in , final Consumer < Supplier <StreamReceiver >> out ) {
439
439
MetafixTestHelpers .assertFix (streamReceiver , Arrays .asList (
440
440
"add_field('before', '')" ,
441
441
fixDef ,
442
442
"add_field('after', '')"
443
443
),
444
444
i -> {
445
+ if (in != null ) {
446
+ in .accept (i );
447
+ }
448
+
445
449
final Metafix .Strictness strictnessSpy = Mockito .spy (strictness );
446
450
i .setStrictness (strictnessSpy );
447
451
@@ -469,7 +473,7 @@ private void assertStrictness(final Metafix.Strictness strictness, final String
469
473
}
470
474
471
475
private void assertStrictness (final Metafix .Strictness strictness , final boolean stubLogging , final Consumer <Supplier <StreamReceiver >> out ) {
472
- assertStrictness (strictness , "upcase('data')" , stubLogging , out );
476
+ assertStrictness (strictness , "upcase('data')" , stubLogging , null , out );
473
477
}
474
478
475
479
@ Test
@@ -524,11 +528,35 @@ public void shouldAbortProcessOnExecutionException() {
524
528
@ Test
525
529
public void shouldAbortProcessOnProcessException () {
526
530
MetafixTestHelpers .assertProcessException (IllegalArgumentException .class , "No enum constant org.metafacture.metafix.FixMethod.foo" , () ->
527
- assertStrictness (Metafix .Strictness .EXPRESSION , "foo()" , false , o -> {
531
+ assertStrictness (Metafix .Strictness .EXPRESSION , "foo()" , false , null , o -> {
528
532
})
529
533
);
530
534
}
531
535
536
+ @ Test
537
+ public void shouldOptionallySkipExpressionOnProcessException () {
538
+ assertStrictness (Metafix .Strictness .EXPRESSION , "upcase()" , true , i -> i .setStrictnessHandlesProcessExceptions (true ), o -> {
539
+ o .get ().startRecord ("1" );
540
+ o .get ().literal ("data" , "foo" );
541
+ o .get ().literal ("before" , "" );
542
+ o .get ().literal ("after" , "" );
543
+ o .get ().endRecord ();
544
+
545
+ o .get ().startRecord ("2" );
546
+ o .get ().literal ("data" , "foo" );
547
+ o .get ().literal ("data" , "bar" );
548
+ o .get ().literal ("before" , "" );
549
+ o .get ().literal ("after" , "" );
550
+ o .get ().endRecord ();
551
+
552
+ o .get ().startRecord ("3" );
553
+ o .get ().literal ("data" , "bar" );
554
+ o .get ().literal ("before" , "" );
555
+ o .get ().literal ("after" , "" );
556
+ o .get ().endRecord ();
557
+ });
558
+ }
559
+
532
560
private void assertVar (final String fixDef , final Map <String , String > vars , final Map <String , String > result ) {
533
561
assertFix (fixDef , vars , f -> result .forEach ((k , v ) -> Assertions .assertEquals (v , f .getVars ().get (k ))));
534
562
}
0 commit comments