From: <fab...@us...> - 2011-04-08 05:00:35
|
Revision: 5635 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=5635&view=rev Author: fabiomaulo Date: 2011-04-08 05:00:29 +0000 (Fri, 08 Apr 2011) Log Message: ----------- Fix NH-2627 Modified Paths: -------------- trunk/nhibernate/src/NHibernate/Impl/CriteriaImpl.cs trunk/nhibernate/src/NHibernate.Test/Criteria/CriteriaQueryTest.cs Modified: trunk/nhibernate/src/NHibernate/Impl/CriteriaImpl.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Impl/CriteriaImpl.cs 2011-04-07 23:21:21 UTC (rev 5634) +++ trunk/nhibernate/src/NHibernate/Impl/CriteriaImpl.cs 2011-04-08 05:00:29 UTC (rev 5635) @@ -588,7 +588,7 @@ "Could not find parent for subcriteria in the previous subcriteria. If you see this error, it is a bug"); } Subcriteria clonedSubCriteria = - new Subcriteria(clone, currentParent, subcriteria.Path, subcriteria.Alias, subcriteria.JoinType); + new Subcriteria(clone, currentParent, subcriteria.Path, subcriteria.Alias, subcriteria.JoinType, subcriteria.WithClause); clonedSubCriteria.SetLockMode(subcriteria.LockMode); newParents[subcriteria] = clonedSubCriteria; } Modified: trunk/nhibernate/src/NHibernate.Test/Criteria/CriteriaQueryTest.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/Criteria/CriteriaQueryTest.cs 2011-04-07 23:21:21 UTC (rev 5634) +++ trunk/nhibernate/src/NHibernate.Test/Criteria/CriteriaQueryTest.cs 2011-04-08 05:00:29 UTC (rev 5635) @@ -2890,6 +2890,31 @@ Assert.IsNull(result[1]); Assert.IsNull(result[2]); } + + // test != on one existing value (using clone) + var criteria = session.CreateCriteria<Student>() + .CreateAlias("PreferredCourse", "pc", JoinType.LeftOuterJoin, + Restrictions.Not(Restrictions.Eq("pc.CourseCode", "HIB-A"))) + .SetProjection(Property.ForName("pc.CourseCode")) + .AddOrder(Order.Asc("pc.CourseCode")); + var clonedCriteria = CriteriaTransformer.Clone(criteria); + result = clonedCriteria.List<string>(); + + Assert.AreEqual(3, result.Count); + + // can't be sure of NULL comparison ordering aside from they should + // either come first or last + if (result[0] == null) + { + Assert.IsNull(result[1]); + Assert.AreEqual("HIB-B", result[2]); + } + else + { + Assert.AreEqual("HIB-B", result[0]); + Assert.IsNull(result[1]); + Assert.IsNull(result[2]); + } session.Delete(gavin); session.Delete(leonardo); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |