From: <fab...@us...> - 2009-05-04 23:18:18
|
Revision: 4239 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=4239&view=rev Author: fabiomaulo Date: 2009-05-04 23:18:12 +0000 (Mon, 04 May 2009) Log Message: ----------- Continue porting HQL executable (delete tests) Modified Paths: -------------- trunk/nhibernate/src/NHibernate.Test/HQL/Ast/BulkManipulation.cs Modified: trunk/nhibernate/src/NHibernate.Test/HQL/Ast/BulkManipulation.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/HQL/Ast/BulkManipulation.cs 2009-05-04 23:06:06 UTC (rev 4238) +++ trunk/nhibernate/src/NHibernate.Test/HQL/Ast/BulkManipulation.cs 2009-05-04 23:18:12 UTC (rev 4239) @@ -1,3 +1,5 @@ +using System.Collections; +using System.Diagnostics; using NUnit.Framework; using NHibernate.Hql.Ast.ANTLR; @@ -32,7 +34,51 @@ } #endregion + [Test] + public void SimpleDeleteOnAnimal() + { + if (Dialect.HasSelfReferentialForeignKeyBug) + { + Assert.Ignore("self referential FK bug", "HQL delete testing"); + return; + } + + var data = new TestData(this); + data.Prepare(); + + ISession s = OpenSession(); + ITransaction t = s.BeginTransaction(); + + int count = s.CreateQuery("delete from Animal as a where a.id = :id") + .SetInt64("id", data.Polliwog.Id) + .ExecuteUpdate(); + Assert.That(count, Is.EqualTo(1), "Incorrect delete count"); + + count = s.CreateQuery("delete Animal where id = :id") + .SetInt64("id", data.Catepillar.Id) + .ExecuteUpdate(); + Assert.That(count, Is.EqualTo(1), "Incorrect delete count"); + + // HHH-873... + if (Dialect.SupportsSubqueryOnMutatingTable) + { + count = s.CreateQuery("delete from User u where u not in (select u from User u)").ExecuteUpdate(); + Assert.That(count, Is.EqualTo(0)); + } + + count = s.CreateQuery("delete Animal a").ExecuteUpdate(); + Assert.That(count, Is.EqualTo(4), "Incorrect delete count"); + + IList list = s.CreateQuery("select a from Animal as a").List(); + Assert.That(list, Is.Empty, "table not empty"); + + t.Commit(); + s.Close(); + data.Cleanup(); + } + + [Test] public void DeleteOnDiscriminatorSubclass() { var data = new TestData(this); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |