public void Should_require_the_uow_to_have_begun_if_committing() { var session = S <ISession>(); var sessionSource = new SessionBuilderStub(session); var transaction = S <ITransaction>(); session.Stub(s => s.Transaction).Return(transaction); session.Stub(s => s.BeginTransaction()).Return(transaction); var uow = new UnitOfWork(sessionSource); typeof(InvalidOperationException).ShouldBeThrownBy(uow.Commit); }
public void Should_start_a_new_transaction_when_begun() { var session = S <ISession>(); var sessionSource = new SessionBuilderStub(session); var transaction = S <ITransaction>(); session.Stub(s => s.Transaction).Return(transaction); session.Stub(s => s.BeginTransaction()).Return(transaction); var uow = new UnitOfWork(sessionSource); uow.Begin(); session.AssertWasCalled(s => s.BeginTransaction()); }
public void Should_populate_current_session_when_begun() { var session = S <ISession>(); var sessionSource = new SessionBuilderStub(session); session.Stub(s => s.Transaction).Return(S <ITransaction>()); session.Stub(s => s.BeginTransaction()).Return(S <ITransaction>()); var uow = new UnitOfWork(sessionSource); uow.Begin(); uow.GetSession().ShouldEqual(session); }
public void Should_dispose_twice_without_problems() { var session = S <ISession>(); var sessionSource = new SessionBuilderStub(session); var transaction = S <ITransaction>(); session.Stub(s => s.Transaction).Return(transaction); session.Stub(s => s.BeginTransaction()).Return(transaction); var uow = new UnitOfWork(sessionSource); uow.Begin(); uow.Dispose(); typeof(Exception).ShouldNotBeThrownBy(uow.Dispose); }
public void Should_dispose_transaction_and_session_when_disposing() { var session = S <ISession>(); var sessionSource = new SessionBuilderStub(session); var transaction = S <ITransaction>(); session.Stub(s => s.Transaction).Return(transaction); session.Stub(s => s.BeginTransaction()).Return(transaction); var uow = new UnitOfWork(sessionSource); uow.Begin(); uow.Dispose(); session.AssertWasCalled(s => s.Dispose()); }
public void Should_rollback_the_transaction_when_rolling_back() { var session = S <ISession>(); var sessionSource = new SessionBuilderStub(session); var transaction = S <ITransaction>(); session.Stub(s => s.Transaction).Return(transaction); session.Stub(s => s.BeginTransaction()).Return(transaction); transaction.Stub(t => t.IsActive).Return(true); var uow = new UnitOfWork(sessionSource); uow.Begin(); uow.RollBack(); transaction.AssertWasCalled(t => t.Rollback()); }
public void Should_commit_the_begun_transaction_when_committing() { var session = S <ISession>(); var sessionSource = new SessionBuilderStub(session); var transaction = S <ITransaction>(); session.Stub(s => s.Transaction).Return(transaction); session.Stub(s => s.BeginTransaction()).Return(transaction); transaction.Stub(t => t.IsActive).Return(true); var uow = new UnitOfWork(sessionSource); uow.Begin(); uow.Commit(); transaction.AssertWasCalled(t => t.Commit()); }