@Test public void testCompleteFutures() throws Exception { KafkaFutureImpl<Integer> future123 = new KafkaFutureImpl<>(); assertTrue(future123.complete(123)); assertEquals(Integer.valueOf(123), future123.get()); assertFalse(future123.complete(456)); assertTrue(future123.isDone()); assertFalse(future123.isCancelled()); assertFalse(future123.isCompletedExceptionally()); KafkaFuture<Integer> future456 = KafkaFuture.completedFuture(456); assertEquals(Integer.valueOf(456), future456.get()); KafkaFutureImpl<Integer> futureFail = new KafkaFutureImpl<>(); futureFail.completeExceptionally(new RuntimeException("We require more vespene gas")); try { futureFail.get(); Assert.fail("Expected an exception"); } catch (ExecutionException e) { assertEquals(RuntimeException.class, e.getCause().getClass()); Assert.assertEquals("We require more vespene gas", e.getCause().getMessage()); } }