### Question:
AisAuthorisationProcessorServiceImpl extends ConsentAuthorisationProcessorService<AisConsent> { @Override UpdateConsentPsuDataResponse proceedDecoupledApproach(String consentId, String authorisationId, AisConsent consent, String authenticationMethodId, PsuIdData psuData) { return commonDecoupledAisService.proceedDecoupledApproach(consentId, authorisationId, aisConsentMapper.mapToSpiAccountConsent(consent), authenticationMethodId, psuData); } AisAuthorisationProcessorServiceImpl(Xs2aAuthorisationService authorisationService,
                                                SpiContextDataProvider spiContextDataProvider,
                                                SpiAspspConsentDataProviderFactory aspspConsentDataProviderFactory,
                                                SpiErrorMapper spiErrorMapper,
                                                Xs2aToSpiPsuDataMapper psuDataMapper,
                                                List<AisAuthorizationService> services,
                                                Xs2aAisConsentService aisConsentService,
                                                AisConsentSpi aisConsentSpi,
                                                Xs2aAisConsentMapper aisConsentMapper,
                                                CommonDecoupledAisService commonDecoupledAisService,
                                                AisScaAuthorisationService aisScaAuthorisationService); @Override void updateAuthorisation(AuthorisationProcessorRequest request, AuthorisationProcessorResponse response);  }### Answer:
@Test void doScaPsuAuthenticated_decoupledApproach() { UpdateConsentPsuDataReq updateAuthorisationRequest = buildUpdateConsentPsuDataReq(); updateAuthorisationRequest.setAuthenticationMethodId(AUTHENTICATION_METHOD_ID); when(xs2aAisConsentService.getAccountConsentById(ENCRYPTED_CONSENT_ID)).thenReturn(Optional.of(aisConsent)); SpiAccountConsent spiAccountConsent = new SpiAccountConsent(); when(xs2aAisConsentMapper.mapToSpiAccountConsent(aisConsent)).thenReturn(spiAccountConsent); when(xs2aAuthorisationService.isAuthenticationMethodDecoupled(AUTHORISATION_ID, AUTHENTICATION_METHOD_ID)) .thenReturn(true); UpdateConsentPsuDataResponse decoupledResponse = buildDecoupledUpdateConsentPsuDataResponse(); when(commonDecoupledAisService.proceedDecoupledApproach(ENCRYPTED_CONSENT_ID, AUTHORISATION_ID, spiAccountConsent, AUTHENTICATION_METHOD_ID, PSU_ID_DATA)) .thenReturn(decoupledResponse); AuthorisationProcessorRequest processorRequest = buildAuthorisationProcessorRequest(ScaStatus.PSUIDENTIFIED, updateAuthorisationRequest, authorisation); AuthorisationProcessorResponse processorResponse = aisAuthorisationProcessorService.doScaPsuAuthenticated(processorRequest); assertFalse(processorResponse.hasError()); assertEquals(ScaStatus.SCAMETHODSELECTED, processorResponse.getScaStatus()); assertEquals(ENCRYPTED_CONSENT_ID, processorResponse.getConsentId()); assertEquals(AUTHORISATION_ID, processorResponse.getAuthorisationId()); assertEquals(DECOUPLED_SCA_METHOD, processorResponse.getChosenScaMethod()); assertEquals(DECOUPLED_PSU_MESSAGE, processorResponse.getPsuMessage()); verify(xs2aAuthorisationService).updateScaApproach(AUTHORISATION_ID, ScaApproach.DECOUPLED); verify(commonDecoupledAisService).proceedDecoupledApproach(ENCRYPTED_CONSENT_ID, AUTHORISATION_ID, spiAccountConsent, AUTHENTICATION_METHOD_ID, PSU_ID_DATA); }