9393import static org .mockito .Mockito .doAnswer ;
9494import static org .mockito .Mockito .doReturn ;
9595import static org .mockito .Mockito .doThrow ;
96- import static org .mockito .Mockito .lenient ;
9796import static org .mockito .Mockito .mock ;
9897import static org .mockito .Mockito .spy ;
9998import static org .mockito .Mockito .times ;
@@ -523,33 +522,66 @@ void setUp() {
523522 }
524523
525524 @ Test
526- void givenException_thenHandleExceptions () {
527- ZosmfService zosmfService = getZosmfServiceWithValidationStrategy (Collections . singletonList ( tokenValidationStrategy1 ) );
525+ void givenFirstValidationStrategyFailed_thenSecondSucceeds () {
526+ ZosmfService zosmfService = getZosmfServiceWithValidationStrategy (validationStrategyList );
528527
529528 doThrow (RuntimeException .class ).when (tokenValidationStrategy1 ).validate (any ());
530- assertDoesNotThrow (() -> zosmfService .validate ("TOKN" ));
529+ doValidate (tokenValidationStrategy2 , TokenValidationRequest .STATUS .AUTHENTICATED );
530+
531+ var validationResult = assertDoesNotThrow (() -> zosmfService .validate ("TOKN" ));
532+ assertTrue (validationResult );
533+
534+ verify (tokenValidationStrategy1 , times (1 )).validate (any ());
535+ verify (tokenValidationStrategy2 , times (1 )).validate (any ());
536+ }
537+
538+ @ Test
539+ void givenAllValidationStrategiesFail_thenThrowException () {
540+ ZosmfService zosmfService = getZosmfServiceWithValidationStrategy (validationStrategyList );
541+
542+ doThrow (RuntimeException .class ).when (tokenValidationStrategy1 ).validate (any ());
543+ doThrow (RuntimeException .class ).when (tokenValidationStrategy2 ).validate (any ());
544+
545+ assertThrows (ServiceNotAccessibleException .class , () -> zosmfService .validate ("TOKN" ));
546+
547+ verify (tokenValidationStrategy1 , times (1 )).validate (any ());
548+ verify (tokenValidationStrategy2 , times (1 )).validate (any ());
531549 }
532550
551+ @ Test
552+ void givenAllValidationStrategiesReturnInvalid_thenReturnFalse () {
553+ ZosmfService zosmfService = getZosmfServiceWithValidationStrategy (validationStrategyList );
554+
555+ doValidate (tokenValidationStrategy1 , TokenValidationRequest .STATUS .INVALID );
556+ doValidate (tokenValidationStrategy2 , TokenValidationRequest .STATUS .INVALID );
557+
558+ assertThrows (TokenNotValidException .class , () -> zosmfService .validate ("TOKN" ));
559+
560+ verify (tokenValidationStrategy1 , times (1 )).validate (any ());
561+ verify (tokenValidationStrategy2 , times (1 )).validate (any ());
562+ }
563+
564+
533565 @ Test
534566 void givenOneValidationStrategy_thenReturnValidationStrategyResult () {
535567 ZosmfService zosmfService = getZosmfServiceWithValidationStrategy (Collections .singletonList (tokenValidationStrategy1 ));
536568
537569 //UNKNOWN by default
538- assertThat ( zosmfService .validate ("TOKN" ), is ( false ));
570+ assertThrows ( TokenNotValidException . class , () -> zosmfService .validate ("TOKN" ));
539571
540572 doValidate (tokenValidationStrategy1 , TokenValidationRequest .STATUS .AUTHENTICATED );
541573
542574 assertThat (zosmfService .validate ("TOKN" ), is (true ));
543575
544576 doValidate (tokenValidationStrategy1 , TokenValidationRequest .STATUS .INVALID );
545- assertThat ( zosmfService .validate ("TOKN" ), is ( false ));
577+ assertThrows ( TokenNotValidException . class , () -> zosmfService .validate ("TOKN" ));
546578 }
547579
548580 @ Test
549581 void givenFirstValidationStrategyAuthentications_thenDontUseSecondValidationStrategy () {
550582 ZosmfService zosmfService = getZosmfServiceWithValidationStrategy (validationStrategyList );
551583
552- assertThat ( zosmfService .validate ("TOKN" ), is ( false ));
584+ assertThrows ( TokenNotValidException . class , () -> zosmfService .validate ("TOKN" ));
553585 verify (tokenValidationStrategy1 , times (1 )).validate (any ());
554586 verify (tokenValidationStrategy2 , times (1 )).validate (any ());
555587
@@ -571,19 +603,10 @@ void givenFirstStrategyInvalidAndSecondValid_thenTokenIsValid() {
571603 verify (tokenValidationStrategy2 , times (1 )).validate (any ());
572604 }
573605
574- @ Test
575- void doesNotRethrowExceptionsFromValidationStrategies () {
576- ZosmfService zosmfService = getZosmfServiceWithValidationStrategy (Collections .singletonList (tokenValidationStrategy1 ));
577- TokenValidationRequest request = mock (TokenValidationRequest .class );
578-
579- lenient ().doThrow (RuntimeException .class ).when (tokenValidationStrategy1 ).validate (request );
580- assertDoesNotThrow (() -> zosmfService .validate ("TOKN" ));
581- }
582-
583606 @ Test
584607 void suppliesValidationRequestWithVerifiedEndpointsList () {
585608 ZosmfService zosmfService = getZosmfServiceWithValidationStrategy (validationStrategyList );
586- zosmfService .validate ("TOKN" );
609+ assertThrows ( TokenNotValidException . class , () -> zosmfService .validate ("TOKN" ) );
587610 verify (tokenValidationStrategy1 ).validate (argThat (request -> !request .getEndpointExistenceMap ().isEmpty ()));
588611 }
589612
0 commit comments