コード例 #1
0
        public void VerifyGetNewestTransactionReturnsNewestTransaction()
        {
            var level0transaction    = new EsentTransaction(this.session, "test", null);
            var innerTransaction     = new EsentTransaction(this.session, "test", level0transaction);
            var innermostTransaction = new EsentTransaction(this.session, "test", innerTransaction);

            Assert.AreEqual(innermostTransaction, level0transaction.GetNewestTransaction());
        }
コード例 #2
0
        public void VerifyRollbackUndoesChanges()
        {
            Transaction transaction = new EsentTransaction(this.session, "test", null);

            this.InsertRecord(1);
            transaction.Rollback();

            Assert.IsFalse(this.ContainsRecord(1));
        }
コード例 #3
0
        public void VerifyCommitPersistsChanges()
        {
            Transaction transaction = new EsentTransaction(this.session, "test", null);

            this.InsertRecord(1);
            transaction.Commit();

            Assert.IsTrue(this.ContainsRecord(1));
        }
コード例 #4
0
        public void VerifyRolledBackEventIsCalledOnRollback()
        {
            bool eventCalled = false;

            Transaction transaction = new EsentTransaction(this.session, "test", null);

            transaction.RolledBack += () => eventCalled = true;
            transaction.Rollback();

            Assert.IsTrue(eventCalled);
        }
コード例 #5
0
        public void VerifyCommittedEventIsCalledOnCommit()
        {
            bool eventCalled = false;

            Transaction transaction = new EsentTransaction(this.session, "test", null);

            transaction.Committed += () => eventCalled = true;
            transaction.Commit();

            Assert.IsTrue(eventCalled);
        }
コード例 #6
0
        public void VerifyCommitThenRollbackUndoesChanges()
        {
            var         outerTransaction = new EsentTransaction(this.session, "test", null);
            Transaction innerTransaction = new EsentTransaction(this.session, "test", outerTransaction);

            this.InsertRecord(1);
            innerTransaction.Commit();
            Assert.IsTrue(this.ContainsRecord(1));

            outerTransaction.Rollback();
            Assert.IsFalse(this.ContainsRecord(1));
        }
コード例 #7
0
        public void VerifyRollbackOfOuterTransactionRollsbackInnerTransaction()
        {
            bool eventCalled = false;

            var         outerTransaction = new EsentTransaction(this.session, "test", null);
            Transaction innerTransaction = new EsentTransaction(this.session, "test", outerTransaction);

            innerTransaction.RolledBack += () => eventCalled = true;
            outerTransaction.Rollback();

            Assert.IsTrue(eventCalled);
        }
コード例 #8
0
        public void VerifyCommitOfOuterTransactionCommitsInnerTransaction()
        {
            bool eventCalled = false;

            var         outerTransaction = new EsentTransaction(this.session, "test", null);
            Transaction innerTransaction = new EsentTransaction(this.session, "test", outerTransaction);

            innerTransaction.Committed += () => eventCalled = true;
            outerTransaction.Commit();

            Assert.IsTrue(eventCalled);
        }
コード例 #9
0
        public void VerifyRolledBackEventMigratesToOuterTransactionOnCommit()
        {
            bool eventCalled = false;

            var         outerTransaction = new EsentTransaction(this.session, "test", null);
            Transaction innerTransaction = new EsentTransaction(this.session, "test", outerTransaction);

            innerTransaction.RolledBack += () => eventCalled = true;
            innerTransaction.Commit();
            outerTransaction.Rollback();

            Assert.IsTrue(eventCalled);
        }
コード例 #10
0
        public void VerifyGetNewestTransactionReturnsCurrentTransactionIfNoSubtransactions()
        {
            var transaction = new EsentTransaction(this.session, "test", null);

            Assert.AreEqual(transaction, transaction.GetNewestTransaction());
        }