From: <fab...@us...> - 2009-05-04 23:03:30
|
Revision: 4237 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=4237&view=rev Author: fabiomaulo Date: 2009-05-04 23:03:21 +0000 (Mon, 04 May 2009) Log Message: ----------- Continue porting HQL executable (delete tests with joined table) Modified Paths: -------------- trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Tree/ASTNode.cs trunk/nhibernate/src/NHibernate.Test/HQL/Ast/BulkManipulation.cs Modified: trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Tree/ASTNode.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Tree/ASTNode.cs 2009-05-04 22:45:13 UTC (rev 4236) +++ trunk/nhibernate/src/NHibernate/Hql/Ast/ANTLR/Tree/ASTNode.cs 2009-05-04 23:03:21 UTC (rev 4237) @@ -280,7 +280,14 @@ public void SetFirstChild(IASTNode newChild) { - SetChild(0, newChild); + if (_children == null || _children.Count == 0) + { + AddChild(newChild); + } + else + { + _children[0] = newChild; + } } public void SetChild(int index, IASTNode newChild) Modified: trunk/nhibernate/src/NHibernate.Test/HQL/Ast/BulkManipulation.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/HQL/Ast/BulkManipulation.cs 2009-05-04 22:45:13 UTC (rev 4236) +++ trunk/nhibernate/src/NHibernate.Test/HQL/Ast/BulkManipulation.cs 2009-05-04 23:03:21 UTC (rev 4237) @@ -34,6 +34,30 @@ #endregion [Test] + public void DeleteOnJoinedSubclass() + { + var data = new TestData(this); + data.Prepare(); + + ISession s = OpenSession(); + ITransaction t = s.BeginTransaction(); + + int count = s.CreateQuery("delete Mammal where bodyWeight > 150").ExecuteUpdate(); + Assert.That(count, Is.EqualTo(1), "Incorrect deletion count on joined subclass"); + + count = s.CreateQuery("delete Mammal").ExecuteUpdate(); + Assert.That(count, Is.EqualTo(1), "Incorrect deletion count on joined subclass"); + + count = s.CreateQuery("delete SubMulti").ExecuteUpdate(); + Assert.That(count, Is.EqualTo(0), "Incorrect deletion count on joined subclass"); + + t.Commit(); + s.Close(); + + data.Cleanup(); + } + + [Test] public void DeleteOnMappedJoin() { var data = new TestData(this); @@ -44,7 +68,7 @@ int count = s.CreateQuery("delete Joiner where joinedName = :joinedName") .SetString("joinedName", "joined-name").ExecuteUpdate(); - Assert.That(count, Is.EqualTo(1), "Incorrect deletion count on joined subclass"); + Assert.That(count, Is.EqualTo(1), "Incorrect deletion count on joined class"); t.Commit(); s.Close(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |