/** invokeAny(empty collection) throws IAE */ public void testInvokeAnyImpl_emptyTasks() throws Exception { ListeningExecutorService e = newDirectExecutorService(); try { invokeAnyImpl(e, new ArrayList<Callable<String>>(), false, 0, TimeUnit.NANOSECONDS); fail(); } catch (IllegalArgumentException success) { } finally { joinPool(e); } }
/** invokeAny(c) throws NPE if c has null elements */ public void testInvokeAnyImpl_nullElement() throws Exception { ListeningExecutorService e = newDirectExecutorService(); List<Callable<Integer>> l = new ArrayList<>(); l.add( new Callable<Integer>() { @Override public Integer call() { throw new ArithmeticException("/ by zero"); } }); l.add(null); try { invokeAnyImpl(e, l, false, 0, TimeUnit.NANOSECONDS); fail(); } catch (NullPointerException success) { } finally { joinPool(e); } }
/** invokeAny(c) returns result of some task in c if at least one completes */ public void testInvokeAnyImpl() throws Exception { ListeningExecutorService e = newDirectExecutorService(); try { List<Callable<String>> l = new ArrayList<>(); l.add(new StringTask()); l.add(new StringTask()); String result = invokeAnyImpl(e, l, false, 0, TimeUnit.NANOSECONDS); assertSame(TEST_STRING, result); } finally { joinPool(e); } }
/** invokeAny(null) throws NPE */ public void testInvokeAnyImpl_nullTasks() throws Exception { ListeningExecutorService e = newDirectExecutorService(); try { invokeAnyImpl(e, null, false, 0, TimeUnit.NANOSECONDS); fail(); } catch (NullPointerException success) { } finally { joinPool(e); } }
/** invokeAny(c) throws ExecutionException if no task in c completes */ public void testInvokeAnyImpl_noTaskCompletes() throws Exception { ListeningExecutorService e = newDirectExecutorService(); List<Callable<String>> l = new ArrayList<>(); l.add(new NPETask()); try { invokeAnyImpl(e, l, false, 0, TimeUnit.NANOSECONDS); fail(); } catch (ExecutionException success) { assertThat(success).hasCauseThat().isInstanceOf(NullPointerException.class); } finally { joinPool(e); } }
/** * invokeAny(empty collection) throws IAE */ public void testInvokeAnyImpl_emptyTasks() throws Exception { ListeningExecutorService e = newDirectExecutorService(); try { invokeAnyImpl(e, new ArrayList<Callable<String>>(), false, 0, TimeUnit.NANOSECONDS); fail(); } catch (IllegalArgumentException success) { } finally { joinPool(e); } }
/** * invokeAny(c) throws NPE if c has null elements */ public void testInvokeAnyImpl_nullElement() throws Exception { ListeningExecutorService e = newDirectExecutorService(); List<Callable<Integer>> l = new ArrayList<>(); l.add(new Callable<Integer>() { @Override public Integer call() { throw new ArithmeticException("/ by zero"); } }); l.add(null); try { invokeAnyImpl(e, l, false, 0, TimeUnit.NANOSECONDS); fail(); } catch (NullPointerException success) { } finally { joinPool(e); } }
/** * invokeAny(c) throws ExecutionException if no task in c completes */ public void testInvokeAnyImpl_noTaskCompletes() throws Exception { ListeningExecutorService e = newDirectExecutorService(); List<Callable<String>> l = new ArrayList<>(); l.add(new NPETask()); try { invokeAnyImpl(e, l, false, 0, TimeUnit.NANOSECONDS); fail(); } catch (ExecutionException success) { assertThat(success.getCause()).isInstanceOf(NullPointerException.class); } finally { joinPool(e); } }
/** * invokeAny(c) returns result of some task in c if at least one completes */ public void testInvokeAnyImpl() throws Exception { ListeningExecutorService e = newDirectExecutorService(); try { List<Callable<String>> l = new ArrayList<>(); l.add(new StringTask()); l.add(new StringTask()); String result = invokeAnyImpl(e, l, false, 0, TimeUnit.NANOSECONDS); assertSame(TEST_STRING, result); } finally { joinPool(e); } }
/** * invokeAny(null) throws NPE */ public void testInvokeAnyImpl_nullTasks() throws Exception { ListeningExecutorService e = newDirectExecutorService(); try { invokeAnyImpl(e, null, false, 0, TimeUnit.NANOSECONDS); fail(); } catch (NullPointerException success) { } finally { joinPool(e); } }