コード例 #1
0
        public void OnActionExecuting_ResolveCurrentNHibernateSessionAndBeginNewTransaction()
        {
            var mockCurrentSession = MockRepository.GenerateMock<ISession>();
            SetCurrentSessionUsingTheDependencyResolver(mockCurrentSession);

            var sessionFilter = new NHibernateSessionPerRequestFilter();
            sessionFilter.OnActionExecuting(null);

            mockCurrentSession.AssertWasCalled(m=>m.BeginTransaction());
        }
コード例 #2
0
        public void OnResultExecuted_CommitTheCurrentTransaction()
        {
            var mockCurrentTransaction = MockRepository.GenerateMock<ITransaction>();
            var stubCurrentSession = MockRepository.GenerateMock<ISession>();
            stubCurrentSession.Stub(s => s.Transaction).Return(mockCurrentTransaction);
            SetCurrentSessionUsingTheDependencyResolver(stubCurrentSession);

            var sessionFilter = new NHibernateSessionPerRequestFilter();
            sessionFilter.OnResultExecuted(null);

            mockCurrentTransaction.AssertWasCalled(m => m.Commit());
        }
コード例 #3
0
        public void OnException_WhenThereIsNoActiveTransaction_DoesNotRollbackTheCurrentTransaction()
        {
            var mockCurrentTransaction = MockRepository.GenerateMock<ITransaction>();
            mockCurrentTransaction.Stub(s => s.IsActive).Return(false);

            var stubCurrentSession = MockRepository.GenerateMock<ISession>();
            stubCurrentSession.Stub(s => s.Transaction).Return(mockCurrentTransaction);
            SetCurrentSessionUsingTheDependencyResolver(stubCurrentSession);

            var sessionFilter = new NHibernateSessionPerRequestFilter();
            sessionFilter.OnException(null);

            mockCurrentTransaction.AssertWasNotCalled(m => m.Rollback());
        }