|
From: <Ric...@us...> - 2009-06-23 17:51:49
|
Revision: 4518
http://nhibernate.svn.sourceforge.net/nhibernate/?rev=4518&view=rev
Author: RicBrown
Date: 2009-06-23 17:51:48 +0000 (Tue, 23 Jun 2009)
Log Message:
-----------
Ported tests to check ICriteria comparison working OK.
Modified Paths:
--------------
trunk/nhibernate/src/NHibernate.Test/Criteria/Lambda/Model.cs
trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj
Added Paths:
-----------
trunk/nhibernate/src/NHibernate.Test/Criteria/Lambda/CriteriaAssertFixture.cs
Added: trunk/nhibernate/src/NHibernate.Test/Criteria/Lambda/CriteriaAssertFixture.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/Criteria/Lambda/CriteriaAssertFixture.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/Criteria/Lambda/CriteriaAssertFixture.cs 2009-06-23 17:51:48 UTC (rev 4518)
@@ -0,0 +1,242 @@
+
+using System;
+
+using NUnit.Framework;
+
+using NHibernate.Criterion;
+using NHibernate.SqlCommand;
+
+namespace NHibernate.Test.Criteria.Lambda
+{
+
+ [TestFixture]
+ public class CriteriaAssertFixture : LambdaFixtureBase
+ {
+
+ private void AssertCriteriaAreNotEqual(ICriteria expected, ICriteria actual)
+ {
+ try
+ {
+ AssertCriteriaAreEqual(expected, actual);
+ }
+ catch
+ {
+ return;
+ }
+ Assert.Fail("No exception thrown");
+ }
+
+ private void AssertCriteriaAreNotEqual(DetachedCriteria expected, DetachedCriteria actual)
+ {
+ try
+ {
+ AssertCriteriaAreEqual(expected, actual);
+ }
+ catch
+ {
+ return;
+ }
+ Assert.Fail("No exception thrown");
+ }
+
+ [Test]
+ public void DifferentTypes()
+ {
+ DetachedCriteria expected =
+ DetachedCriteria.For<Person>();
+
+ DetachedCriteria actual =
+ DetachedCriteria.For<Child>();
+
+ AssertCriteriaAreNotEqual(expected, actual);
+ }
+
+ [Test]
+ public void DifferentAliases()
+ {
+ DetachedCriteria expected =
+ DetachedCriteria.For<Person>("personAlias1");
+
+ DetachedCriteria actual =
+ DetachedCriteria.For<Person>("personAlias2");
+
+ AssertCriteriaAreNotEqual(expected, actual);
+ }
+
+ [Test]
+ public void DifferentOperators()
+ {
+ DetachedCriteria expected =
+ DetachedCriteria.For<Person>()
+ .Add(Expression.Eq("Property", "Value"));
+
+ DetachedCriteria actual =
+ DetachedCriteria.For<Person>()
+ .Add(Expression.Gt("Property", "Value"));
+
+ AssertCriteriaAreNotEqual(expected, actual);
+ }
+
+ [Test]
+ public void DifferentPaths()
+ {
+ DetachedCriteria expected =
+ DetachedCriteria.For<Person>()
+ .Add(Expression.Eq("a.b.Property1", "Value"));
+
+ DetachedCriteria actual =
+ DetachedCriteria.For<Person>()
+ .Add(Expression.Eq("a.b.Property2", "Value"));
+
+ AssertCriteriaAreNotEqual(expected, actual);
+ }
+
+ [Test]
+ public void DifferentValues()
+ {
+ DetachedCriteria expected =
+ DetachedCriteria.For<Person>()
+ .Add(Expression.Eq("Property", "Value1"));
+
+ DetachedCriteria actual =
+ DetachedCriteria.For<Person>()
+ .Add(Expression.Eq("Property", "Value2"));
+
+ AssertCriteriaAreNotEqual(expected, actual);
+ }
+
+ [Test]
+ public void DifferentNestedCriterion()
+ {
+ DetachedCriteria expected =
+ DetachedCriteria.For<Person>()
+ .Add(Expression.Not(Expression.Eq("Property", "Value")));
+
+ DetachedCriteria actual =
+ DetachedCriteria.For<Person>()
+ .Add(Expression.Not(Expression.Gt("Property", "Value")));
+
+ AssertCriteriaAreNotEqual(expected, actual);
+ }
+
+ [Test]
+ public void DifferentOrder()
+ {
+ DetachedCriteria expected =
+ DetachedCriteria.For<Person>()
+ .AddOrder(Order.Asc("name"));
+
+ DetachedCriteria actual =
+ DetachedCriteria.For<Person>()
+ .AddOrder(Order.Desc("name"));
+
+ AssertCriteriaAreNotEqual(expected, actual);
+ }
+
+ [Test]
+ public void DifferentSubCriteria()
+ {
+ DetachedCriteria expected =
+ DetachedCriteria.For<Person>()
+ .CreateCriteria("Child")
+ .Add(Expression.Eq("Name", "test"));
+
+ DetachedCriteria actual =
+ DetachedCriteria.For<Person>()
+ .CreateCriteria("Child")
+ .Add(Expression.Gt("Name", "test"));
+
+ AssertCriteriaAreNotEqual(expected, actual);
+ }
+
+ [Test]
+ public void DifferentJoinType()
+ {
+ DetachedCriteria expected =
+ DetachedCriteria.For<Person>()
+ .CreateCriteria("Child", JoinType.InnerJoin);
+
+ DetachedCriteria actual =
+ DetachedCriteria.For<Person>()
+ .CreateCriteria("Child", JoinType.LeftOuterJoin);
+
+ AssertCriteriaAreNotEqual(expected, actual);
+ }
+
+ [Test]
+ public void DifferentFetchMode()
+ {
+ DetachedCriteria expected =
+ DetachedCriteria.For<Person>()
+ .SetFetchMode("Father", FetchMode.Eager);
+
+ DetachedCriteria actual =
+ DetachedCriteria.For<Person>()
+ .SetFetchMode("Father", FetchMode.Lazy);
+
+ AssertCriteriaAreNotEqual(expected, actual);
+ }
+
+ [Test]
+ public void DifferentLockMode()
+ {
+ ICriteria expected =
+ CreateTestCriteria(typeof(Person))
+ .CreateAlias("Father", "fatherAlias")
+ .SetLockMode("fatherAlias", LockMode.Upgrade);
+
+ ICriteria actual =
+ CreateTestCriteria(typeof(Person))
+ .CreateAlias("Father", "fatherAlias")
+ .SetLockMode("fatherAlias", LockMode.Force);
+
+ AssertCriteriaAreNotEqual(expected, actual);
+ }
+
+ [Test]
+ public void DifferentProjections()
+ {
+ ICriteria expected =
+ CreateTestCriteria(typeof(Person))
+ .SetProjection(Projections.Avg("Age"));
+
+ ICriteria actual =
+ CreateTestCriteria(typeof(Person))
+ .SetProjection(Projections.Max("Age"));
+
+ AssertCriteriaAreNotEqual(expected, actual);
+ }
+
+ [Test]
+ public void DifferentPropertyName()
+ {
+ ICriteria expected =
+ CreateTestCriteria(typeof(Person))
+ .CreateAlias("Father", "fatherAlias")
+ .Add(Expression.GtProperty("Age1", "fatherAlias.Age"));
+
+ ICriteria actual =
+ CreateTestCriteria(typeof(Person))
+ .CreateAlias("Father", "fatherAlias")
+ .Add(Expression.GtProperty("Age2", "fatherAlias.Age"));
+
+ AssertCriteriaAreNotEqual(expected, actual);
+ }
+
+ [Test]
+ public void DifferentSubquery()
+ {
+ ICriteria expected =
+ CreateTestCriteria(typeof(Person))
+ .Add(Subqueries.PropertyIn("Name", DetachedCriteria.For<Person>().Add(Expression.Eq("Name", "subquery test"))));
+
+ ICriteria actual =
+ CreateTestCriteria(typeof(Person))
+ .Add(Subqueries.PropertyIn("Name", DetachedCriteria.For<Person>().Add(Expression.Eq("Name", "subqueryx test"))));
+
+ AssertCriteriaAreNotEqual(expected, actual);
+ }
+
+ }
+
+}
Modified: trunk/nhibernate/src/NHibernate.Test/Criteria/Lambda/Model.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/Criteria/Lambda/Model.cs 2009-06-23 17:33:55 UTC (rev 4517)
+++ trunk/nhibernate/src/NHibernate.Test/Criteria/Lambda/Model.cs 2009-06-23 17:51:48 UTC (rev 4518)
@@ -10,5 +10,9 @@
public string Name { get; set; }
}
+ public class Child
+ {
+ }
+
}
Modified: trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2009-06-23 17:33:55 UTC (rev 4517)
+++ trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2009-06-23 17:51:48 UTC (rev 4518)
@@ -143,6 +143,7 @@
<Compile Include="Criteria\CriteriaQueryTest.cs" />
<Compile Include="Criteria\DetachedCriteriaSerializable.cs" />
<Compile Include="Criteria\Enrolment.cs" />
+ <Compile Include="Criteria\Lambda\CriteriaAssertFixture.cs" />
<Compile Include="Criteria\Lambda\CriteriaFixture.cs" />
<Compile Include="Criteria\Lambda\LambdaFixtureBase.cs" />
<Compile Include="Criteria\Lambda\Model.cs" />
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|