@Test
public void testCommitTransaction03() throws Exception {

    // テスト入力データ設定
    Map<String, PlatformTransactionManager> tranMap = new HashMap<String, PlatformTransactionManager>();
    PlatformTransactionManagerStub4 tran = new PlatformTransactionManagerStub4();
    tranMap.put("tran1", tran);
    tranMap.put("tran2", tran);
    tranMap.put("tran3", tran);
    tranMap.put("tran4", tran);
    Map<String, TransactionStatus> statMap = new LinkedHashMap<String, TransactionStatus>();
    TransactionStatusStub status1 = new TransactionStatusStub();
    status1.setName("stat1");
    TransactionStatusStub status2 = new TransactionStatusStub();
    status2.setName("stat2");
    TransactionStatusStub status3 = new TransactionStatusStub();
    status3.setName("stat3");
    TransactionStatusStub status4 = new TransactionStatusStub();
    status4.setName("stat4");
    // LinkedHashMapに昇順でtransactionStatusを追加。
    statMap.put("tran1", status1);
    statMap.put("tran2", status2);
    statMap.put("tran3", status3);
    statMap.put("tran4", status4);
    // テスト実施
    BatchUtil.commitTransactions(tranMap, statMap, log);
    // 結果検証
    List<TransactionStatus> statusList = tran.getStatusList();
    // statMapのput順と逆順にコミットされていること。
    assertEquals("stat4", ((TransactionStatusStub) statusList.get(0))
            .getName());
    assertEquals("stat3", ((TransactionStatusStub) statusList.get(1))
            .getName());
    assertEquals("stat2", ((TransactionStatusStub) statusList.get(2))
            .getName());
    assertEquals("stat1", ((TransactionStatusStub) statusList.get(3))
            .getName());
}