/** * A new SubmissionPublisher has no subscribers, is not closed, has the given buffer size, and * uses the given executor */ public void testConstructor2() { Executor e = Executors.newFixedThreadPool(1); SubmissionPublisher<Integer> p = new SubmissionPublisher<Integer>(e, 8); checkInitialState(p); assertSame(p.getExecutor(), e); assertEquals(8, p.getMaxBufferCapacity()); }
/** * A default-constructed SubmissionPublisher has no subscribers, is not closed, has default buffer * size, and uses the defaultExecutor */ public void testConstructor1() { SubmissionPublisher<Integer> p = new SubmissionPublisher<Integer>(); checkInitialState(p); assertEquals(p.getMaxBufferCapacity(), Flow.defaultBufferSize()); Executor e = p.getExecutor(), c = ForkJoinPool.commonPool(); if (ForkJoinPool.getCommonPoolParallelism() > 1) assertSame(e, c); else assertNotSame(e, c); }
/** * A new SubmissionPublisher has no subscribers, a non-null executor, a power-of-two capacity, is * not closed, and reports zero demand and lag */ void checkInitialState(SubmissionPublisher<?> p) { assertFalse(p.hasSubscribers()); assertEquals(0, p.getNumberOfSubscribers()); assertTrue(p.getSubscribers().isEmpty()); assertFalse(p.isClosed()); assertNull(p.getClosedException()); int n = p.getMaxBufferCapacity(); assertTrue((n & (n - 1)) == 0); // power of two assertNotNull(p.getExecutor()); assertEquals(0, p.estimateMinimumDemand()); assertEquals(0, p.estimateMaximumLag()); }