From: <fab...@us...> - 2009-06-05 17:05:25
|
Revision: 4415 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=4415&view=rev Author: fabiomaulo Date: 2009-06-05 17:05:23 +0000 (Fri, 05 Jun 2009) Log Message: ----------- Test for NH-1812 (not fixed yet) Modified Paths: -------------- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj Added Paths: ----------- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1812/ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1812/Fixture.cs trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1812/Mappings.hbm.xml trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1812/Model.cs Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1812/Fixture.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1812/Fixture.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1812/Fixture.cs 2009-06-05 17:05:23 UTC (rev 4415) @@ -0,0 +1,75 @@ +using System; +using System.Collections.Generic; +using NUnit.Framework; + +namespace NHibernate.Test.NHSpecificTest.NH1812 +{ + public class AstBugBase : BugTestCase + { + [Test] + public void Test() + { + var p = new Person(); + + const string query = + @"select p from Person p + left outer join p.PeriodCollection p1 + where p1.Start > coalesce((select max(p2.Start) from Period p2), :nullStart)"; + + using (ISession s = OpenSession()) + { + using (ITransaction tx = s.BeginTransaction()) + { + s.Save(p); + tx.Commit(); + } + + s.CreateQuery(query) + .SetDateTime("nullStart", new DateTime(2001, 1, 1)) + .List<Person>(); + } + + } + + protected override void OnTearDown() + { + using (ISession s = OpenSession()) + { + using (ITransaction tx = s.BeginTransaction()) + { + s.Delete("from Person"); + tx.Commit(); + } + } + } + } + + [TestFixture, Ignore("To fix for AST parser; there are problems with subquery in various places.")] + public class AstBug : AstBugBase + { + + /* to the nh guy... + * sorry for not coming up with a more realistic use case + * We have a query that works fine with the old parser but not with the new AST parser + * I've broke our complex query down to this... + * I believe the problem is when mixing aggregate methods with isnull() + */ + } + + [TestFixture] + public class ItWorksWithClassicParser : AstBugBase + { + + protected override void Configure(Cfg.Configuration configuration) + { + configuration.AddProperties(new Dictionary<string, string> + { + { + Cfg.Environment.QueryTranslator, + typeof (NHibernate.Hql.Classic.ClassicQueryTranslatorFactory).FullName + } + } + ); + } + } +} \ No newline at end of file Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1812/Mappings.hbm.xml =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1812/Mappings.hbm.xml (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1812/Mappings.hbm.xml 2009-06-05 17:05:23 UTC (rev 4415) @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="utf-8" ?> +<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" + namespace="NHibernate.Test.NHSpecificTest.NH1812" + assembly="NHibernate.Test" > + + <class name="Person"> + <id name="Id"> + <generator class="native" /> + </id> + <bag name="PeriodCollection"> + <key column="fk" /> + <one-to-many class="Period"/> + </bag> + </class> + + <class name="Period"> + <id name="Id"> + <generator class="native" /> + </id> + <property name="Start" /> + </class> +</hibernate-mapping> Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1812/Model.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1812/Model.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1812/Model.cs 2009-06-05 17:05:23 UTC (rev 4415) @@ -0,0 +1,19 @@ +using System; +using System.Collections.Generic; + +namespace NHibernate.Test.NHSpecificTest.NH1812 +{ + public class Person + { + public virtual int Id {get; set;} + public virtual IList<Period> PeriodCollection { get; set; } + + public Person(){PeriodCollection=new List<Period>();} + } + + public class Period + { + public virtual int Id { get; set; } + public virtual DateTime? Start { 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 2009-06-05 13:50:25 UTC (rev 4414) +++ trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2009-06-05 17:05:23 UTC (rev 4415) @@ -486,6 +486,8 @@ <Compile Include="NHSpecificTest\NH1810\Fixture.cs" /> <Compile Include="NHSpecificTest\NH1810\MedicalRecord.cs" /> <Compile Include="NHSpecificTest\NH1810\Parent.cs" /> + <Compile Include="NHSpecificTest\NH1812\Fixture.cs" /> + <Compile Include="NHSpecificTest\NH1812\Model.cs" /> <Compile Include="NHSpecificTest\NH645\HQLFunctionFixture.cs" /> <Compile Include="HQL\HQLFunctions.cs" /> <Compile Include="HQL\Human.cs" /> @@ -1881,6 +1883,7 @@ <EmbeddedResource Include="CacheTest\EntityWithFilters.xml" /> <EmbeddedResource Include="Classic\EntityWithLifecycle.hbm.xml" /> <Content Include="DynamicEntity\package.html" /> + <EmbeddedResource Include="NHSpecificTest\NH1812\Mappings.hbm.xml" /> <EmbeddedResource Include="NHSpecificTest\NH1601\Mappings.hbm.xml" /> <EmbeddedResource Include="NHSpecificTest\NH1617\Mappings.hbm.xml" /> <EmbeddedResource Include="NHSpecificTest\NH1810\Mappings.hbm.xml" /> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |