public void IsInTransaction_Should_Return_False_When_No_Transaction_Has_Been_Started() { var mockContainer = MockRepository.GenerateStub <IObjectContainer>(); var unitOfWork = new Db4oUnitOfWork(mockContainer); Assert.That(!unitOfWork.IsInTransaction); }
public void IsInTransaction_Should_Return_False_When_No_Transaction_Has_Been_Started() { var mockContainer = MockRepository.GenerateStub<IObjectContainer>(); var unitOfWork = new Db4oUnitOfWork(mockContainer); Assert.That(!unitOfWork.IsInTransaction); }
public void Flush_Performs_A_Transactional_Commit_When_No_Transaction_Has_Started() { var mockContainer = MockRepository.GenerateMock<IObjectContainer>(); var unitOfWork = new Db4oUnitOfWork(mockContainer); unitOfWork.Flush(); mockContainer.AssertWasCalled(x => x.Commit()); mockContainer.VerifyAllExpectations(); }
public void BeginTransaction_Throws_InvalidOperationException_When_Transaction_Already_Running() { var mockContainer = MockRepository.GenerateStub<IObjectContainer>(); var unitOfWork = new Db4oUnitOfWork(mockContainer); unitOfWork.BeginTransaction(); Assert.That(unitOfWork.IsInTransaction); Assert.Throws<InvalidOperationException>(() => unitOfWork.BeginTransaction()); }
public void TransactionalFlush_Starts_A_Transaction_With_Default_Isolation_And_Commits_When_Flush_Succeeds() { var mockContainer = MockRepository.GenerateMock <IObjectContainer>(); var unitOfWork = new Db4oUnitOfWork(mockContainer); unitOfWork.TransactionalFlush(); mockContainer.AssertWasCalled(x => x.Commit()); mockContainer.VerifyAllExpectations(); }
public void Flush_Performs_A_Transactional_Commit_When_No_Transaction_Has_Started() { var mockContainer = MockRepository.GenerateMock <IObjectContainer>(); var unitOfWork = new Db4oUnitOfWork(mockContainer); unitOfWork.Flush(); mockContainer.AssertWasCalled(x => x.Commit()); mockContainer.VerifyAllExpectations(); }
public void TransactionalFlush_Rollsback_Transaction_When_Flush_Throws_Exception() { var mockContainer = MockRepository.GenerateMock<IObjectContainer>(); mockContainer.Expect(x => x.Commit()) .Throw(new ApplicationException()); var unitOfWork = new Db4oUnitOfWork(mockContainer); Assert.Throws<ApplicationException>(unitOfWork.TransactionalFlush); mockContainer.AssertWasCalled(x => x.Rollback()); mockContainer.VerifyAllExpectations(); }
public void Flush_Does_Nothing_When_A_TransactionHas_Already_Been_Started() { var mockContainer = MockRepository.GenerateMock<IObjectContainer>(); var unitOfWork = new Db4oUnitOfWork(mockContainer); unitOfWork.BeginTransaction(); unitOfWork.Flush(); mockContainer.AssertWasNotCalled(x => x.Commit()); mockContainer.AssertWasNotCalled(x => x.Rollback()); mockContainer.VerifyAllExpectations(); }
public void Begin_Transaction_Should_Start_A_New_Transaction_With_Default_IsolationLevel() { var mockContainer = MockRepository.GenerateMock<IObjectContainer>(); var unitOfWork = new Db4oUnitOfWork(mockContainer); var transaction = unitOfWork.BeginTransaction(); Assert.That(unitOfWork.IsInTransaction); Assert.That(transaction, Is.Not.Null); mockContainer.VerifyAllExpectations(); }
public void BeginTransaction_Throws_InvalidOperationException_When_Transaction_Already_Running() { var mockContainer = MockRepository.GenerateStub <IObjectContainer>(); var unitOfWork = new Db4oUnitOfWork(mockContainer); unitOfWork.BeginTransaction(); Assert.That(unitOfWork.IsInTransaction); Assert.Throws <InvalidOperationException>(() => unitOfWork.BeginTransaction()); }
public void Begin_Transaction_Should_Start_A_New_Transaction_With_Default_IsolationLevel() { var mockContainer = MockRepository.GenerateMock <IObjectContainer>(); var unitOfWork = new Db4oUnitOfWork(mockContainer); var transaction = unitOfWork.BeginTransaction(); Assert.That(unitOfWork.IsInTransaction); Assert.That(transaction, Is.Not.Null); mockContainer.VerifyAllExpectations(); }
public void Flush_Does_Nothing_When_A_TransactionHas_Already_Been_Started() { var mockContainer = MockRepository.GenerateMock <IObjectContainer>(); var unitOfWork = new Db4oUnitOfWork(mockContainer); unitOfWork.BeginTransaction(); unitOfWork.Flush(); mockContainer.AssertWasNotCalled(x => x.Commit()); mockContainer.AssertWasNotCalled(x => x.Rollback()); mockContainer.VerifyAllExpectations(); }
public void TransactionalFlush_Rollsback_Transaction_When_Flush_Throws_Exception() { var mockContainer = MockRepository.GenerateMock <IObjectContainer>(); mockContainer.Expect(x => x.Commit()) .Throw(new ApplicationException()); var unitOfWork = new Db4oUnitOfWork(mockContainer); Assert.Throws <ApplicationException>(unitOfWork.TransactionalFlush); mockContainer.AssertWasCalled(x => x.Rollback()); mockContainer.VerifyAllExpectations(); }
public void TestConcurrentUnitsOfWork() { Db4oUnitOfWork unitOfWork1 = null; Db4oUnitOfWork unitOfWork2 = null; Db4oUnitOfWork unitOfWork3 = null; IObjectContainer session1 = null; IObjectContainer session2 = null; IObjectContainer session3 = null; var thread1 = new Thread(() => { unitOfWork1 = BoC.UnitOfWork.UnitOfWork.BeginUnitOfWork() as Db4oUnitOfWork; session1 = unitOfWork1.Session; }); thread1.Start(); thread1.Join(); var thread2 = new Thread(() => { unitOfWork2 = BoC.UnitOfWork.UnitOfWork.BeginUnitOfWork() as Db4oUnitOfWork; session2 = unitOfWork2.Session; }); thread2.Start(); thread2.Join(); var thread3 = new Thread(() => { unitOfWork3 = BoC.UnitOfWork.UnitOfWork.BeginUnitOfWork() as Db4oUnitOfWork; session3 = unitOfWork3.Session; }); thread3.Start(); thread3.Join(); Assert.NotSame(session1, session2); Assert.NotSame(session2, session3); Assert.NotSame(session1, session3); }
public void TransactionalFlush_Starts_A_Transaction_With_Default_Isolation_And_Commits_When_Flush_Succeeds() { var mockContainer = MockRepository.GenerateMock<IObjectContainer>(); var unitOfWork = new Db4oUnitOfWork(mockContainer); unitOfWork.TransactionalFlush(); mockContainer.AssertWasCalled(x => x.Commit()); mockContainer.VerifyAllExpectations(); }