|
From: <fab...@us...> - 2010-08-04 17:21:50
|
Revision: 5107
http://nhibernate.svn.sourceforge.net/nhibernate/?rev=5107&view=rev
Author: fabiomaulo
Date: 2010-08-04 17:21:44 +0000 (Wed, 04 Aug 2010)
Log Message:
-----------
Check NH-2089 not an issue
Modified Paths:
--------------
trunk/nhibernate/src/NHibernate.Test/HQL/Ast/BaseFixture.cs
trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj
Added Paths:
-----------
trunk/nhibernate/src/NHibernate.Test/HQL/Ast/QuerySubstitutionTest.cs
Modified: trunk/nhibernate/src/NHibernate.Test/HQL/Ast/BaseFixture.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/HQL/Ast/BaseFixture.cs 2010-08-04 11:57:46 UTC (rev 5106)
+++ trunk/nhibernate/src/NHibernate.Test/HQL/Ast/BaseFixture.cs 2010-08-04 17:21:44 UTC (rev 5107)
@@ -39,8 +39,13 @@
public string GetSql(string query)
{
- var qt = new QueryTranslatorImpl(null, new HqlParseEngine(query, false, sessions).Parse(), emptyfilters, sessions);
- qt.Compile(null, false);
+ return GetSql(query, null);
+ }
+
+ public string GetSql(string query, IDictionary<string, string> replacements)
+ {
+ var qt = new QueryTranslatorImpl(null, new HqlParseEngine(query, false, sessions).Parse(), emptyfilters, sessions);
+ qt.Compile(replacements, false);
return qt.SQLString;
}
Added: trunk/nhibernate/src/NHibernate.Test/HQL/Ast/QuerySubstitutionTest.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/HQL/Ast/QuerySubstitutionTest.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/HQL/Ast/QuerySubstitutionTest.cs 2010-08-04 17:21:44 UTC (rev 5107)
@@ -0,0 +1,38 @@
+using System.Collections.Generic;
+using NUnit.Framework;
+using NHibernate.Cfg.Loquacious;
+using SharpTestsEx;
+
+namespace NHibernate.Test.HQL.Ast
+{
+ public class QuerySubstitutionTest: BaseFixture
+ {
+ protected override void Configure(NHibernate.Cfg.Configuration configuration)
+ {
+ base.Configure(configuration);
+ configuration.SessionFactory().Integrate.CreateCommands.WithHqlToSqlSubstitutions("pizza 1");
+ }
+ const string query = "from SimpleClass s where s.IntValue > pizza";
+
+ [Test]
+ public void WhenSubstitutionsConfiguredThenUseItInTranslation()
+ {
+ var sql = GetSql(query, new Dictionary<string, string>{{"pizza","1"}});
+ sql.Should().Not.Contain("pizza");
+ }
+
+ [Test]
+ public void WhenExecutedThroughSessionThenUseSubstitutions()
+ {
+ using (var s = OpenSession())
+ {
+ using (SqlLogSpy sqlLogSpy = new SqlLogSpy())
+ {
+ s.CreateQuery(query).List();
+ string sql = sqlLogSpy.Appender.GetEvents()[0].RenderedMessage;
+ sql.Should().Not.Contain("pizza");
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
Modified: trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2010-08-04 11:57:46 UTC (rev 5106)
+++ trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2010-08-04 17:21:44 UTC (rev 5107)
@@ -373,6 +373,7 @@
<Compile Include="HQL\Ast\Mammal.cs" />
<Compile Include="HQL\Ast\Name.cs" />
<Compile Include="HQL\Ast\ParsingFixture.cs" />
+ <Compile Include="HQL\Ast\QuerySubstitutionTest.cs" />
<Compile Include="HQL\Ast\Reptile.cs" />
<Compile Include="HQL\Ast\SimpleAssociatedEntity.cs" />
<Compile Include="HQL\Ast\SimpleClass.cs" />
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|