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