コード例 #1
0
        private void ErrorOnCommit()
        {
            ClearEvents();

            throwExceptionOnCommit = true;

            var transactionScope = Session.Demand().OpenTransaction();

            Assert.IsNotNull(transactionOpenArgs);
            Assert.AreSame(Transaction.Current, transactionOpenArgs.Transaction);

            var megaEntity = new MegaEntity {
                Value = 1
            };

            transactionScope.Complete();
            AssertEx.Throws <TestException>(transactionScope.Dispose);

            Assert.IsNotNull(transactionRollbackingArgs);
            Assert.IsNotNull(transactionRollbackedArgs);
            Assert.IsNotNull(transactionCommitingArgs);
            Assert.IsNotNull(persistingArgs);
            Assert.IsNotNull(persistedArgs);
            Assert.IsNull(transactionCommitedArgs);
        }
コード例 #2
0
        public void EditEntityTest()
        {
            using (var session = Domain.OpenSession())
                using (var eventInfo = new EventInfo(session)) {
                    using (var transactionScope = session.OpenTransaction()) {
                        var entity = new MegaEntity();
                        Assert.IsNotNull(eventInfo.EntityCreatedArgs);
                        Assert.AreEqual(entity, eventInfo.EntityCreatedArgs.Entity);

                        eventInfo.ResetEventArgs();

                        entity.Value = 2;

                        Assert.IsNotNull(eventInfo.EntityFieldValueSettingArgs);
                        Assert.AreEqual(entity, eventInfo.EntityFieldValueSettingArgs.Entity);
                        Assert.AreEqual(2, eventInfo.EntityFieldValueSettingArgs.Value);

                        Assert.IsNotNull(eventInfo.EntityFieldValueSetArgs);
                        Assert.AreEqual(entity, eventInfo.EntityFieldValueSetArgs.Entity);
                        Assert.AreEqual(0, eventInfo.EntityFieldValueSetArgs.OldValue);
                        Assert.AreEqual(2, eventInfo.EntityFieldValueSetArgs.NewValue);

                        eventInfo.ResetEventArgs();

                        int value = entity.Value;

                        Assert.IsNull(eventInfo.EntityFieldValueSettingArgs);
                        Assert.IsNull(eventInfo.EntityFieldValueSetArgs);

                        Assert.IsNotNull(eventInfo.EntityFieldGettingArgs);
                        Assert.AreEqual(entity, eventInfo.EntityFieldGettingArgs.Entity);
                        Assert.IsNotNull(eventInfo.EntityFieldValueGetArgs);
                        Assert.AreEqual(entity, eventInfo.EntityFieldValueGetArgs.Entity);
                        Assert.AreEqual(2, eventInfo.EntityFieldValueGetArgs.Value);

                        eventInfo.ResetEventArgs();

                        entity.Remove();
                        Assert.IsNotNull(eventInfo.EntityRemoving);
                        Assert.AreEqual(entity, eventInfo.EntityRemoving.Entity);
                        Assert.IsNotNull(eventInfo.EntityRemoved);
                        Assert.AreEqual(entity, eventInfo.EntityRemoved.Entity);
                    }
                }
        }
コード例 #3
0
        private void EditEntity()
        {
            using (var transactionScope = Session.Demand().OpenTransaction()) {
                ClearEvents();

                var entity = new MegaEntity();
                Assert.IsNotNull(entityCreatedArgs);
                Assert.AreEqual(entity, entityCreatedArgs.Entity);

                ClearEvents();

                entity.Value = 2;

                Assert.IsNotNull(entityEntityFieldSettingArgs);
                Assert.AreEqual(entity, entityEntityFieldSettingArgs.Entity);
                Assert.AreEqual(2, entityEntityFieldSettingArgs.Value);

                Assert.IsNotNull(entityEntityFieldSetArgs);
                Assert.AreEqual(entity, entityEntityFieldSetArgs.Entity);
                Assert.AreEqual(0, entityEntityFieldSetArgs.OldValue);
                Assert.AreEqual(2, entityEntityFieldSetArgs.NewValue);

                ClearEvents();

                int value = entity.Value;

                Assert.IsNull(entityEntityFieldSettingArgs);
                Assert.IsNull(entityEntityFieldSetArgs);

                Assert.IsNotNull(entityEntityFieldGettingArgs);
                Assert.AreEqual(entity, entityEntityFieldGettingArgs.Entity);
                Assert.IsNotNull(entityEntityFieldArgs);
                Assert.AreEqual(entity, entityEntityFieldArgs.Entity);
                Assert.AreEqual(2, entityEntityFieldArgs.Value);

                ClearEvents();

                entity.Remove();
                Assert.IsNotNull(entityRemoving);
                Assert.AreEqual(entity, entityRemoving.Entity);
                Assert.IsNotNull(entityRemoved);
                Assert.AreEqual(entity, entityRemoved.Entity);
            }
        }
コード例 #4
0
        private void RollbackTransaction()
        {
            ClearEvents();

            using (var transactionScope = Session.Demand().OpenTransaction()) {
                Assert.IsNotNull(transactionOpenArgs);
                Assert.AreSame(Transaction.Current, transactionOpenArgs.Transaction);

                var megaEntity = new MegaEntity {
                    Value = 1
                };
            }
            Assert.IsNotNull(transactionRollbackingArgs);
            Assert.IsNotNull(transactionRollbackedArgs);
            Assert.IsNull(persistingArgs);
            Assert.IsNull(persistedArgs);
            Assert.IsNull(transactionCommitingArgs);
            Assert.IsNull(transactionCommitedArgs);
        }
コード例 #5
0
        public void RollbackTransactionTest()
        {
            using (var session = Domain.OpenSession())
                using (var eventInfo = new EventInfo(session)) {
                    using (var transactionScope = session.OpenTransaction()) {
                        Assert.IsNotNull(eventInfo.TransactionOpenArgs);
                        Assert.AreSame(Transaction.Current, eventInfo.TransactionOpenArgs.Transaction);

                        var megaEntity = new MegaEntity {
                            Value = 1
                        };
                    }
                    Assert.IsNotNull(eventInfo.TransactionRollbackingArgs);
                    Assert.IsNotNull(eventInfo.TransactionRollbackedArgs);
                    Assert.IsNull(eventInfo.PersistingArgs);
                    Assert.IsNull(eventInfo.PersistedArgs);
                    Assert.IsNull(eventInfo.TransactionPrecommitingArgs);
                    Assert.IsNull(eventInfo.TransactionCommitingArgs);
                    Assert.IsNull(eventInfo.TransactionCommitedArgs);
                }
        }
コード例 #6
0
        public void CancelChangesTest()
        {
            using (var session = Domain.OpenSession())
                using (var eventInfo = new EventInfo(session)) {
                    using (var transactionScope = session.OpenTransaction()) {
                        var megaEntity = new MegaEntity {
                            Value = 1
                        };

                        session.CancelChanges();
                    }

                    Assert.IsNotNull(eventInfo.TransactionRollbackingArgs);
                    Assert.IsNotNull(eventInfo.TransactionRollbackedArgs);
                    Assert.IsNotNull(eventInfo.ChangesCancelingArgs);
                    Assert.IsNotNull(eventInfo.ChangesCanceledArgs);
                    Assert.IsNull(eventInfo.PersistingArgs);
                    Assert.IsNull(eventInfo.PersistedArgs);
                    Assert.IsNull(eventInfo.TransactionCommitingArgs);
                    Assert.IsNull(eventInfo.TransactionCommitedArgs);
                }
        }
コード例 #7
0
        private void CancelChanges()
        {
            var session = Session.Demand();

            using (var transactionScope = session.OpenTransaction()) {
                ClearEvents();

                var megaEntity = new MegaEntity {
                    Value = 1
                };

                session.CancelChanges();
            }

            Assert.IsNotNull(transactionRollbackingArgs);
            Assert.IsNotNull(transactionRollbackedArgs);
            Assert.IsNotNull(changesCancelingArgs);
            Assert.IsNotNull(changesCanceledArgs);
            Assert.IsNull(persistingArgs);
            Assert.IsNull(persistedArgs);
            Assert.IsNull(transactionCommitingArgs);
            Assert.IsNull(transactionCommitedArgs);
        }
コード例 #8
0
        public void ErrorOnCommitTest()
        {
            using (var session = Domain.OpenSession())
                using (var eventInfo = new EventInfo(session, true)) {
                    var transactionScope = session.OpenTransaction();
                    Assert.IsNotNull(eventInfo.TransactionOpenArgs);
                    Assert.AreSame(Transaction.Current, eventInfo.TransactionOpenArgs.Transaction);

                    var megaEntity = new MegaEntity {
                        Value = 1
                    };

                    transactionScope.Complete();
                    AssertEx.Throws <TestException>(transactionScope.Dispose);

                    Assert.IsNotNull(eventInfo.TransactionRollbackingArgs);
                    Assert.IsNotNull(eventInfo.TransactionRollbackedArgs);
                    Assert.IsNotNull(eventInfo.TransactionPrecommitingArgs);
                    Assert.IsNotNull(eventInfo.TransactionCommitingArgs);
                    Assert.IsNotNull(eventInfo.PersistingArgs);
                    Assert.IsNotNull(eventInfo.PersistedArgs);
                    Assert.IsNull(eventInfo.TransactionCommitedArgs);
                }
        }