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