Waiter waiter = new Waiter(); CompletableFuture<Connection> future = someService.connect(); future.whenComplete((connection, failure) -> { // Called from some other thread waiter.assertNotNull(connection); waiter.assertNull(failure); waiter.resume(); }); // Block the main test thread waiter.await();
@Test public void testInvoke() throws Throwable { Waiter waiter = new Waiter(); JustAClass justAClass = new JustAClass(); JustAClass.JustACallBack callBack = new JustAClass.JustACallBack() { @Override public void callFunc(final JustAClass.JustAResult result) { waiter.assertNotNull(result); waiter.assertTrue(result instanceof JustAClass.JustAResultReal); waiter.resume(); } }; justAClass.threadFunc(callBack); waiter.await(1200, TimeUnit.SECONDS); }