From: <Ric...@us...> - 2009-06-29 20:20:16
|
Revision: 4547 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=4547&view=rev Author: RicBrown Date: 2009-06-29 20:20:14 +0000 (Mon, 29 Jun 2009) Log Message: ----------- Added coverage for property equality. Modified Paths: -------------- trunk/nhibernate/src/NHibernate.Test/Criteria/Lambda/CriteriaOfTFixture.cs trunk/nhibernate/src/NHibernate.Test/Criteria/Lambda/Model.cs Modified: trunk/nhibernate/src/NHibernate.Test/Criteria/Lambda/CriteriaOfTFixture.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/Criteria/Lambda/CriteriaOfTFixture.cs 2009-06-29 20:12:51 UTC (rev 4546) +++ trunk/nhibernate/src/NHibernate.Test/Criteria/Lambda/CriteriaOfTFixture.cs 2009-06-29 20:20:14 UTC (rev 4547) @@ -40,6 +40,30 @@ } [Test] + public void PropertyCriterion_NoAlias() + { + ICriteria expected = + CreateTestCriteria(typeof(Person)) + .Add(Restrictions.EqProperty("Age", "Height")) + .Add(Restrictions.NotEqProperty("Age", "Height")) + .Add(Restrictions.GtProperty("Age", "Height")) + .Add(Restrictions.GeProperty("Age", "Height")) + .Add(Restrictions.LtProperty("Age", "Height")) + .Add(Restrictions.LeProperty("Age", "Height")); + + ICriteria<Person> actual = + CreateTestQueryOver<Person>() + .And(p => p.Age == p.Height) + .And(p => p.Age != p.Height) + .And(p => p.Age > p.Height) + .And(p => p.Age >= p.Height) + .And(p => p.Age < p.Height) + .And(p => p.Age <= p.Height); + + AssertCriteriaAreEqual(expected, actual); + } + + [Test] public void Where_BehavesTheSameAs_And() { Person personAlias = null; Modified: trunk/nhibernate/src/NHibernate.Test/Criteria/Lambda/Model.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/Criteria/Lambda/Model.cs 2009-06-29 20:12:51 UTC (rev 4546) +++ trunk/nhibernate/src/NHibernate.Test/Criteria/Lambda/Model.cs 2009-06-29 20:20:14 UTC (rev 4547) @@ -10,6 +10,7 @@ public virtual int Id { get; set; } public virtual string Name { get; set; } public virtual int Age { get; set; } + public virtual int Height { get; set; } public virtual Person Father { get; set; } public virtual IEnumerable<Child> Children { get; set; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ric...@us...> - 2010-08-14 21:04:57
|
Revision: 5155 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=5155&view=rev Author: ricbrown Date: 2010-08-14 21:04:51 +0000 (Sat, 14 Aug 2010) Log Message: ----------- Added example of overriding join in QueryOver. Modified Paths: -------------- trunk/nhibernate/src/NHibernate.Test/Criteria/Lambda/IntegrationFixture.cs trunk/nhibernate/src/NHibernate.Test/Criteria/Lambda/Mappings.hbm.xml trunk/nhibernate/src/NHibernate.Test/Criteria/Lambda/Model.cs Modified: trunk/nhibernate/src/NHibernate.Test/Criteria/Lambda/IntegrationFixture.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/Criteria/Lambda/IntegrationFixture.cs 2010-08-14 20:29:14 UTC (rev 5154) +++ trunk/nhibernate/src/NHibernate.Test/Criteria/Lambda/IntegrationFixture.cs 2010-08-14 21:04:51 UTC (rev 5155) @@ -39,6 +39,8 @@ { s.CreateQuery("delete from Child").ExecuteUpdate(); s.CreateQuery("delete from Person").ExecuteUpdate(); + s.CreateQuery("delete from JoinedChild").ExecuteUpdate(); + s.CreateQuery("delete from Parent").ExecuteUpdate(); t.Commit(); } } @@ -345,6 +347,40 @@ } [Test] + public void OverrideEagerJoin() + { + using (ISession s = OpenSession()) + using (ITransaction t = s.BeginTransaction()) + { + s.Save(new Parent() + .AddChild(new JoinedChild()) + .AddChild(new JoinedChild())); + + t.Commit(); + } + + using (ISession s = OpenSession()) + { + var persons = + s.QueryOver<Parent>() + .List(); + + Assert.That(NHibernateUtil.IsInitialized(persons[0].Children), "Default query did not eagerly load children"); + } + + using (ISession s = OpenSession()) + { + var persons = + s.QueryOver<Parent>() + .Fetch(p => p.Children).Lazy + .List(); + + Assert.That(persons.Count, Is.EqualTo(1)); + Assert.That(!NHibernateUtil.IsInitialized(persons[0].Children), "Children not lazy loaded"); + } + } + + [Test] public void RowCount() { SetupPagingData(); Modified: trunk/nhibernate/src/NHibernate.Test/Criteria/Lambda/Mappings.hbm.xml =================================================================== --- trunk/nhibernate/src/NHibernate.Test/Criteria/Lambda/Mappings.hbm.xml 2010-08-14 20:29:14 UTC (rev 5154) +++ trunk/nhibernate/src/NHibernate.Test/Criteria/Lambda/Mappings.hbm.xml 2010-08-14 21:04:51 UTC (rev 5155) @@ -25,4 +25,21 @@ <many-to-one name="Parent" class="Person" /> </class> + <class name="Parent"> + <id name="Id"> + <generator class="native"/> + </id> + <bag name="Children" fetch="join" inverse="true" cascade="all-delete-orphan"> + <key column="Parent" /> + <one-to-many class="JoinedChild" /> + </bag> + </class> + + <class name="JoinedChild"> + <id name="Id"> + <generator class="native"/> + </id> + <many-to-one name="Parent" class="Parent" /> + </class> + </hibernate-mapping> Modified: trunk/nhibernate/src/NHibernate.Test/Criteria/Lambda/Model.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/Criteria/Lambda/Model.cs 2010-08-14 20:29:14 UTC (rev 5154) +++ trunk/nhibernate/src/NHibernate.Test/Criteria/Lambda/Model.cs 2010-08-14 21:04:51 UTC (rev 5155) @@ -81,5 +81,28 @@ public int Count { get; set; } } + public class Parent + { + public Parent() + { + Children = new List<JoinedChild>(); + } + + public virtual int Id { get; set; } + public virtual IEnumerable<JoinedChild> Children { get; set; } + + public virtual Parent AddChild(JoinedChild child) + { + child.Parent = this; + (Children as IList<JoinedChild>).Add(child); + return this; + } + } + + public class JoinedChild + { + public virtual int Id { get; set; } + public virtual Parent Parent { get; set; } + } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ric...@us...> - 2011-05-15 14:12:16
|
Revision: 5818 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=5818&view=rev Author: ricbrown Date: 2011-05-15 14:12:10 +0000 (Sun, 15 May 2011) Log Message: ----------- NH-2683: Added integration test for extension .Year() Modified Paths: -------------- trunk/nhibernate/src/NHibernate.Test/Criteria/Lambda/IntegrationFixture.cs trunk/nhibernate/src/NHibernate.Test/Criteria/Lambda/Mappings.hbm.xml trunk/nhibernate/src/NHibernate.Test/Criteria/Lambda/Model.cs Modified: trunk/nhibernate/src/NHibernate.Test/Criteria/Lambda/IntegrationFixture.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/Criteria/Lambda/IntegrationFixture.cs 2011-05-15 13:04:02 UTC (rev 5817) +++ trunk/nhibernate/src/NHibernate.Test/Criteria/Lambda/IntegrationFixture.cs 2011-05-15 14:12:10 UTC (rev 5818) @@ -70,6 +70,19 @@ Assert.That(actual.Count, Is.EqualTo(1)); } + + using (ISession s = OpenSession()) + { + Person personAlias = null; + + IList<Person> actual = + s.QueryOver<Person>(() => personAlias) + .Where(() => personAlias.Name == "test person 2") + .And(() => personAlias.Age == 30) + .List(); + + Assert.That(actual.Count, Is.EqualTo(1)); + } } [Test] @@ -416,12 +429,13 @@ Assert.That(simpleProjection.First().Name, Is.EqualTo("Name 1.1")); Assert.That(simpleProjection.First().Age, Is.EqualTo(3)); + Child childAlias = null; var listProjection = - s.QueryOver<Child>() + s.QueryOver<Child>(() => childAlias) .JoinQueryOver(c => c.Parent) .Where(p => p.Name == "Name 1" && p.Age == 33) .SelectList(list => list - .Select(c => c.Nickname) + .Select(c => childAlias.Nickname) .Select(c => c.Age)) .List<object[]>() .Select(props => new @@ -554,6 +568,32 @@ } [Test] + public void Functions() + { + using (ISession s = OpenSession()) + using (ITransaction t = s.BeginTransaction()) + { + s.Save(new Person() { Name = "p1", BirthDate = new DateTime(2009, 08, 07) }); + s.Save(new Person() { Name = "p2", BirthDate = new DateTime(2008, 07, 06) }); + s.Save(new Person() { Name = "p3", BirthDate = new DateTime(2007, 06, 05) }); + + t.Commit(); + } + + using (ISession s = OpenSession()) + { + var persons = + s.QueryOver<Person>() + .Where(p => p.BirthDate.Year() == 2008) + .List(); + + persons.Count.Should().Be(1); + persons[0].Name.Should().Be("p2"); + } + + } + + [Test] public void MultiCriteria() { SetupPagingData(); Modified: trunk/nhibernate/src/NHibernate.Test/Criteria/Lambda/Mappings.hbm.xml =================================================================== --- trunk/nhibernate/src/NHibernate.Test/Criteria/Lambda/Mappings.hbm.xml 2011-05-15 13:04:02 UTC (rev 5817) +++ trunk/nhibernate/src/NHibernate.Test/Criteria/Lambda/Mappings.hbm.xml 2011-05-15 14:12:10 UTC (rev 5818) @@ -10,6 +10,7 @@ <discriminator type="string" /> <property name="Name" /> <property name="Age" /> + <property name="BirthDate" /> <property name="Blood" /> <many-to-one name="Father" class="Person" /> <bag name="Children" inverse="true" cascade="all-delete-orphan"> Modified: trunk/nhibernate/src/NHibernate.Test/Criteria/Lambda/Model.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/Criteria/Lambda/Model.cs 2011-05-15 13:04:02 UTC (rev 5817) +++ trunk/nhibernate/src/NHibernate.Test/Criteria/Lambda/Model.cs 2011-05-15 14:12:10 UTC (rev 5818) @@ -18,6 +18,7 @@ { Children = new List<Child>(); Blood = 'O'; + BirthDate = new DateTime(1950, 01, 01); } public static string StaticName; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |