|
From: <fab...@us...> - 2011-06-19 21:07:45
|
Revision: 5961
http://nhibernate.svn.sourceforge.net/nhibernate/?rev=5961&view=rev
Author: fabiomaulo
Date: 2011-06-19 21:07:39 +0000 (Sun, 19 Jun 2011)
Log Message:
-----------
Passing test for NH-2700 (the refactoring of param. management was for something)
Modified Paths:
--------------
trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj
Added Paths:
-----------
trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2700/
trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2700/CustomDialect.cs
trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2700/Fixture.cs
trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2700/Mappings.hbm.xml
trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2700/ModelClass.cs
Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2700/CustomDialect.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2700/CustomDialect.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2700/CustomDialect.cs 2011-06-19 21:07:39 UTC (rev 5961)
@@ -0,0 +1,20 @@
+using NHibernate.Dialect;
+using NHibernate.Dialect.Function;
+
+namespace NHibernate.Test.NHSpecificTest.NH2700
+{
+ public class CustomDialect : MsSql2005Dialect
+ {
+ public CustomDialect()
+ {
+ RegisterFunction(
+ "AddDays",
+ new SQLFunctionTemplate(
+ NHibernateUtil.DateTime,
+ "dateadd(day,?2,?1)"
+
+ )
+ );
+ }
+ }
+}
Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2700/Fixture.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2700/Fixture.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2700/Fixture.cs 2011-06-19 21:07:39 UTC (rev 5961)
@@ -0,0 +1,66 @@
+using System;
+using NHibernate.Criterion;
+using NHibernate.Impl;
+using NHibernate.Loader.Criteria;
+using NUnit.Framework;
+using Environment = NHibernate.Cfg.Environment;
+
+namespace NHibernate.Test.NHSpecificTest.NH2700
+{
+ [TestFixture]
+ public class Fixture : BugTestCase
+ {
+ protected override void Configure(Cfg.Configuration configuration)
+ {
+ cfg.SetProperty(Environment.Dialect, typeof(CustomDialect).AssemblyQualifiedName);
+ }
+
+ public static string GetSql(ICriteria criteria)
+ {
+ var criteriaImpl = (CriteriaImpl)criteria;
+ var session = criteriaImpl.Session;
+ var factory = session.Factory;
+
+ var translator =
+ new CriteriaQueryTranslator(
+ factory,
+ criteriaImpl,
+ criteriaImpl.EntityOrClassName,
+ CriteriaQueryTranslator.RootSqlAlias);
+
+ var implementors = factory.GetImplementors(criteriaImpl.EntityOrClassName);
+
+ var walker = new CriteriaJoinWalker(
+ (Persister.Entity.IOuterJoinLoadable)factory.GetEntityPersister(implementors[0]),
+ translator,
+ factory,
+ criteriaImpl,
+ criteriaImpl.EntityOrClassName,
+ session.EnabledFilters);
+
+ return walker.SqlString.ToString();
+ }
+
+ [Test]
+ public void TestProjection()
+ {
+
+ using (var s = OpenSession())
+ {
+ var proj = new SqlFunctionProjection("AddDays", NHibernateUtil.DateTime,
+ new IProjection[]
+ {
+ Projections.Property<ModelClass>(p=>p.Date1),
+ Projections.Property<ModelClass>(p=>p.Value1)
+ });
+ var criteria = s.CreateCriteria<ModelClass>();
+ criteria.SetProjection(proj);
+
+ var sql = GetSql(criteria);
+
+ Assert.That(sql, Is.StringMatching("dateadd\\(day,(.*?)Value1,(.*?)Date1\\)"));
+ Console.WriteLine(sql.ToString());
+ }
+ }
+ }
+}
Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2700/Mappings.hbm.xml
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2700/Mappings.hbm.xml (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2700/Mappings.hbm.xml 2011-06-19 21:07:39 UTC (rev 5961)
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
+ namespace="NHibernate.Test.NHSpecificTest.NH2700"
+ assembly="NHibernate.Test">
+
+ <class name="ModelClass">
+ <id name="Id">
+ <generator class="native"/>
+ </id>
+ <property name="Date1"/>
+ <property name="Value1"/>
+ </class>
+</hibernate-mapping>
Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2700/ModelClass.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2700/ModelClass.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2700/ModelClass.cs 2011-06-19 21:07:39 UTC (rev 5961)
@@ -0,0 +1,12 @@
+using System;
+
+namespace NHibernate.Test.NHSpecificTest.NH2700
+{
+ public class ModelClass
+ {
+ public virtual int Id { get; set; }
+ public virtual DateTime Date1 { get; set; }
+ public virtual DateTime Value1 { get; set; }
+ }
+
+}
Modified: trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2011-06-19 20:57:39 UTC (rev 5960)
+++ trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2011-06-19 21:07:39 UTC (rev 5961)
@@ -858,6 +858,9 @@
<Compile Include="NHSpecificTest\NH2697\ArticleGroupItem.cs" />
<Compile Include="NHSpecificTest\NH2697\ArticleItem.cs" />
<Compile Include="NHSpecificTest\NH2697\SampleTest.cs" />
+ <Compile Include="NHSpecificTest\NH2700\CustomDialect.cs" />
+ <Compile Include="NHSpecificTest\NH2700\Fixture.cs" />
+ <Compile Include="NHSpecificTest\NH2700\ModelClass.cs" />
<Compile Include="NHSpecificTest\NH2703\Fixture.cs" />
<Compile Include="NHSpecificTest\NH2703\Model.cs" />
<Compile Include="NHSpecificTest\NH2705\ItemBase.cs" />
@@ -2719,6 +2722,7 @@
<EmbeddedResource Include="NHSpecificTest\NH1291AnonExample\Mappings.hbm.xml" />
</ItemGroup>
<ItemGroup>
+ <EmbeddedResource Include="NHSpecificTest\NH2700\Mappings.hbm.xml" />
<EmbeddedResource Include="NHSpecificTest\NH2296\Mappings.hbm.xml" />
<EmbeddedResource Include="NHSpecificTest\NH2760\Mappings.hbm.xml" />
<EmbeddedResource Include="NHSpecificTest\NH2662\Mappings.hbm.xml" />
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|