// Tests call Setup and TearDown manually for each iteration of the loop since
        // we want a clean database for each iteration.  We could use the parameterized
        // test feature of Nunit 2.5 but, unfortunately that doesn't work with all test runners (e.g. Resharper)

        private bool PerformMultipleOperations(ITransactionTestProvider transactionTestProvider)
        {
            transactionTestProvider.InitTransactionManager();
            transactionTestProvider.DoCommit(TestEntityName);
            transactionTestProvider.CheckNumberOfEntities(1);

            transactionTestProvider.DoCommit(TestEntityName + "1");
            transactionTestProvider.CheckNumberOfEntities(2);
            return(true);
        }
        private bool PerformRollsbackOnException(ITransactionTestProvider transactionTestProvider)
        {
            transactionTestProvider.InitTransactionManager();
            transactionTestProvider.DoCommit(TestEntityName);
            transactionTestProvider.CheckNumberOfEntities(1);

            Assert.Throws <GenericADOException>(() => transactionTestProvider.DoCommit(TestEntityName));
            transactionTestProvider.CheckNumberOfEntities(1);

            return(true);
        }
        private bool PerformRollsbackOnExceptionWithSilentException(ITransactionTestProvider transactionTestProvider)
        {
            transactionTestProvider.InitTransactionManager();
            transactionTestProvider.DoCommit(TestEntityName);
            transactionTestProvider.CheckNumberOfEntities(1);

            transactionTestProvider.DoCommitSilenceException(TestEntityName);
            transactionTestProvider.CheckNumberOfEntities(1);

            return(true);
        }
        private bool PerformSingleOperation(ITransactionTestProvider transactionTestProvider)
        {
            transactionTestProvider.InitTransactionManager();
            transactionTestProvider.DoCommit(TestEntityName);
            transactionTestProvider.CheckNumberOfEntities(1);

            return true;
        }
        private bool PerformRollsbackOnExceptionWithSilentException(ITransactionTestProvider transactionTestProvider)
        {
            transactionTestProvider.InitTransactionManager();
            transactionTestProvider.DoCommit(TestEntityName);
            transactionTestProvider.CheckNumberOfEntities(1);

            transactionTestProvider.DoCommitSilenceException(TestEntityName);
            transactionTestProvider.CheckNumberOfEntities(1);

            return true;
        }
        private bool PerformRollsbackOnException(ITransactionTestProvider transactionTestProvider)
        {
            transactionTestProvider.InitTransactionManager();
            transactionTestProvider.DoCommit(TestEntityName);
            transactionTestProvider.CheckNumberOfEntities(1);

            Assert.Throws<GenericADOException>(() => transactionTestProvider.DoCommit(TestEntityName));
            transactionTestProvider.CheckNumberOfEntities(1);

            return true;
        }
        private bool PerformMultipleOperationsRollbackLast(ITransactionTestProvider transactionTestProvider)
        {
            transactionTestProvider.InitTransactionManager();
            transactionTestProvider.DoCommit(TestEntityName + "1");
            transactionTestProvider.CheckNumberOfEntities(1);

            transactionTestProvider.DoRollback();
            transactionTestProvider.CheckNumberOfEntities(1);

            return true;
        }