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