@Test
public void testAwaitTermination() throws InterruptedException {

	NoticeableThreadPoolExecutor noticeableThreadPoolExecutor =
		new NoticeableThreadPoolExecutor(
			1, 1, 1, TimeUnit.NANOSECONDS, new LinkedBlockingQueue<>(),
			new MethodNameThreadFactory(),
			(runnable, threadPoolExecutor) -> {
			},
			new ThreadPoolHandlerAdapter());
	Assert.assertFalse(
		noticeableThreadPoolExecutor.awaitTermination(
			1, TimeUnit.NANOSECONDS));
	ThreadPoolExecutor dispatcherThreadPoolExecutor =
		ReflectionTestUtil.getFieldValue(
			noticeableThreadPoolExecutor, "_dispatcherThreadPoolExecutor");
	dispatcherThreadPoolExecutor.shutdown();
	Assert.assertFalse(
		noticeableThreadPoolExecutor.awaitTermination(
			1, TimeUnit.NANOSECONDS));
	noticeableThreadPoolExecutor.shutdown();
	Assert.assertTrue(
		noticeableThreadPoolExecutor.awaitTermination(
			10, TimeUnit.MINUTES));
}