public void testTwoPhaseCommitSync() throws Exception
{
final SubordinateTransaction tm = createTransaction();
final TestSynchronization sync = new TestSynchronization();
tm.registerSynchronization(sync);
assertEquals(TwoPhaseOutcome.PREPARE_READONLY, tm.doPrepare());
tm.doCommit();
assertTrue(sync.isBeforeCompletionDone());
assertTrue(sync.isAfterCompletionDone());
assertEquals(javax.transaction.Status.STATUS_COMMITTED, tm.getStatus());