Esempio n. 1
0
            public void should_not_rollback_nested_unit_of_work()
            {
                //act
                UnitOfWork.Do(uow => UnitOfWork.Do(nested => nested.Rollback()));

                //assert
                A.CallTo(() => SessionScope.Rollback()).MustNotHaveHappened();
            }
Esempio n. 2
0
            public void should_rollback_and_dispose()
            {
                //act
                UnitOfWork.Do(uow => uow.Rollback());

                //assert
                A.CallTo(() => SessionScope.Commit()).MustNotHaveHappened();
                A.CallTo(() => SessionScope.Rollback()).MustHaveHappened(Repeated.Exactly.Once);
                A.CallTo(() => SessionScope.Dispose()).MustHaveHappened(Repeated.Exactly.Once);
            }
Esempio n. 3
0
            public void should_commit()
            {
                //act
                UnitOfWork.Do(uow => { }, new UnitOfWorkSettings()
                {
                    RollbackOnDispose = false
                });

                //assert
                A.CallTo(() => SessionScope.Rollback()).MustNotHaveHappened();
                A.CallTo(() => SessionScope.Commit()).MustHaveHappened();
            }
Esempio n. 4
0
            public void should_not_try_to_commit_or_rollback_and_should_close_unit_of_work()
            {
                //act
                try
                {
                    UnitOfWork.Do(uow =>
                    {
                        throw new Exception();
                    });
                }
                catch (Exception)
                {
                    //assert
                    A.CallTo(() => SessionScope.Rollback()).MustNotHaveHappened();
                    A.CallTo(() => SessionScope.Commit()).MustNotHaveHappened();

                    A.CallTo(() => SessionScope.Dispose()).MustHaveHappened();
                    UnitOfWork.Current.IsNone.Should().BeTrue();
                }
            }
Esempio n. 5
0
 /// <summary>
 /// Rollback database transaction explicitly. As alternative you can use RollbackOnDispose setting to rollback transaction automatically in the end of the "Do" block(may be useful in testing).
 /// </summary>
 public void Rollback()
 {
     Perform(() => SessionScope.Rollback());
 }