|
From: <fab...@us...> - 2011-03-24 22:51:52
|
Revision: 5526
http://nhibernate.svn.sourceforge.net/nhibernate/?rev=5526&view=rev
Author: fabiomaulo
Date: 2011-03-24 22:51:46 +0000 (Thu, 24 Mar 2011)
Log Message:
-----------
Passing test of NH-1925 (was an issue but was fixed fixing something else)
Modified Paths:
--------------
trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj
Added Paths:
-----------
trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1925/
trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1925/Fixture.cs
trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1925/Mappings.hbm.xml
trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1925/Model.cs
Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1925/Fixture.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1925/Fixture.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1925/Fixture.cs 2011-03-24 22:51:46 UTC (rev 5526)
@@ -0,0 +1,101 @@
+using System.Collections;
+using NUnit.Framework;
+
+namespace NHibernate.Test.NHSpecificTest.NH1925
+{
+ [TestFixture]
+ public class Fixture : BugTestCase
+ {
+ private const string NAME_JOE = "Joe";
+ private const string NAME_ALLEN = "Allen";
+
+ protected override void OnSetUp()
+ {
+ base.OnSetUp();
+ using (ISession session = OpenSession())
+ {
+ using (ITransaction tx = session.BeginTransaction())
+ {
+ var joe = new Customer {Name = NAME_JOE};
+ session.Save(joe);
+
+ var allen = new Customer {Name = NAME_ALLEN};
+ session.Save(allen);
+
+ var joeInvoice0 = new Invoice {Customer = joe, Number = 0};
+ session.Save(joeInvoice0);
+
+ var allenInvoice1 = new Invoice {Customer = allen, Number = 1};
+ session.Save(allenInvoice1);
+
+ tx.Commit();
+ }
+ }
+ }
+
+ protected override void OnTearDown()
+ {
+ using (ISession session = OpenSession())
+ {
+ using (ITransaction tx = session.BeginTransaction())
+ {
+ session.Delete("from Invoice");
+ session.Delete("from Customer");
+ tx.Commit();
+ }
+ }
+ base.OnTearDown();
+ }
+
+ private void FindJoesLatestInvoice(string hql)
+ {
+ using (ISession session = OpenSession())
+ {
+ using (ITransaction tx = session.BeginTransaction())
+ {
+ IList list = session.CreateQuery(hql)
+ .SetString("name", NAME_JOE)
+ .List();
+
+ Assert.That(list, Is.Not.Empty);
+ tx.Commit();
+ }
+ }
+ }
+
+ [Test]
+ public void Query1()
+ {
+ FindJoesLatestInvoice(
+ @"
+ select invoice
+ from Invoice invoice
+ join invoice.Customer customer
+ where
+ invoice.Number = (
+ select max(invoice2.Number)
+ from
+ invoice.Customer d2
+ join d2.Invoices invoice2
+ where
+ d2 = customer
+ )
+ and customer.Name = :name
+ ");
+ }
+
+ [Test]
+ public void Query2()
+ {
+ FindJoesLatestInvoice(
+ @"
+ select invoice
+ from Invoice invoice
+ join invoice.Customer customer
+ where
+ invoice.Number = (select max(invoice2.Number) from customer.Invoices invoice2)
+ and customer.Name = :name
+ ");
+ }
+ }
+}
\ No newline at end of file
Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1925/Mappings.hbm.xml
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1925/Mappings.hbm.xml (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1925/Mappings.hbm.xml 2011-03-24 22:51:46 UTC (rev 5526)
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
+ assembly="NHibernate.Test"
+ namespace="NHibernate.Test.NHSpecificTest.NH1925">
+
+ <class name="Customer" >
+ <id name="ID" type="Int32">
+ <generator class="hilo" />
+ </id>
+ <property name="Name" type="String" />
+
+ <set name="Invoices" inverse="true" >
+ <key column="CustomerID"/>
+ <one-to-many class="Invoice"/>
+ </set>
+ </class>
+
+ <class name="Invoice">
+ <id name="ID" type="Int32">
+ <generator class="hilo" />
+ </id>
+
+ <property name="Number" type="Int32" />
+ <many-to-one name="Customer" column="CustomerID" class="Customer" />
+ </class>
+
+</hibernate-mapping>
Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1925/Model.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1925/Model.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1925/Model.cs 2011-03-24 22:51:46 UTC (rev 5526)
@@ -0,0 +1,18 @@
+using Iesi.Collections.Generic;
+
+namespace NHibernate.Test.NHSpecificTest.NH1925
+{
+ public class Customer
+ {
+ public virtual int ID { get; private set; }
+ public virtual ISet<Invoice> Invoices { get; set; }
+ public virtual string Name { get; set; }
+ }
+
+ public class Invoice
+ {
+ public virtual int ID { get; private set; }
+ public virtual Customer Customer { get; set; }
+ public virtual int Number { get; set; }
+ }
+}
\ No newline at end of file
Modified: trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2011-03-24 21:46:41 UTC (rev 5525)
+++ trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2011-03-24 22:51:46 UTC (rev 5526)
@@ -533,6 +533,8 @@
<Compile Include="NHSpecificTest\NH1836\Fixture.cs" />
<Compile Include="NHSpecificTest\NH1869\Entities.cs" />
<Compile Include="NHSpecificTest\NH1869\Fixture.cs" />
+ <Compile Include="NHSpecificTest\NH1925\Fixture.cs" />
+ <Compile Include="NHSpecificTest\NH1925\Model.cs" />
<Compile Include="NHSpecificTest\NH2037\Domain.cs" />
<Compile Include="NHSpecificTest\NH2037\Fixture.cs" />
<Compile Include="NHSpecificTest\NH2043\Domain.cs" />
@@ -2488,6 +2490,7 @@
<EmbeddedResource Include="NHSpecificTest\NH1291AnonExample\Mappings.hbm.xml" />
</ItemGroup>
<ItemGroup>
+ <EmbeddedResource Include="NHSpecificTest\NH1925\Mappings.hbm.xml" />
<EmbeddedResource Include="NHSpecificTest\NH2527\Mappings.hbm.xml" />
<EmbeddedResource Include="NHSpecificTest\NH1323\Mappings.hbm.xml" />
<EmbeddedResource Include="NHSpecificTest\NH2580\Mappings.hbm.xml" />
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|