コード例 #1
0
ファイル: Db4oUnitOfWorkTests.cs プロジェクト: zlobur/ncommon
        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);
        }
コード例 #2
0
        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);
        }
コード例 #3
0
 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();
 }
コード例 #4
0
        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());
        }
コード例 #5
0
ファイル: Db4oUnitOfWorkTests.cs プロジェクト: zlobur/ncommon
        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();
        }
コード例 #6
0
ファイル: Db4oUnitOfWorkTests.cs プロジェクト: zlobur/ncommon
        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();
        }
コード例 #7
0
 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();
 }
コード例 #8
0
 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();
 }
コード例 #9
0
        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();
        }
コード例 #10
0
ファイル: Db4oUnitOfWorkTests.cs プロジェクト: zlobur/ncommon
        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());
        }
コード例 #11
0
ファイル: Db4oUnitOfWorkTests.cs プロジェクト: zlobur/ncommon
        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();
        }
コード例 #12
0
ファイル: Db4oUnitOfWorkTests.cs プロジェクト: zlobur/ncommon
        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();
        }
コード例 #13
0
ファイル: Db4oUnitOfWorkTests.cs プロジェクト: zlobur/ncommon
        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();
        }
コード例 #14
0
ファイル: Db4oUnitOfWorkFixture.cs プロジェクト: masums/BoC
        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);
        }
コード例 #15
0
 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();
 }