From: <te...@us...> - 2009-06-14 18:17:14
|
Revision: 4466 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=4466&view=rev Author: tehlike Date: 2009-06-14 18:17:12 +0000 (Sun, 14 Jun 2009) Log Message: ----------- Adding tests for NH-1837 (already fixed in rev 4461) Revision Links: -------------- http://nhibernate.svn.sourceforge.net/nhibernate/?rev=4461&view=rev Modified Paths: -------------- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj Added Paths: ----------- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1837/ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1837/Customer.cs trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1837/Fixture.cs trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1837/Mappings.hbm.xml trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1837/Order.cs Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1837/Customer.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1837/Customer.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1837/Customer.cs 2009-06-14 18:17:12 UTC (rev 4466) @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace NHibernate.Test.NHSpecificTest.NH1837 +{ + public class Customer + { + public Customer() + { + this.Orders = new List<Order>(); + } + public virtual int Id { get; set; } + public virtual string Name { get; set; } + public virtual IList<Order> Orders { get; set; } + } +} Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1837/Fixture.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1837/Fixture.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1837/Fixture.cs 2009-06-14 18:17:12 UTC (rev 4466) @@ -0,0 +1,92 @@ +using System; +using System.Collections.Generic; +using System.Text; +using NHibernate.Criterion; +using NUnit.Framework; + +namespace NHibernate.Test.NHSpecificTest.NH1837 +{ + [TestFixture] + public class Fixture:BugTestCase + { + protected override void OnSetUp() + { + sessions.Statistics.IsStatisticsEnabled = true; + using(ISession session=this.OpenSession()) + using(ITransaction tran=session.BeginTransaction()) + { + var customer = new Customer {Name = "Fabio Maulo"}; + var order = new Order {Date = DateTime.Now, Customer = customer}; + customer.Orders.Add(order); + session.Save(customer); + session.Save(order); + tran.Commit(); + } + } + + protected override void OnTearDown() + { + using (ISession session = this.OpenSession()) + using (ITransaction tran = session.BeginTransaction()) + { + session.Delete("from Order"); + session.Delete("from Customer"); + tran.Commit(); + } + } + [Test] + public void ExecutesOneQueryWithUniqueResultWithChildCriteriaNonGeneric() + { + + sessions.Statistics.Clear(); + using (ISession session = this.OpenSession()) + { + var criteria = session.CreateCriteria(typeof(Order),"o"); + criteria.CreateCriteria("o.Customer", "c") + .Add(Restrictions.Eq("c.Id", 1)) + .SetProjection(Projections.RowCount()) + .UniqueResult(); + Assert.That(sessions.Statistics.QueryExecutionCount, Is.EqualTo(1)); + } + } + [Test] + public void ExecutesOneQueryWithUniqueResultWithChildCriteriaGeneric() + { + sessions.Statistics.Clear(); + using (ISession session = this.OpenSession()) + { + session.CreateCriteria(typeof (Order), "o") + .CreateCriteria("o.Customer", "c") + .Add(Restrictions.Eq("c.Id", 1)) + .SetProjection(Projections.RowCount()) + .UniqueResult<int>(); + Assert.That(sessions.Statistics.QueryExecutionCount, Is.EqualTo(1)); + } + } + [Test] + public void ExecutesOneQueryWithUniqueResultWithCriteriaNonGeneric() + { + sessions.Statistics.Clear(); + using (ISession session = this.OpenSession()) + { + session.CreateCriteria(typeof (Order), "o") + .SetProjection(Projections.RowCount()) + .UniqueResult(); + Assert.That(sessions.Statistics.QueryExecutionCount, Is.EqualTo(1)); + } + } + + [Test] + public void ExecutesOneQueryWithUniqueResultWithCriteriaGeneric() + { + sessions.Statistics.Clear(); + using (ISession session = this.OpenSession()) + { + session.CreateCriteria(typeof (Order), "o") + .SetProjection(Projections.RowCount()) + .UniqueResult<int>(); + Assert.That(sessions.Statistics.QueryExecutionCount, Is.EqualTo(1)); + } + } + } +} Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1837/Mappings.hbm.xml =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1837/Mappings.hbm.xml (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1837/Mappings.hbm.xml 2009-06-14 18:17:12 UTC (rev 4466) @@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="utf-8" ?> +<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" assembly="NHibernate.Test" + namespace="NHibernate.Test.NHSpecificTest.NH1837" + default-lazy="false"> + + <class name="Customer"> + <id name="Id"> + <generator class="native"/> + </id> + <property name="Name"/> + <bag name="Orders" lazy="true"> + <key column="CustomerId" /> + <one-to-many class="Order" /> + </bag> + </class> + <class name="Order" table="`Order`"> + <id name="Id"> + <generator class="native"/> + </id> + <property name="Date"/> + <many-to-one name="Customer" class="Customer" column="CustomerId"/> + </class> +</hibernate-mapping> \ No newline at end of file Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1837/Order.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1837/Order.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1837/Order.cs 2009-06-14 18:17:12 UTC (rev 4466) @@ -0,0 +1,13 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace NHibernate.Test.NHSpecificTest.NH1837 +{ + public class Order + { + public int Id { get; set; } + public DateTime Date { get; set; } + public Customer Customer { get; set; } + } +} Modified: trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2009-06-14 17:35:23 UTC (rev 4465) +++ trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2009-06-14 18:17:12 UTC (rev 4466) @@ -507,6 +507,9 @@ <Compile Include="NHSpecificTest\NH1834\Fixture.cs" /> <Compile Include="NHSpecificTest\NH1835\Document.cs" /> <Compile Include="NHSpecificTest\NH1835\Fixture.cs" /> + <Compile Include="NHSpecificTest\NH1837\Customer.cs" /> + <Compile Include="NHSpecificTest\NH1837\Fixture.cs" /> + <Compile Include="NHSpecificTest\NH1837\Order.cs" /> <Compile Include="NHSpecificTest\NH645\HQLFunctionFixture.cs" /> <Compile Include="HQL\HQLFunctions.cs" /> <Compile Include="HQL\Human.cs" /> @@ -1909,6 +1912,7 @@ <EmbeddedResource Include="Classic\EntityWithLifecycle.hbm.xml" /> <EmbeddedResource Include="Bytecode\Lightweight\ProductLine.hbm.xml" /> <Content Include="DynamicEntity\package.html" /> + <EmbeddedResource Include="NHSpecificTest\NH1837\Mappings.hbm.xml" /> <EmbeddedResource Include="TypesTest\MultiTypeEntity_WithSqlType.hbm.xml" /> <EmbeddedResource Include="TypesTest\MultiTypeEntity_WithColumnNode.hbm.xml" /> <EmbeddedResource Include="TypesTest\MultiTypeEntity_InLine.hbm.xml" /> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |