Я выбрасываю пользовательское исключение от потребителя подписки, но в тестовом примере я получаюrator.core.Exceptions.BubblingException.
часть кода:
return loginBOMonoValidated.map(this::checkAuth).map(login -> getUserContactsBOMono(login));
private LoginBO checkAuth(LoginBO loginBO) {
if (!loginBO.getClientId().equals(loginBO.getLoginId())) {
LoginDTO loginDTO = new LoginDTO(loginBO.getLoginId(), loginBO.getClientId());
authorizationRemoteClient
.validateManagerClientAccess(Mono.just(loginDTO))
.subscribe(authClientConsumer);
return new LoginBO(loginBO.getClientId(), loginBO.getClientId());
}
else return loginBO;
}
private Consumer<Boolean> authClientConsumer =
bol -> {
if (!bol) {
logger.error(ErrorCodes.LOGIN_ID_VALIDATION_ERROR.getDescription());
throw new AuthorizationException();
}
};
Испытание
Throwable exception =
assertThrows(
AuthorizationException.class,
() -> {
Mono<UserContactsBO> contact =contactInfoService.getUserContacts(Mono.just(new LoginBO("123456789", "1234")));
contact.subscribe();
});
Ожидаемое: . . **. AuthorizationException
Actual: реактор.core.Exceptions.BubblingException