コード例 #1
0
ファイル: Fixture.cs プロジェクト: halllo/nhibernate-core
		public void ExceptionsInBeforeTransactionCompletionAreIgnored()
		{
			Assert.IsTrue(sessions.Settings.IsInterceptorsBeforeTransactionCompletionIgnoreExceptions);

			C c = new C();
			c.ID = 1;
			c.Value = "value";

			var sessionInterceptor = new SessionInterceptorThatThrowsExceptionAtBeforeTransactionCompletion();
			using (ISession s = sessions.OpenSession(sessionInterceptor))
			using (ITransaction t = s.BeginTransaction())
			{
				s.Save(c);
				try
				{
					t.Commit();
				}
				catch (BadException)
				{
					Assert.Fail("BadException not expected");
				}
			}

			using (ISession s = sessions.OpenSession())
			{
				var objectInDb = s.Get<C>(1);

				Assert.IsNotNull(objectInDb);

				s.Delete(objectInDb);
				s.Flush();
			}
		}
コード例 #2
0
ファイル: Fixture.cs プロジェクト: tianyawy/nhibernate-core
        public void ExceptionsInBeforeTransactionCompletionAreIgnored()
        {
            Assert.IsTrue(sessions.Settings.IsInterceptorsBeforeTransactionCompletionIgnoreExceptionsEnabled);

            var c = new C {
                ID = 1, Value = "value"
            };

            var sessionInterceptor = new SessionInterceptorThatThrowsExceptionAtBeforeTransactionCompletion();

            using (ISession s = sessions.OpenSession(sessionInterceptor))
                using (ITransaction t = s.BeginTransaction())
                {
                    s.Save(c);

                    Assert.DoesNotThrow(t.Commit);
                }

            using (ISession s = sessions.OpenSession())
            {
                var objectInDb = s.Get <C>(1);

                Assert.IsNotNull(objectInDb);

                s.Delete(objectInDb);
                s.Flush();
            }
        }
コード例 #3
0
ファイル: Fixture.cs プロジェクト: tianyawy/nhibernate-core
        public void ExceptionsInBeforeTransactionCompletionAbortTransaction()
        {
#pragma warning disable 618
            Assert.IsFalse(sessions.Settings.IsInterceptorsBeforeTransactionCompletionIgnoreExceptionsEnabled);
#pragma warning restore 618

            var c = new C {
                ID = 1, Value = "value"
            };

            var sessionInterceptor = new SessionInterceptorThatThrowsExceptionAtBeforeTransactionCompletion();
            using (ISession s = sessions.OpenSession(sessionInterceptor))
                using (ITransaction t = s.BeginTransaction())
                {
                    s.Save(c);

                    Assert.Throws <BadException>(t.Commit);
                }

            using (ISession s = sessions.OpenSession())
            {
                var objectInDb = s.Get <C>(1);
                Assert.IsNull(objectInDb);
            }
        }
コード例 #4
0
        public async Task ExceptionsInBeforeTransactionCompletionAbortTransactionAsync()
        {
            var c = new C {
                ID = 1, Value = "value"
            };

            var sessionInterceptor = new SessionInterceptorThatThrowsExceptionAtBeforeTransactionCompletion();

            using (var s = Sfi.WithOptions().Interceptor(sessionInterceptor).OpenSession())
                using (var t = s.BeginTransaction())
                {
                    await(s.SaveAsync(c));

                    Assert.ThrowsAsync <BadException>(() => t.CommitAsync());
                }

            using (ISession s = Sfi.OpenSession())
            {
                var objectInDb = await(s.GetAsync <C>(1));
                Assert.IsNull(objectInDb);
            }
        }
コード例 #5
0
ファイル: Fixture.cs プロジェクト: sp0x/nhibernate-core
        public void ExceptionsInBeforeTransactionCompletionAbortTransaction()
        {
            var c = new C {
                ID = 1, Value = "value"
            };

            var sessionInterceptor = new SessionInterceptorThatThrowsExceptionAtBeforeTransactionCompletion();

            using (var s = sessions.WithOptions().Interceptor(sessionInterceptor).OpenSession())
                using (var t = s.BeginTransaction())
                {
                    s.Save(c);

                    Assert.Throws <BadException>(t.Commit);
                }

            using (ISession s = sessions.OpenSession())
            {
                var objectInDb = s.Get <C>(1);
                Assert.IsNull(objectInDb);
            }
        }
コード例 #6
0
ファイル: Fixture.cs プロジェクト: NikGovorov/nhibernate-core
		public void ExceptionsInBeforeTransactionCompletionAbortTransaction()
		{
#pragma warning disable 618
			Assert.IsFalse(sessions.Settings.IsInterceptorsBeforeTransactionCompletionIgnoreExceptionsEnabled);
#pragma warning restore 618

			var c = new C {ID = 1, Value = "value"};

			var sessionInterceptor = new SessionInterceptorThatThrowsExceptionAtBeforeTransactionCompletion();
			using (ISession s = sessions.OpenSession(sessionInterceptor))
			using (ITransaction t = s.BeginTransaction())
			{
				s.Save(c);

				Assert.Throws<BadException>(t.Commit);
			}

			using (ISession s = sessions.OpenSession())
			{
				var objectInDb = s.Get<C>(1);
				Assert.IsNull(objectInDb);
			}
		}
コード例 #7
0
ファイル: Fixture.cs プロジェクト: NikGovorov/nhibernate-core
		public void ExceptionsInBeforeTransactionCompletionAreIgnored()
		{
			Assert.IsTrue(sessions.Settings.IsInterceptorsBeforeTransactionCompletionIgnoreExceptionsEnabled);

			var c = new C {ID = 1, Value = "value"};

			var sessionInterceptor = new SessionInterceptorThatThrowsExceptionAtBeforeTransactionCompletion();
			using (ISession s = sessions.OpenSession(sessionInterceptor))
			using (ITransaction t = s.BeginTransaction())
			{
				s.Save(c);

				Assert.DoesNotThrow(t.Commit);
			}

			using (ISession s = sessions.OpenSession())
			{
				var objectInDb = s.Get<C>(1);

				Assert.IsNotNull(objectInDb);

				s.Delete(objectInDb);
				s.Flush();
			}
		}