/** * Copyright (C) 2000-2016 Atomikos <info@atomikos.com> * * LICENSE CONDITIONS * * See http://www.atomikos.com/Main/WhichLicenseApplies for details. */ package com.atomikos.icatch; import static com.atomikos.recovery.TxState.COMMITTING; import static com.atomikos.recovery.TxState.HEUR_ABORTED; import static com.atomikos.recovery.TxState.HEUR_COMMITTED; import static com.atomikos.recovery.TxState.HEUR_MIXED; import static com.atomikos.recovery.TxState.IN_DOUBT; import static com.atomikos.recovery.TxState.TERMINATED; import static org.junit.Assert.*; import java.util.EnumSet; import java.util.Set; import org.junit.Assert; import org.junit.Test; import com.atomikos.recovery.TxState; public class TxStateTestJUnit { @Test public void testCountStates() { TxState[] states = TxState.values(); assertEquals(15, states.length); } @Test public void testRecoverableStates() throws Exception { Set<TxState> recoverableStates = EnumSet.of(TERMINATED, IN_DOUBT, COMMITTING, HEUR_COMMITTED, HEUR_ABORTED, HEUR_MIXED); TxState[] states = TxState.values(); for (TxState txState : states) { if (recoverableStates.contains(txState)) { Assert.assertTrue(txState.isRecoverableState()); } else { Assert.assertFalse(txState.isRecoverableState()); } } } @Test public void testTerminatedMustRecoverableToDeleteFromLogs() throws Exception { assertTrue(TERMINATED.isRecoverableState()); } @Test public void testFinalStates() { Set<TxState> finalStates = EnumSet.of(TERMINATED); TxState[] states = TxState.values(); for (TxState txState : states) { if (finalStates.contains(txState)) { Assert.assertTrue(txState.isFinalState()); } else { Assert.assertFalse(txState.isFinalState()); } } } }