use of com.karumi.rosie.domain.usecase.error.OnErrorCallback in project Rosie by Karumi.
the class UseCaseHandlerTest method shouldThrowExceptionIfTheOnSuccessCallbackHasNoMethodsWithSuccessAnnotations.
@Test
public void shouldThrowExceptionIfTheOnSuccessCallbackHasNoMethodsWithSuccessAnnotations() {
FakeTaskScheduler taskScheduler = new FakeTaskScheduler();
SuccessUseCase successUseCase = new SuccessUseCase();
ErrorHandler errorHandler = mock(ErrorHandler.class);
UseCaseHandler useCaseHandler = new UseCaseHandler(taskScheduler, errorHandler);
UseCaseCall useCaseCall = new UseCaseCall(successUseCase, useCaseHandler);
useCaseCall.onSuccess(new OnSuccessCallback() {
}).execute();
verify(errorHandler).notifyException(any(IllegalStateException.class), eq((OnErrorCallback) null));
}
use of com.karumi.rosie.domain.usecase.error.OnErrorCallback in project Rosie by Karumi.
the class UseCaseWrapperTest method shouldNotifyErrorNotifiedFromTheUseCase.
@Test
public void shouldNotifyErrorNotifiedFromTheUseCase() {
AnyUseCase anyUseCase = new AnyUseCase();
anyUseCase.setErrorToNotify(new Error());
UseCaseParams argsParams = givenUseCaseParamsWithArgs(ANY_FIRST_ARG, ANY_SECOND_ARG);
ErrorHandler errorHandler = mock(ErrorHandler.class);
UseCaseWrapper useCaseWrapper = new UseCaseWrapper(anyUseCase, argsParams, errorHandler);
useCaseWrapper.execute();
verify(errorHandler).notifyException(any(ErrorNotHandledException.class), eq((OnErrorCallback) null));
}
use of com.karumi.rosie.domain.usecase.error.OnErrorCallback in project Rosie by Karumi.
the class UseCaseHandler method execute.
/**
* Given a class configured with UseCase annotation executes the annotated
* method out of the UI thread and returns the response, if needed, on the UI thread.
*
* @param useCase the use case to invoke.
* @param useCaseParams params to use on the invocation.
*/
void execute(RosieUseCase useCase, UseCaseParams useCaseParams) {
UseCaseFilter.filter(useCase, useCaseParams);
useCase.setOnSuccessCallback(useCaseParams.getOnSuccessCallback());
OnErrorCallback onErrorCallback = new OnErrorCallbackToErrorHandlerAdapter(errorHandler, useCaseParams.getOnErrorCallback());
errorCallbacks.add(onErrorCallback);
useCase.setOnErrorCallback(onErrorCallback);
UseCaseWrapper useCaseWrapper = new UseCaseWrapper(useCase, useCaseParams, errorHandler);
taskScheduler.execute(useCaseWrapper);
}
use of com.karumi.rosie.domain.usecase.error.OnErrorCallback in project Rosie by Karumi.
the class CharacterDetailsPresenter method loadCharacterDetails.
private void loadCharacterDetails() {
getView().hideCharacterDetail();
createUseCaseCall(getCharacterDetails).args(characterKey).onSuccess(new OnSuccessCallback() {
@Success
public void onCharacterDetailsLoaded(Character character) {
hideLoading();
CharacterDetailViewModel characterDetailViewModel = mapper.mapCharacterToCharacterDetailViewModel(character);
getView().showCharacterDetail(characterDetailViewModel);
}
}).onError(new OnErrorCallback() {
@Override
public boolean onError(Error error) {
getView().hideLoading();
return false;
}
}).execute();
}
Aggregations