@Test
public void testInvoke09() throws Throwable {

    // テスト準備
    MethodInvocation mockMethodInvocation = mock(MethodInvocation.class);
    TransactionException transactionException = new TransactionSystemException("test exception");
    ReflectionTestUtils.setField(adminConnectionRetryInterceptor,
            "retryInterval", 500);
    ReflectionTestUtils.setField(adminConnectionRetryInterceptor,
            "maxRetryCount", 3);
    // テスト実行
    // 検証
    try {
        when(mockMethodInvocation.proceed()).thenThrow(
                new TransactionSystemException("test exception 1"))
                .thenThrow(
                        new TransactionSystemException("test exception 2"))
                .thenThrow(
                        new TransactionSystemException("test exception 3"))
                .thenThrow(transactionException).thenReturn(null);
        adminConnectionRetryInterceptor.invoke(mockMethodInvocation);
        fail();
    } catch (TransactionException e) {
        assertSame(transactionException, e);
    }
    verify(mockMethodInvocation, times(4)).proceed();
    assertEquals(Level.INFO, logger.getLoggingEvents().get(0).getLevel());
    assertEquals(
            "[IAL025017] RetryDetails. currentRetryCount:1, retryMaxCount:3, retryReset:600,000 ms, retryInterval:500 ms",
            logger.getLoggingEvents().get(0).getMessage());
    assertEquals(Level.INFO, logger.getLoggingEvents().get(1).getLevel());
    assertEquals(
            "[IAL025017] RetryDetails. currentRetryCount:2, retryMaxCount:3, retryReset:600,000 ms, retryInterval:500 ms",
            logger.getLoggingEvents().get(1).getMessage());
    assertEquals(Level.INFO, logger.getLoggingEvents().get(2).getLevel());
    assertEquals(
            "[IAL025017] RetryDetails. currentRetryCount:3, retryMaxCount:3, retryReset:600,000 ms, retryInterval:500 ms",
            logger.getLoggingEvents().get(2).getMessage());
    assertEquals(Level.ERROR, logger.getLoggingEvents().get(3).getLevel());
    assertEquals(
            "[EAL025063] Connection retry count exceeded limit. maxRetryCount:3",
            logger.getLoggingEvents().get(3).getMessage());
}