### Question:
Promise extends PromiseSupport<T> { public Promise<T> fulfillInAsync(final Callable<T> task, Executor executor) { executor.execute(() -> { try { fulfill(task.call()); } catch (Exception ex) { fulfillExceptionally(ex); } }); return this; } Promise(); @Override void fulfill(T value); @Override void fulfillExceptionally(Exception exception); Promise<T> fulfillInAsync(final Callable<T> task, Executor executor); Promise<Void> thenAccept(Consumer<? super T> action); Promise<T> onError(Consumer<? super Throwable> exceptionHandler); Promise<V> thenApply(Function<? super T, V> func);  }### Answer:
@Test public void promiseIsFulfilledWithTheResultantValueOfExecutingTheTask() throws InterruptedException, ExecutionException { promise.fulfillInAsync(new NumberCrunchingTask(), executor); assertEquals(NumberCrunchingTask.CRUNCHED_NUMBER, promise.get()); assertTrue(promise.isDone()); assertFalse(promise.isCancelled()); }