|
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.
|