Example #1
0
        public void Dispose_MultipleCallsDoNothing()
        {
            var conn   = new TestDbConnection();
            var target = new DataTransaction(conn.BeginTransaction());

            //Act
            target.Dispose();
            target.Dispose();
        }
Example #2
0
        public void Commit_MultipleCallsFail()
        {
            var conn   = new TestDbConnection();
            var target = new DataTransaction(conn.BeginTransaction());

            target.Commit();
            Action action = () => target.Commit();

            action.Should().Throw <InvalidOperationException>();
        }
Example #3
0
        public void Commit_DoesNotClosesConnection()
        {
            var conn   = new TestDbConnection();
            var target = new DataTransaction(conn.BeginTransaction(), false);

            //Act
            target.Commit();

            //Assert
            conn.State.Should().Be(ConnectionState.Open);
        }
Example #4
0
        public void Commit_ClosesConnection()
        {
            var conn   = new TestDbConnection();
            var target = new DataTransaction(conn.BeginTransaction(), true);

            //Act
            target.Commit();

            //Assert
            conn.State.Should().Be(ConnectionState.Closed);
        }
Example #5
0
        public void Ctor_DefaultClosesConnection()
        {
            //Act
            var conn   = new TestDbConnection();
            var target = new DataTransaction(conn.BeginTransaction());

            target.Commit();

            //Assert
            conn.State.Should().Be(ConnectionState.Closed);
        }
Example #6
0
        public void Ctor_WithValidTransaction()
        {
            var conn          = new TestDbConnection();
            var expectedLevel = IsolationLevel.Snapshot;

            //Act
            var target = new DataTransaction(conn.BeginTransaction(expectedLevel));

            //Assert
            target.IsolationLevel.Should().Be(expectedLevel);
        }
Example #7
0
        public void Dispose_IsolationLevelReset()
        {
            var conn   = new TestDbConnection();
            var target = new DataTransaction(conn.BeginTransaction());

            //Act
            target.Dispose();

            //Assert
            target.IsolationLevel.Should().Be(IsolationLevel.Unspecified);
        }
Example #8
0
        public void Commit_RaisesEvent()
        {
            var  conn = new TestDbConnection();
            var  target = new DataTransaction(conn.BeginTransaction());
            bool wasCommitted = false, wasRolledBack = false;

            //Act
            target.Committed  += (o, e) => wasCommitted = true;
            target.RolledBack += (o, e) => wasRolledBack = true;
            target.Commit();

            //Assert
            wasCommitted.Should().BeTrue();
            wasRolledBack.Should().BeFalse();
        }