-
Notifications
You must be signed in to change notification settings - Fork 3
Fallback
Eko Kurniawan Khannedy edited this page Jan 30, 2018
·
1 revision
When you create Command, you can also override the fallback method. Fallback method will executed if your execute() method return error.
@Slf4j
@Component
public class UpperCommandImpl implements UpperCommand {
@Override
public Single<String> execute(UpperCommandRequest request) {
return Single.create(singleSubscriber -> {
try {
singleSubscriber.onSuccess(request.getName().toUpperCase());
} catch (Throwable ex) {
singleSubscriber.onError(ex);
}
});
}
@Override
public Single<String> fallback(Throwable throwable, UpperCommandRequest request) {
log.warn("Error while invoking upper command", throwable);
return Single.just("FALLBACK");
}
}
@Test
public void testSuccess() {
request = UpperCommandRequest.builder().name("Eko Kurniawan Khannedy").build();
String response = commandExecutor.execute(UpperCommand.class, request).toBlocking().value();
assertEquals("EKO KURNIAWAN KHANNEDY", response);
}
@Test
public void testFallback() {
request = UpperCommandRequest.builder().build();
String response = commandExecutor.execute(UpperCommand.class, request).toBlocking().value();
assertEquals("FALLBACK", response);
}