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