public ITransactionScope CreateTransactionScope(
            TransactionScopeOptions scopeOptions = null)
        {
            scopeOptions = scopeOptions ?? new TransactionScopeOptions();

            return(new MockableTransactionScope(scopeOptions));
        }
Ejemplo n.º 2
0
            public static void SetsCorrectTransactionScopeAsyncFlowOption()
            {
                var sut = new TransactionScopeOptions();

                Assert.Equal(
                    TransactionScopeAsyncFlowOption.Enabled,
                    sut.AsyncFlowOption);
            }
Ejemplo n.º 3
0
            public static void SetsCorrectTransactionScopeTimeout()
            {
                var sut = new TransactionScopeOptions();

                Assert.Equal(
                    TimeSpan.FromSeconds(60),
                    sut.ScopeTimeout);
            }
Ejemplo n.º 4
0
            public static void SetsCorrectTransactionScopeIsolationLevel()
            {
                var sut = new TransactionScopeOptions();

                Assert.Equal(
                    IsolationLevel.ReadCommitted,
                    sut.IsolationLevel);
            }
Ejemplo n.º 5
0
            public static void SetsCorrectTransactionScopeOption()
            {
                var sut = new TransactionScopeOptions();

                Assert.Equal(
                    TransactionScopeOption.Required,
                    sut.ScopeOption);
            }
Ejemplo n.º 6
0
            public static void TransactionScopeTimeoutThrowsIfLessThanZero()
            {
                var sut = new TransactionScopeOptions();

                var exception = Record.Exception(() =>
                                                 sut.ScopeTimeout = TimeSpan.FromMilliseconds(-1));

                Assert.NotNull(exception);
                Assert.IsType <ArgumentOutOfRangeException>(exception);
            }
Ejemplo n.º 7
0
        public static void CanSpecifyTransactionScopeOptions()
        {
            var sut = new TransactionScopeFactory();

            var options = new TransactionScopeOptions();

            using (var transaction = sut.CreateTransactionScope(options))
            {
                transaction.Complete();
            }
        }
        public MockableTransactionScope(
            TransactionScopeOptions scopeOptions)
        {
            if (scopeOptions == null)
            {
                throw new ArgumentNullException(nameof(scopeOptions));
            }

            var options = default(TransactionOptions);

            options.IsolationLevel = scopeOptions.IsolationLevel;
            options.Timeout        = scopeOptions.ScopeTimeout;

            _transactionScope = new TransactionScope(
                scopeOptions.ScopeOption,
                options,
                scopeOptions.AsyncFlowOption);
        }