@Test
public void testExecuteJob02() throws Exception {

    Semaphore semaphore = new Semaphore(10);
    doReturn(false).when(asyncJobWorker).beforeExecute(anyString());
    AsyncJobLauncherImpl asyncJobLauncher = new AsyncJobLauncherImpl(
            threadPoolTaskExecutor, asyncJobWorker);
    asyncJobLauncher.taskPoolLimit = semaphore;
    // テスト実行
    asyncJobLauncher.executeJob("0000000001");
    // セマフォのサイズが元の値に戻っていること。
    assertEquals(10, semaphore.availablePermits());
    // エラーログ（EAL025054）とTaskRejectedExceptionの例外メッセージが出力されていること。
    assertThat(logger.getLoggingEvents(), is(asList(info(
            "[IAL025021] Skipped this job execution because this job has already been started by another. jobSequenceId:0000000001"))));
    // 以降の処理が呼び出されていないこと。
    verify(threadPoolTaskExecutor, never()).execute(any(Runnable.class));
    verify(asyncJobWorker, never()).executeWorker(anyString());
}