Как написать тест junit для обратного вызова ListenableFuture

#java #unit-testing #junit #concurrent.futures

Вопрос:

Я ищу указания и рекомендации о том, как я могу написать тест junit для метода обратного вызова прослушиваемых фьючерсов —

 class Service {

public ResultSetFuture execute(Statement statement) {

    ResultSetFuture results = super.execute(statement);
    processCallBack(results);
    return results;
}


private void processCallBack(ResultSetFuture resultSetFuture) {

    // process callback on different thread

    Futures.addCallback(resultSetFuture, new FutureCallback<ResultSet>() {

        @Override
        public void onSuccess(@Nullable final ResultSet result) {

            // some logic
        }

        @Override
        public void onFailure(@Nonnull final Throwable t) {
            // some logic
        }
    }, this.futureCallBackExecutorService);
}
 

}

Более конкретно, напишите тесты JUnit для метода onSuccess и OnFailure при обратном вызове в другом потоке.