package org.threadly.concurrent.future;
import static org.junit.Assert.*;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.concurrent.atomic.AtomicReference;
import org.junit.Test;
@SuppressWarnings("javadoc")
public class AbstractFutureCallbackResultHandlerTest {
@Test
public void failureIgnoredTest() {
final AtomicBoolean resultProvided = new AtomicBoolean(false);
new AbstractFutureCallbackResultHandler<Object>() {
@Override
public void handleResult(Object result) {
resultProvided.set(true);
}
}.handleFailure(new Exception());
// no exception should throw or other weird behavior
assertFalse(resultProvided.get());
}
@Test
public void resultProvidedTest() {
final Object testResult = new Object();
final AtomicReference<Object> resultProvided = new AtomicReference<>(null);
new AbstractFutureCallbackResultHandler<Object>() {
@Override
public void handleResult(Object result) {
resultProvided.set(result);
}
}.handleResult(testResult);
assertTrue(testResult == resultProvided.get());
}
}