RegisterSynchronization() public static method

Register a new transaction synchronization for the current thread.
Typically called by resource management code.
/// If synchronization is not active. ///
public static RegisterSynchronization ( ITransactionSynchronization synchronization ) : void
synchronization ITransactionSynchronization
return void
        public void SynchronizationsExecuteInOrderOfRegistration()
        {
            TransactionSynchronizationManager.InitSynchronization();

            try
            {
                // expect syncs to be run A, B, C, D, E since all have order '1'
                TransactionSynchronizationManager.RegisterSynchronization(new Sync("A", 1));
                TransactionSynchronizationManager.RegisterSynchronization(new Sync("B", 1));
                TransactionSynchronizationManager.RegisterSynchronization(new Sync("C", 1));
                TransactionSynchronizationManager.RegisterSynchronization(new Sync("D", 1));
                TransactionSynchronizationManager.RegisterSynchronization(new Sync("E", 1));

                // simulate what APTM does
                Sync[] syncs = (Sync[])CollectionUtils.ToArray(TransactionSynchronizationManager.Synchronizations, typeof(Sync));
                Assert.AreEqual("A", syncs[0].Name);
                Assert.AreEqual("B", syncs[1].Name);
                Assert.AreEqual("C", syncs[2].Name);
                Assert.AreEqual("D", syncs[3].Name);
                Assert.AreEqual("E", syncs[4].Name);
            }
            finally
            {
                TransactionSynchronizationManager.ClearSynchronization();
            }
        }
        public void SynchronizationsLifeCycle()
        {
            TransactionSynchronizationManager.InitSynchronization();
            IList syncs = TransactionSynchronizationManager.Synchronizations;

            Assert.AreEqual(0, syncs.Count);
            TransactionSynchronizationManager.RegisterSynchronization(MockRepository.GenerateMock <ITransactionSynchronization>());
            syncs = TransactionSynchronizationManager.Synchronizations;
            Assert.AreEqual(1, syncs.Count);
            TransactionSynchronizationManager.ClearSynchronization();
        }
        public void SynchronizationsLifeCycle()
        {
            TransactionSynchronizationManager.InitSynchronization();
            IList syncs = TransactionSynchronizationManager.Synchronizations;

            Assert.AreEqual(0, syncs.Count);
            TransactionSynchronizationManager.RegisterSynchronization(new MockTxnSync());
            syncs = TransactionSynchronizationManager.Synchronizations;
            Assert.AreEqual(1, syncs.Count);
            TransactionSynchronizationManager.ClearSynchronization();
        }
 public void RegisterSyncsInvalid()
 {
     Assert.Throws <InvalidOperationException>(() => TransactionSynchronizationManager.RegisterSynchronization(MockRepository.GenerateMock <ITransactionSynchronization>()));
 }
 public void RegisterSyncsInvalid()
 {
     TransactionSynchronizationManager.RegisterSynchronization(new MockTxnSync());
 }
Ejemplo n.º 6
0
 public void RegisterSyncsInvalid()
 {
     Assert.Throws <InvalidOperationException>(() => TransactionSynchronizationManager.RegisterSynchronization(A.Fake <ITransactionSynchronization>()));
 }
 public void RegisterSyncsInvalid()
 {
     TransactionSynchronizationManager.RegisterSynchronization(MockRepository.GenerateMock <ITransactionSynchronization>());
 }