55import  java .util .Optional ;
66import  java .util .concurrent .TimeUnit ;
77import  java .util .function .BiFunction ;
8+ import  java .util .function .Supplier ;
89
910import  org .junit .jupiter .api .BeforeEach ;
1011import  org .junit .jupiter .api .Test ;
1112import  org .mockito .ArgumentCaptor ;
12- import  org .mockito .ArgumentMatcher ;
1313import  org .mockito .ArgumentMatchers ;
1414import  org .mockito .stubbing .Answer ;
1515
2828import  io .javaoperatorsdk .operator .api .reconciler .Cleaner ;
2929import  io .javaoperatorsdk .operator .api .reconciler .Context ;
3030import  io .javaoperatorsdk .operator .api .reconciler .DeleteControl ;
31- import  io .javaoperatorsdk .operator .api .reconciler .ErrorStatusHandler ;
3231import  io .javaoperatorsdk .operator .api .reconciler .ErrorStatusUpdateControl ;
3332import  io .javaoperatorsdk .operator .api .reconciler .Reconciler ;
3433import  io .javaoperatorsdk .operator .api .reconciler .RetryInfo ;
@@ -479,7 +478,7 @@ void callErrorStatusHandlerIfImplemented() {
479478    reconciler .reconcile  = (r , c ) -> {
480479      throw  new  IllegalStateException ("Error Status Test" );
481480    };
482-     reconciler .errorHandler  = (r ,  ri ,  e ) -> {
481+     reconciler .errorHandler  = () -> {
483482      testCustomResource .getStatus ().setConfigMapStatus (ERROR_MESSAGE );
484483      return  ErrorStatusUpdateControl .patchStatus (testCustomResource );
485484    };
@@ -499,7 +498,7 @@ public boolean isLastAttempt() {
499498            }).setResource (testCustomResource ));
500499
501500    verify (customResourceFacade , times (1 )).patchStatus (eq (testCustomResource ), any ());
502-     verify ((( ErrorStatusHandler )  reconciler ) , times (1 )).updateErrorStatus (eq (testCustomResource ),
501+     verify (reconciler , times (1 )).updateErrorStatus (eq (testCustomResource ),
503502        any (), any ());
504503  }
505504
@@ -510,15 +509,15 @@ void callErrorStatusHandlerEvenOnFirstError() {
510509    reconciler .reconcile  = (r , c ) -> {
511510      throw  new  IllegalStateException ("Error Status Test" );
512511    };
513-     reconciler .errorHandler  = (r ,  ri ,  e ) -> {
512+     reconciler .errorHandler  = () -> {
514513      testCustomResource .getStatus ().setConfigMapStatus (ERROR_MESSAGE );
515514      return  ErrorStatusUpdateControl .patchStatus (testCustomResource );
516515    };
517516
518517    var  postExecControl  = reconciliationDispatcher .handleExecution (
519518        new  ExecutionScope (null ).setResource (testCustomResource ));
520519    verify (customResourceFacade , times (1 )).patchStatus (eq (testCustomResource ), any ());
521-     verify ((( ErrorStatusHandler )  reconciler ) , times (1 )).updateErrorStatus (eq (testCustomResource ),
520+     verify (reconciler , times (1 )).updateErrorStatus (eq (testCustomResource ),
522521        any (), any ());
523522    assertThat (postExecControl .exceptionDuringExecution ()).isTrue ();
524523  }
@@ -529,15 +528,15 @@ void errorHandlerCanInstructNoRetryWithUpdate() {
529528    reconciler .reconcile  = (r , c ) -> {
530529      throw  new  IllegalStateException ("Error Status Test" );
531530    };
532-     reconciler .errorHandler  = (r ,  ri ,  e ) -> {
531+     reconciler .errorHandler  = () -> {
533532      testCustomResource .getStatus ().setConfigMapStatus (ERROR_MESSAGE );
534533      return  ErrorStatusUpdateControl .patchStatus (testCustomResource ).withNoRetry ();
535534    };
536535
537536    var  postExecControl  = reconciliationDispatcher .handleExecution (
538537        new  ExecutionScope (null ).setResource (testCustomResource ));
539538
540-     verify ((( ErrorStatusHandler )  reconciler ) , times (1 )).updateErrorStatus (eq (testCustomResource ),
539+     verify (reconciler , times (1 )).updateErrorStatus (eq (testCustomResource ),
541540        any (), any ());
542541    verify (customResourceFacade , times (1 )).patchStatus (eq (testCustomResource ), any ());
543542    assertThat (postExecControl .exceptionDuringExecution ()).isFalse ();
@@ -549,15 +548,15 @@ void errorHandlerCanInstructNoRetryNoUpdate() {
549548    reconciler .reconcile  = (r , c ) -> {
550549      throw  new  IllegalStateException ("Error Status Test" );
551550    };
552-     reconciler .errorHandler  = (r ,  ri ,  e ) -> {
551+     reconciler .errorHandler  = () -> {
553552      testCustomResource .getStatus ().setConfigMapStatus (ERROR_MESSAGE );
554553      return  ErrorStatusUpdateControl .<TestCustomResource >noStatusUpdate ().withNoRetry ();
555554    };
556555
557556    var  postExecControl  = reconciliationDispatcher .handleExecution (
558557        new  ExecutionScope (null ).setResource (testCustomResource ));
559558
560-     verify ((( ErrorStatusHandler )  reconciler ) , times (1 )).updateErrorStatus (eq (testCustomResource ),
559+     verify (reconciler , times (1 )).updateErrorStatus (eq (testCustomResource ),
561560        any (), any ());
562561    verify (customResourceFacade , times (0 )).patchStatus (eq (testCustomResource ), any ());
563562    assertThat (postExecControl .exceptionDuringExecution ()).isFalse ();
@@ -570,13 +569,13 @@ void errorStatusHandlerCanPatchResource() {
570569      throw  new  IllegalStateException ("Error Status Test" );
571570    };
572571    reconciler .errorHandler  =
573-         (r ,  ri ,  e ) -> ErrorStatusUpdateControl .patchStatus (testCustomResource );
572+         () -> ErrorStatusUpdateControl .patchStatus (testCustomResource );
574573
575574    reconciliationDispatcher .handleExecution (
576575        new  ExecutionScope (null ).setResource (testCustomResource ));
577576
578577    verify (customResourceFacade , times (1 )).patchStatus (eq (testCustomResource ), any ());
579-     verify ((( ErrorStatusHandler )  reconciler ) , times (1 )).updateErrorStatus (eq (testCustomResource ),
578+     verify (reconciler , times (1 )).updateErrorStatus (eq (testCustomResource ),
580579        any (), any ());
581580  }
582581
@@ -592,16 +591,14 @@ void ifRetryLimitedToZeroMaxAttemptsErrorHandlerGetsCorrectLastAttempt() {
592591    reconciler .reconcile  = (r , c ) -> {
593592      throw  new  IllegalStateException ("Error Status Test" );
594593    };
595-     var  mockErrorHandler  = mock (ErrorStatusHandler .class );
596-     when (mockErrorHandler .updateErrorStatus (any (), any (), any ()))
597-         .thenReturn (ErrorStatusUpdateControl .noStatusUpdate ());
598-     reconciler .errorHandler  = mockErrorHandler ;
594+ 
595+     reconciler .errorHandler  = () -> ErrorStatusUpdateControl .noStatusUpdate ();
599596
600597    reconciliationDispatcher .handleExecution (
601598        new  ExecutionScope (null ).setResource (testCustomResource ));
602599
603-     verify (mockErrorHandler , times (1 )).updateErrorStatus (any (),
604-         ArgumentMatchers .argThat (( ArgumentMatcher < Context < TestCustomResource >>)  context  -> {
600+     verify (reconciler , times (1 )).updateErrorStatus (any (),
601+         ArgumentMatchers .argThat (context  -> {
605602          var  retryInfo  = context .getRetryInfo ().orElseThrow ();
606603          return  retryInfo .isLastAttempt ();
607604        }), any ());
@@ -651,7 +648,7 @@ void reSchedulesFromErrorHandler() {
651648      throw  new  IllegalStateException ("Error Status Test" );
652649    };
653650    reconciler .errorHandler  =
654-         (r ,  ri ,  e ) -> ErrorStatusUpdateControl .<TestCustomResource >noStatusUpdate ()
651+         () -> ErrorStatusUpdateControl .<TestCustomResource >noStatusUpdate ()
655652            .rescheduleAfter (delay );
656653
657654    var  res  = reconciliationDispatcher .handleExecution (
@@ -691,12 +688,11 @@ public <T extends HasMetadata> ExecutionScope<T> executionScopeWithCREvent(T res
691688  }
692689
693690  private  class  TestReconciler 
694-       implements  Reconciler <TestCustomResource >, Cleaner <TestCustomResource >,
695-       ErrorStatusHandler <TestCustomResource > {
691+       implements  Reconciler <TestCustomResource >, Cleaner <TestCustomResource > {
696692
697693    private  BiFunction <TestCustomResource , Context , UpdateControl <TestCustomResource >> reconcile ;
698694    private  BiFunction <TestCustomResource , Context , DeleteControl > cleanup ;
699-     private  ErrorStatusHandler < TestCustomResource > errorHandler ;
695+     private  Supplier < ErrorStatusUpdateControl > errorHandler ;
700696
701697    @ Override 
702698    public  UpdateControl <TestCustomResource > reconcile (TestCustomResource  resource ,
@@ -719,7 +715,7 @@ public DeleteControl cleanup(TestCustomResource resource, Context context) {
719715    public  ErrorStatusUpdateControl <TestCustomResource > updateErrorStatus (
720716        TestCustomResource  resource ,
721717        Context <TestCustomResource > context , Exception  e ) {
722-       return  errorHandler  != null  ? errorHandler .updateErrorStatus ( resource ,  context ,  e )
718+       return  errorHandler  != null  ? errorHandler .get ( )
723719          : ErrorStatusUpdateControl .noStatusUpdate ();
724720    }
725721  }
0 commit comments