Inheritance: ISessionBase, IDisposable
            public WhenCallingBeginTransaction()
            {
                this.mockDbDriver.Setup(x => x.GetConnection(ConnectionScope.PerSession)).Returns(mockConnection.Object);

                var mockSessionBase = new Mock<SessionBase>(ConnectionScope.PerSession, mockDbDriver.Object);
                mockSessionBase.CallBase = true;

                this.sessionBase = mockSessionBase.Object;
                this.transaction = sessionBase.BeginTransaction();
            }
            public WhenCallingBeginTransaction_AndTheSessionIsDisposed()
            {
                var mockDbDriver = new Mock<IDbDriver>();
                mockDbDriver.Setup(x => x.GetConnection(ConnectionScope.PerSession)).Returns(new Mock<IDbConnection>().Object);

                var mockSessionBase = new Mock<SessionBase>(ConnectionScope.PerSession, mockDbDriver.Object);
                mockSessionBase.CallBase = true;

                this.sessionBase = mockSessionBase.Object;
                this.sessionBase.Dispose();
            }
            public WhenConstructed_WithConnectionScopePerTransaction()
            {
                this.mockDbDriver.Setup(x => x.GetConnection(ConnectionScope.PerTransaction)).Returns(connection);

                var mockSessionBase = new Mock<SessionBase>(ConnectionScope.PerTransaction, this.mockDbDriver.Object);
                mockSessionBase.CallBase = true;

                this.sessionBase = mockSessionBase.Object;
            }
            public WhenCallingTransactionCompleted_WithConnectionScopePerTransaction()
            {
                var mockDbDriver = new Mock<IDbDriver>();
                mockDbDriver.Setup(x => x.GetConnection(ConnectionScope.PerTransaction)).Returns(mockConnection.Object);

                var mockSessionBase = new Mock<SessionBase>(ConnectionScope.PerTransaction, mockDbDriver.Object);
                mockSessionBase.CallBase = true;

                this.sessionBase = mockSessionBase.Object;
                this.sessionBase.BeginTransaction();
                this.sessionBase.TransactionCompleted();
            }
            public WhenCallingDispose_AndTheTransactionIsNotNull()
            {
                this.mockConnection.Setup(x => x.BeginTransaction(It.IsAny<IsolationLevel>())).Returns(new Mock<IDbTransaction>().Object);

                var mockDbDriver = new Mock<IDbDriver>();
                mockDbDriver.Setup(x => x.GetConnection(ConnectionScope.PerTransaction)).Returns(mockConnection.Object);

                var mockSessionBase = new Mock<SessionBase>(ConnectionScope.PerTransaction, mockDbDriver.Object);
                mockSessionBase.CallBase = true;

                this.sessionBase = mockSessionBase.Object;
                this.sessionBase.BeginTransaction();
                this.sessionBase.Dispose();
            }
            public WhenCallingDispose_AndTheConnectionScopeIsPerTransaction()
            {
                var mockDbDriver = new Mock<IDbDriver>();
                mockDbDriver.Setup(x => x.GetConnection(ConnectionScope.PerTransaction)).Returns(mockConnection.Object);

                var mockSessionBase = new Mock<SessionBase>(ConnectionScope.PerTransaction, mockDbDriver.Object);
                mockSessionBase.CallBase = true;

                this.sessionBase = mockSessionBase.Object;
                this.sessionBase.Dispose();
            }
            public WhenConstructed_WithConnectionScopePerSession()
            {
                this.mockDbDriver.Setup(x => x.CreateConnection()).Returns(mockConnection.Object);

                var mockSessionBase = new Mock<SessionBase>(ConnectionScope.PerSession, this.mockDbDriver.Object);
                mockSessionBase.CallBase = true;

                this.sessionBase = mockSessionBase.Object;
            }
            public WhenCallingBeginTransaction_WithAnIsolationLevel()
            {
                this.mockDbDriver.Setup(x => x.CreateConnection()).Returns(mockConnection.Object);

                var mockSessionBase = new Mock<SessionBase>(ConnectionScope.PerSession, this.mockDbDriver.Object);
                mockSessionBase.CallBase = true;

                this.sessionBase = mockSessionBase.Object;
                this.transaction = sessionBase.BeginTransaction(this.isolationLevel);
            }