From: <fab...@us...> - 2008-10-20 15:43:17
|
Revision: 3868 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=3868&view=rev Author: fabiomaulo Date: 2008-10-20 15:43:09 +0000 (Mon, 20 Oct 2008) Log Message: ----------- - Fix NH-1538, NH-1537 (new feature comments) - Refactoring in tests (to have only one namespace for various HQL tests) Modified Paths: -------------- trunk/nhibernate/src/NHibernate/Cfg/Environment.cs trunk/nhibernate/src/NHibernate/Cfg/SettingsFactory.cs trunk/nhibernate/src/NHibernate/IQuery.cs trunk/nhibernate/src/NHibernate/Impl/AbstractQueryImpl.cs trunk/nhibernate/src/NHibernate/Impl/SqlQueryImpl.cs trunk/nhibernate/src/NHibernate/nhibernate-configuration.xsd trunk/nhibernate/src/NHibernate.Test/HQL/Animal.cs trunk/nhibernate/src/NHibernate.Test/HQL/Animal.hbm.xml trunk/nhibernate/src/NHibernate.Test/HQL/BaseFunctionFixture.cs trunk/nhibernate/src/NHibernate.Test/HQL/HQLFunctions.cs trunk/nhibernate/src/NHibernate.Test/HQL/Human.cs trunk/nhibernate/src/NHibernate.Test/HQL/MaterialResource.cs trunk/nhibernate/src/NHibernate.Test/HQL/MaterialResource.hbm.xml trunk/nhibernate/src/NHibernate.Test/HQL/Name.cs trunk/nhibernate/src/NHibernate.Test/HQL/SQLFunctionTemplateTest.cs trunk/nhibernate/src/NHibernate.Test/HQL/SimpleFunctionsTest.cs trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj Added Paths: ----------- trunk/nhibernate/src/NHibernate.Test/HQL/ trunk/nhibernate/src/NHibernate.Test/HQL/HqlFixture.cs trunk/nhibernate/src/NHibernate.Test/HQL/SqlCommentsFixture.cs Removed Paths: ------------- trunk/nhibernate/src/NHibernate.Test/HQLFunctionTest/ Modified: trunk/nhibernate/src/NHibernate/Cfg/Environment.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Cfg/Environment.cs 2008-10-19 21:16:44 UTC (rev 3867) +++ trunk/nhibernate/src/NHibernate/Cfg/Environment.cs 2008-10-20 15:43:09 UTC (rev 3868) @@ -93,6 +93,7 @@ public const string ShowSql = "show_sql"; public const string MaxFetchDepth = "max_fetch_depth"; public const string CurrentSessionContextClass = "current_session_context_class"; + public const string UseSqlComments = "use_sql_comments"; // Unused, Java-specific public const string UseGetGeneratedKeys = "jdbc.use_get_generated_keys"; Modified: trunk/nhibernate/src/NHibernate/Cfg/SettingsFactory.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Cfg/SettingsFactory.cs 2008-10-19 21:16:44 UTC (rev 3867) +++ trunk/nhibernate/src/NHibernate/Cfg/SettingsFactory.cs 2008-10-20 15:43:09 UTC (rev 3868) @@ -65,6 +65,10 @@ #endregion + bool comments = PropertiesHelper.GetBoolean(Environment.UseSqlComments, properties); + log.Info("Generate SQL with comments: " + EnabledDisabled(comments)); + settings.IsCommentsEnabled = comments; + int maxFetchDepth = PropertiesHelper.GetInt32(Environment.MaxFetchDepth, properties, -1); if (maxFetchDepth != -1) { Modified: trunk/nhibernate/src/NHibernate/IQuery.cs =================================================================== --- trunk/nhibernate/src/NHibernate/IQuery.cs 2008-10-19 21:16:44 UTC (rev 3867) +++ trunk/nhibernate/src/NHibernate/IQuery.cs 2008-10-20 15:43:09 UTC (rev 3868) @@ -62,6 +62,10 @@ /// </summary> IType[] ReturnTypes { get; } + /// <summary> Return the HQL select clause aliases (if any)</summary> + /// <returns> an array of aliases as strings </returns> + string[] ReturnAliases{get;} + /// <summary> /// The names of all named parameters of the query /// </summary> @@ -123,12 +127,17 @@ /// </exception> object UniqueResult(); - /// <summary> /// Strongly-typed version of <see cref="UniqueResult()"/>. /// </summary> T UniqueResult<T>(); + /// <summary> + /// Execute the update or delete statement. + /// </summary> + /// <returns> The number of entities updated or deleted. </returns> + int ExecuteUpdate(); + /// <summary> /// Set the maximum number of rows to retrieve. /// </summary> @@ -141,6 +150,13 @@ /// <param name="firstResult">The first row to retreive.</param> IQuery SetFirstResult(int firstResult); + /// <summary> + /// Entities retrieved by this query will be loaded in + /// a read-only mode where Hibernate will never dirty-check + /// them or make changes persistent. + /// </summary> + IQuery SetReadOnly(bool readOnly); + /// <summary> /// Enable caching of this query result set. /// </summary> @@ -152,19 +168,16 @@ /// for the default query cache</param> IQuery SetCacheRegion(string cacheRegion); - /// <summary> - /// Entities retrieved by this query will be loaded in - /// a read-only mode where Hibernate will never dirty-check - /// them or make changes persistent. - /// </summary> - IQuery SetReadOnly(bool readOnly); - /// <summary> /// The timeout for the underlying ADO query /// </summary> /// <param name="timeout"></param> IQuery SetTimeout(int timeout); + /// <summary> Set a fetch size for the underlying ADO query.</summary> + /// <param name="fetchSize">the fetch size </param> + IQuery SetFetchSize(int fetchSize); + /// <summary> /// Set the lockmode for the objects idententified by the /// given alias that appears in the <c>FROM</c> clause. @@ -173,7 +186,21 @@ /// <param name="lockMode"></param> IQuery SetLockMode(string alias, LockMode lockMode); + /// <summary> Add a comment to the generated SQL.</summary> + /// <param name="comment">a human-readable string </param> + IQuery SetComment(string comment); + /// <summary> + /// Override the current session flush mode, just for this query. + /// </summary> + IQuery SetFlushMode(FlushMode flushMode); + + /// <summary> Override the current session cache mode, just for this query. </summary> + /// <param name="cacheMode">The cache mode to use. </param> + /// <returns> this (for method chaining) </returns> + IQuery SetCacheMode(CacheMode cacheMode); + + /// <summary> /// Bind a value to an indexed parameter. /// </summary> /// <param name="position">Position of the parameter in the query, numbered from <c>0</c></param> @@ -395,20 +422,6 @@ IQuery SetDouble(string name, double val); /// <summary> - /// Bind an instance of a mapped persistent class to an indexed parameter. - /// </summary> - /// <param name="position">Position of the parameter in the query string, numbered from <c>0</c></param> - /// <param name="val">A non-null instance of a persistent class</param> - IQuery SetEntity(int position, object val); - - /// <summary> - /// Bind an instance of a mapped persistent class to a named parameter. - /// </summary> - /// <param name="name">The name of the parameter</param> - /// <param name="val">A non-null instance of a persistent class</param> - IQuery SetEntity(string name, object val); - - /// <summary> /// Bind an instance of a persistent enumeration class to an indexed parameter /// using an NHibernate <see cref="PersistentEnumType"/>. /// </summary> @@ -553,25 +566,23 @@ IQuery SetGuid(string name, Guid val); /// <summary> - /// Override the current session flush mode, just for this query. + /// Bind an instance of a mapped persistent class to an indexed parameter. /// </summary> - IQuery SetFlushMode(FlushMode flushMode); + /// <param name="position">Position of the parameter in the query string, numbered from <c>0</c></param> + /// <param name="val">A non-null instance of a persistent class</param> + IQuery SetEntity(int position, object val); /// <summary> + /// Bind an instance of a mapped persistent class to a named parameter. + /// </summary> + /// <param name="name">The name of the parameter</param> + /// <param name="val">A non-null instance of a persistent class</param> + IQuery SetEntity(string name, object val); + + /// <summary> /// Set a strategy for handling the query results. This can be used to change /// "shape" of the query result. /// </summary> IQuery SetResultTransformer(IResultTransformer resultTransformer); - - /// <summary> Override the current session cache mode, just for this query. </summary> - /// <param name="cacheMode">The cache mode to use. </param> - /// <returns> this (for method chaining) </returns> - IQuery SetCacheMode(CacheMode cacheMode); - - /// <summary> - /// Execute the update or delete statement. - /// </summary> - /// <returns> The number of entities updated or deleted. </returns> - int ExecuteUpdate(); } } Modified: trunk/nhibernate/src/NHibernate/Impl/AbstractQueryImpl.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Impl/AbstractQueryImpl.cs 2008-10-19 21:16:44 UTC (rev 3867) +++ trunk/nhibernate/src/NHibernate/Impl/AbstractQueryImpl.cs 2008-10-20 15:43:09 UTC (rev 3868) @@ -43,8 +43,9 @@ private bool shouldIgnoredUnknownNamedParameters; private CacheMode? cacheMode; private CacheMode? sessionCacheMode; + private string comment; - public AbstractQueryImpl(string queryString, FlushMode flushMode, ISessionImplementor session, + protected AbstractQueryImpl(string queryString, FlushMode flushMode, ISessionImplementor session, ParameterMetadata parameterMetadata) { this.session = session; @@ -76,7 +77,7 @@ { if (parameterMetadata.NamedParameterNames.Count != namedParameters.Count + namedParameterLists.Count) { - HashedSet<string> missingParams = new HashedSet<string>(parameterMetadata.NamedParameterNames); + var missingParams = new HashedSet<string>(parameterMetadata.NamedParameterNames); missingParams.RemoveAll(namedParameterLists.Keys); missingParams.RemoveAll(namedParameters.Keys); throw new QueryException("Not all named parameters have been set: " + CollectionPrinter.ToString(missingParams), QueryString); @@ -119,51 +120,31 @@ protected internal virtual IType DetermineType(int paramPosition, object paramValue, IType defaultType) { - IType type = parameterMetadata.GetOrdinalParameterExpectedType(paramPosition + 1); - if (type == null) - { - type = defaultType; - } + IType type = parameterMetadata.GetOrdinalParameterExpectedType(paramPosition + 1) ?? defaultType; return type; } protected internal virtual IType DetermineType(int paramPosition, object paramValue) { - IType type = parameterMetadata.GetOrdinalParameterExpectedType(paramPosition + 1); - if (type == null) - { - type = GuessType(paramValue); - } + IType type = parameterMetadata.GetOrdinalParameterExpectedType(paramPosition + 1) ?? GuessType(paramValue); return type; } protected internal virtual IType DetermineType(string paramName, object paramValue, IType defaultType) { - IType type = parameterMetadata.GetNamedParameterExpectedType(paramName); - if (type == null) - { - type = defaultType; - } + IType type = parameterMetadata.GetNamedParameterExpectedType(paramName) ?? defaultType; return type; } protected internal virtual IType DetermineType(string paramName, object paramValue) { - IType type = parameterMetadata.GetNamedParameterExpectedType(paramName); - if (type == null) - { - type = GuessType(paramValue); - } + IType type = parameterMetadata.GetNamedParameterExpectedType(paramName) ?? GuessType(paramValue); return type; } protected internal virtual IType DetermineType(string paramName, System.Type clazz) { - IType type = parameterMetadata.GetNamedParameterExpectedType(paramName); - if (type == null) - { - type = GuessType(clazz); - } + IType type = parameterMetadata.GetNamedParameterExpectedType(paramName) ?? GuessType(clazz); return type; } @@ -248,7 +229,7 @@ /// </summary> private string ExpandParameterList(string query, string name, TypedValue typedList, IDictionary<string, TypedValue> namedParamsCopy) { - ICollection vals = (ICollection)typedList.Value; + var vals = (ICollection)typedList.Value; IType type = typedList.Type; if (vals.Count == 1) { @@ -259,7 +240,7 @@ return query; } - StringBuilder list = new StringBuilder(16); + var list = new StringBuilder(16); int i = 0; bool isJpaPositionalParam = parameterMetadata.GetNamedParameterDescriptor(name).JpaStyle; foreach (object obj in vals) @@ -732,6 +713,11 @@ get { return session.Factory.GetReturnTypes(queryString); } } + public virtual string[] ReturnAliases + { + get { return session.Factory.GetReturnAliases(queryString); } + } + // TODO: maybe call it RowSelection ? public RowSelection Selection { @@ -772,6 +758,12 @@ public abstract IQuery SetLockMode(string alias, LockMode lockMode); + public IQuery SetComment(string comment) + { + this.comment = comment; + return this; + } + internal protected ISessionImplementor Session { get { return session; } @@ -921,14 +913,14 @@ ValueArray(), namedParams, LockModes, - selection, + Selection, readOnly, cacheable, cacheRegion, - string.Empty, - collectionKey == null ? null : new object[] { collectionKey }, + comment, + collectionKey == null ? null : new[] { collectionKey }, optionalObject, - optionalEntityName ?? null, + optionalEntityName, optionalId, resultTransformer); } Modified: trunk/nhibernate/src/NHibernate/Impl/SqlQueryImpl.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Impl/SqlQueryImpl.cs 2008-10-19 21:16:44 UTC (rev 3867) +++ trunk/nhibernate/src/NHibernate/Impl/SqlQueryImpl.cs 2008-10-20 15:43:09 UTC (rev 3868) @@ -104,15 +104,15 @@ return result; } - //public string[] ReturnAliases - //{ - // get { throw new NotSupportedException( "SQL queries do not currently support returning aliases" ); } - //} + public override string[] ReturnAliases + { + get { throw new NotSupportedException("SQL queries do not currently support returning aliases"); } + } - //public override IType[] ReturnTypes - //{ - // get { throw new NotSupportedException( "not yet implemented for SQL queries" ); } - //} + public override IType[] ReturnTypes + { + get { throw new NotSupportedException("not yet implemented for SQL queries"); } + } public override IList List() { Modified: trunk/nhibernate/src/NHibernate/nhibernate-configuration.xsd =================================================================== --- trunk/nhibernate/src/NHibernate/nhibernate-configuration.xsd 2008-10-19 21:16:44 UTC (rev 3867) +++ trunk/nhibernate/src/NHibernate/nhibernate-configuration.xsd 2008-10-20 15:43:09 UTC (rev 3868) @@ -98,6 +98,7 @@ <xs:enumeration value="adonet.factory_class" /> <xs:enumeration value="default_batch_fetch_size" /> <xs:enumeration value="default_entity_mode" /> + <xs:enumeration value="use_sql_comments" /> </xs:restriction> </xs:simpleType> </xs:attribute> Property changes on: trunk/nhibernate/src/NHibernate.Test/HQL ___________________________________________________________________ Added: svn:mergeinfo + Modified: trunk/nhibernate/src/NHibernate.Test/HQL/Animal.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/HQLFunctionTest/Animal.cs 2008-10-18 22:18:15 UTC (rev 3865) +++ trunk/nhibernate/src/NHibernate.Test/HQL/Animal.cs 2008-10-20 15:43:09 UTC (rev 3868) @@ -1,4 +1,4 @@ -namespace NHibernate.Test.HQLFunctionTest +namespace NHibernate.Test.Hql { public class Animal { Modified: trunk/nhibernate/src/NHibernate.Test/HQL/Animal.hbm.xml =================================================================== --- trunk/nhibernate/src/NHibernate.Test/HQLFunctionTest/Animal.hbm.xml 2008-10-18 22:18:15 UTC (rev 3865) +++ trunk/nhibernate/src/NHibernate.Test/HQL/Animal.hbm.xml 2008-10-20 15:43:09 UTC (rev 3868) @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="utf-8" ?> <hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" assembly="NHibernate.Test" - namespace="NHibernate.Test.HQLFunctionTest" + namespace="NHibernate.Test.Hql" default-access="field.camelcase-underscore" default-lazy="true"> Modified: trunk/nhibernate/src/NHibernate.Test/HQL/BaseFunctionFixture.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/HQLFunctionTest/BaseFunctionFixture.cs 2008-10-18 22:18:15 UTC (rev 3865) +++ trunk/nhibernate/src/NHibernate.Test/HQL/BaseFunctionFixture.cs 2008-10-20 15:43:09 UTC (rev 3868) @@ -3,7 +3,7 @@ using NHibernate.Engine; using NUnit.Framework; -namespace NHibernate.Test.HQLFunctionTest +namespace NHibernate.Test.Hql { public class BaseFunctionFixture { Modified: trunk/nhibernate/src/NHibernate.Test/HQL/HQLFunctions.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/HQLFunctionTest/HQLFunctions.cs 2008-10-18 22:18:15 UTC (rev 3865) +++ trunk/nhibernate/src/NHibernate.Test/HQL/HQLFunctions.cs 2008-10-20 15:43:09 UTC (rev 3868) @@ -4,7 +4,7 @@ using NHibernate.Dialect.Function; using NUnit.Framework; -namespace NHibernate.Test.HQLFunctionTest +namespace NHibernate.Test.Hql { /// <summary> /// This test run each HQL function separatelly so is easy to know wich function need @@ -42,7 +42,7 @@ protected override IList Mappings { - get { return new string[] { "HQLFunctionTest.Animal.hbm.xml", "HQLFunctionTest.MaterialResource.hbm.xml" }; } + get { return new string[] { "HQL.Animal.hbm.xml", "HQL.MaterialResource.hbm.xml" }; } } protected override void OnTearDown() Added: trunk/nhibernate/src/NHibernate.Test/HQL/HqlFixture.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/HQL/HqlFixture.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/HQL/HqlFixture.cs 2008-10-20 15:43:09 UTC (rev 3868) @@ -0,0 +1,74 @@ +using System.Collections; +using NHibernate.Engine.Query; +using NHibernate.Util; +using NUnit.Framework; + +namespace NHibernate.Test.Hql +{ + [TestFixture, Ignore("Not supported yet.")] + public class HqlFixture : TestCase + { + protected override string MappingsAssembly + { + get { return "NHibernate.Test"; } + } + + protected override IList Mappings + { + get { return new[] {"HQL.Animal.hbm.xml"}; } + } + + protected HQLQueryPlan CreateQueryPlan(string hql, bool scalar) + { + return new HQLQueryPlan(hql, scalar, new CollectionHelper.EmptyMapClass<string, IFilter>(), sessions); + } + + protected HQLQueryPlan CreateQueryPlan(string hql) + { + return CreateQueryPlan(hql, false); + } + + private static void Check(ReturnMetadata returnMetadata, bool expectingEmptyTypes, bool expectingEmptyAliases) + { + Assert.IsNotNull(returnMetadata, "null return metadata"); + Assert.IsNotNull(returnMetadata, "null return metadata - types"); + Assert.AreEqual(1, returnMetadata.ReturnTypes.Length, "unexpected return size"); + + if (expectingEmptyTypes) + { + Assert.IsNull(returnMetadata.ReturnTypes[0], "non-empty types"); + } + else + { + Assert.IsNotNull(returnMetadata.ReturnTypes[0], "empty types"); + } + + if (expectingEmptyAliases) + { + Assert.IsNull(returnMetadata.ReturnAliases, "non-empty aliases"); + } + else + { + Assert.IsNotNull(returnMetadata.ReturnAliases, "empty aliases"); + Assert.IsNotNull(returnMetadata.ReturnAliases[0], "empty aliases"); + } + } + + [Test] + public void ReturnMetadata() + { + HQLQueryPlan plan; + plan = CreateQueryPlan("from Animal a"); + Check(plan.ReturnMetadata, false, true); + + plan = CreateQueryPlan("select a as animal from Animal a"); + Check(plan.ReturnMetadata, false, false); + + plan = CreateQueryPlan("from java.lang.Object"); + Check(plan.ReturnMetadata, true, true); + + plan = CreateQueryPlan("select o as entity from java.lang.Object o"); + Check(plan.ReturnMetadata, true, false); + } + } +} \ No newline at end of file Property changes on: trunk/nhibernate/src/NHibernate.Test/HQL/HqlFixture.cs ___________________________________________________________________ Added: svn:mergeinfo + Modified: trunk/nhibernate/src/NHibernate.Test/HQL/Human.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/HQLFunctionTest/Human.cs 2008-10-18 22:18:15 UTC (rev 3865) +++ trunk/nhibernate/src/NHibernate.Test/HQL/Human.cs 2008-10-20 15:43:09 UTC (rev 3868) @@ -1,6 +1,6 @@ using System; -namespace NHibernate.Test.HQLFunctionTest +namespace NHibernate.Test.Hql { public class Human: Animal { Modified: trunk/nhibernate/src/NHibernate.Test/HQL/MaterialResource.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/HQLFunctionTest/MaterialResource.cs 2008-10-18 22:18:15 UTC (rev 3865) +++ trunk/nhibernate/src/NHibernate.Test/HQL/MaterialResource.cs 2008-10-20 15:43:09 UTC (rev 3868) @@ -1,6 +1,6 @@ using System; -namespace NHibernate.Test.HQLFunctionTest +namespace NHibernate.Test.Hql { public class MaterialResource { Modified: trunk/nhibernate/src/NHibernate.Test/HQL/MaterialResource.hbm.xml =================================================================== --- trunk/nhibernate/src/NHibernate.Test/HQLFunctionTest/MaterialResource.hbm.xml 2008-10-18 22:18:15 UTC (rev 3865) +++ trunk/nhibernate/src/NHibernate.Test/HQL/MaterialResource.hbm.xml 2008-10-20 15:43:09 UTC (rev 3868) @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="utf-8" ?> <hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" assembly="NHibernate.Test" - namespace="NHibernate.Test.HQLFunctionTest" + namespace="NHibernate.Test.Hql" default-access="field.camelcase-underscore" default-lazy="true"> Modified: trunk/nhibernate/src/NHibernate.Test/HQL/Name.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/HQLFunctionTest/Name.cs 2008-10-18 22:18:15 UTC (rev 3865) +++ trunk/nhibernate/src/NHibernate.Test/HQL/Name.cs 2008-10-20 15:43:09 UTC (rev 3868) @@ -1,6 +1,6 @@ using System; -namespace NHibernate.Test.HQLFunctionTest +namespace NHibernate.Test.Hql { public class Name { Modified: trunk/nhibernate/src/NHibernate.Test/HQL/SQLFunctionTemplateTest.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/HQLFunctionTest/SQLFunctionTemplateTest.cs 2008-10-18 22:18:15 UTC (rev 3865) +++ trunk/nhibernate/src/NHibernate.Test/HQL/SQLFunctionTemplateTest.cs 2008-10-20 15:43:09 UTC (rev 3868) @@ -4,7 +4,7 @@ using NHibernate.Dialect.Function; using NUnit.Framework; -namespace NHibernate.Test.HQLFunctionTest +namespace NHibernate.Test.Hql { [TestFixture] public class SQLFunctionTemplateTest : BaseFunctionFixture Modified: trunk/nhibernate/src/NHibernate.Test/HQL/SimpleFunctionsTest.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/HQLFunctionTest/SimpleFunctionsTest.cs 2008-10-18 22:18:15 UTC (rev 3865) +++ trunk/nhibernate/src/NHibernate.Test/HQL/SimpleFunctionsTest.cs 2008-10-20 15:43:09 UTC (rev 3868) @@ -5,7 +5,7 @@ using NUnit.Framework; using NHibernate.SqlCommand; -namespace NHibernate.Test.HQLFunctionTest +namespace NHibernate.Test.Hql { [TestFixture] public class SimpleFunctionsTest : BaseFunctionFixture Added: trunk/nhibernate/src/NHibernate.Test/HQL/SqlCommentsFixture.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/HQL/SqlCommentsFixture.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/HQL/SqlCommentsFixture.cs 2008-10-20 15:43:09 UTC (rev 3868) @@ -0,0 +1,40 @@ +using System.Collections; +using NHibernate.Cfg; +using NUnit.Framework; +using NUnit.Framework.SyntaxHelpers; + +namespace NHibernate.Test.HQL +{ + [TestFixture] + public class SqlCommentsFixture : TestCase + { + protected override string MappingsAssembly + { + get { return "NHibernate.Test"; } + } + + protected override IList Mappings + { + get { return new[] { "HQL.Animal.hbm.xml" }; } + } + + protected override void Configure(Configuration configuration) + { + configuration.SetProperty(Environment.UseSqlComments, "true"); + } + + [Test] + public void CommentsInQuery() + { + using (ISession s = OpenSession()) + { + using (var sl = new SqlLogSpy()) + { + s.CreateQuery("from Animal").SetComment("This is my query").List(); + string sql = sl.Appender.GetEvents()[0].RenderedMessage; + Assert.That(sql.IndexOf("This is my query"), Is.GreaterThan(0)); + } + } + } + } +} \ No newline at end of file Modified: trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2008-10-19 21:16:44 UTC (rev 3867) +++ trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2008-10-20 15:43:09 UTC (rev 3868) @@ -274,16 +274,18 @@ <Compile Include="GenericTest\SetGeneric\A.cs" /> <Compile Include="GenericTest\SetGeneric\B.cs" /> <Compile Include="GenericTest\SetGeneric\SetGenericFixture.cs" /> - <Compile Include="HQLFunctionTest\Animal.cs" /> - <Compile Include="HQLFunctionTest\BaseFunctionFixture.cs" /> - <Compile Include="HQLFunctionTest\HQLFunctions.cs" /> - <Compile Include="HQLFunctionTest\Human.cs" /> - <Compile Include="HQLFunctionTest\MaterialResource.cs" /> - <Compile Include="HQLFunctionTest\Name.cs" /> - <Compile Include="HQLFunctionTest\SimpleFunctionsTest.cs" /> - <Compile Include="HQLFunctionTest\SQLFunctionTemplateTest.cs" /> + <Compile Include="HQL\Animal.cs" /> + <Compile Include="HQL\BaseFunctionFixture.cs" /> + <Compile Include="HQL\HQLFunctions.cs" /> + <Compile Include="HQL\Human.cs" /> + <Compile Include="HQL\MaterialResource.cs" /> + <Compile Include="HQL\Name.cs" /> + <Compile Include="HQL\SimpleFunctionsTest.cs" /> + <Compile Include="HQL\SqlCommentsFixture.cs" /> + <Compile Include="HQL\SQLFunctionTemplateTest.cs" /> <Compile Include="BulkManipulation\NativeSQLBulkOperations.cs" /> <Compile Include="BulkManipulation\Vehicles.cs" /> + <Compile Include="HQL\HqlFixture.cs" /> <Compile Include="IdGen\Enhanced\SequenceStyleConfigUnitFixture.cs" /> <Compile Include="IdTest\Car.cs" /> <Compile Include="IdTest\HiLoInt16Class.cs" /> @@ -1184,7 +1186,7 @@ <EmbeddedResource Include="NHSpecificTest\NH712\Mappings.hbm.xml" /> </ItemGroup> <ItemGroup> - <EmbeddedResource Include="HQLFunctionTest\Animal.hbm.xml" /> + <EmbeddedResource Include="HQL\Animal.hbm.xml" /> </ItemGroup> <ItemGroup> <EmbeddedResource Include="ExpressionTest\SubQueries\Mappings.hbm.xml" /> @@ -1294,7 +1296,7 @@ <EmbeddedResource Include="NHSpecificTest\NH980\Mappings.hbm.xml" /> </ItemGroup> <ItemGroup> - <EmbeddedResource Include="HQLFunctionTest\MaterialResource.hbm.xml" /> + <EmbeddedResource Include="HQL\MaterialResource.hbm.xml" /> </ItemGroup> <ItemGroup> <EmbeddedResource Include="Join\CompositeKey.hbm.xml" /> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |