From: <fab...@us...> - 2009-03-28 16:17:31
|
Revision: 4156 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=4156&view=rev Author: fabiomaulo Date: 2009-03-28 16:17:20 +0000 (Sat, 28 Mar 2009) Log Message: ----------- - Fix NH-1713 - Removed prepare_sql from our configuration in order to use the default defined in the dialect. Modified Paths: -------------- trunk/nhibernate/src/NHibernate/Dialect/MsSql2000Dialect.cs trunk/nhibernate/src/NHibernate/Dialect/Oracle8iDialect.cs trunk/nhibernate/src/NHibernate.Test/App.config trunk/nhibernate/src/NHibernate.Test/CfgTest/ConfigurationFixture.cs trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj Added Paths: ----------- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1713/ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1713/Domain.cs trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1713/Fixture.cs trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1713/Mappings.hbm.xml Modified: trunk/nhibernate/src/NHibernate/Dialect/MsSql2000Dialect.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Dialect/MsSql2000Dialect.cs 2009-03-28 15:28:16 UTC (rev 4155) +++ trunk/nhibernate/src/NHibernate/Dialect/MsSql2000Dialect.cs 2009-03-28 16:17:20 UTC (rev 4156) @@ -131,7 +131,6 @@ RegisterKeyword("integer"); DefaultProperties[Environment.ConnectionDriver] = "NHibernate.Driver.SqlClientDriver"; - DefaultProperties[Environment.PrepareSql] = "true"; } /// <summary></summary> Modified: trunk/nhibernate/src/NHibernate/Dialect/Oracle8iDialect.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Dialect/Oracle8iDialect.cs 2009-03-28 15:28:16 UTC (rev 4155) +++ trunk/nhibernate/src/NHibernate/Dialect/Oracle8iDialect.cs 2009-03-28 16:17:20 UTC (rev 4156) @@ -218,7 +218,6 @@ protected internal virtual void RegisterDefaultProperties() { - DefaultProperties[Environment.PrepareSql] = "false"; //DefaultProperties[Environment.DefaultBatchFetchSize] = DefaultBatchSize; It can break some test and it is a user matter // Oracle driver reports to support GetGeneratedKeys(), but they only Modified: trunk/nhibernate/src/NHibernate.Test/App.config =================================================================== --- trunk/nhibernate/src/NHibernate.Test/App.config 2009-03-28 15:28:16 UTC (rev 4155) +++ trunk/nhibernate/src/NHibernate.Test/App.config 2009-03-28 16:17:20 UTC (rev 4156) @@ -46,7 +46,6 @@ <property name="connection.provider">NHibernate.Test.DebugConnectionProvider, NHibernate.Test</property> <property name="cache.provider_class">NHibernate.Cache.HashtableCacheProvider, NHibernate</property> <property name="cache.use_query_cache">true</property> - <property name="prepare_sql">false</property> <property name="query.startup_check">false</property> <!-- The valid strings for Isolation can be found in the documentation for the System.Data.IsolationLevel Modified: trunk/nhibernate/src/NHibernate.Test/CfgTest/ConfigurationFixture.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/CfgTest/ConfigurationFixture.cs 2009-03-28 15:28:16 UTC (rev 4155) +++ trunk/nhibernate/src/NHibernate.Test/CfgTest/ConfigurationFixture.cs 2009-03-28 16:17:20 UTC (rev 4156) @@ -29,7 +29,8 @@ Assert.IsTrue(cfg.Properties.ContainsKey(Environment.ShowSql)); Assert.IsTrue(cfg.Properties.ContainsKey(Environment.UseQueryCache)); - Assert.IsTrue(cfg.Properties.ContainsKey(Environment.PrepareSql)); + Assert.IsFalse(cfg.Properties.ContainsKey(Environment.PrepareSql), + "Our default conf should not include override the possible Dialect default configuration."); Assert.IsTrue(cfg.Properties.ContainsKey(Environment.Isolation)); Assert.AreEqual("true 1, false 0, yes 1, no 0", cfg.Properties[Environment.QuerySubstitutions]); Assert.AreEqual("Server=localhost;initial catalog=nhibernate;User Id=;Password=", Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1713/Domain.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1713/Domain.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1713/Domain.cs 2009-03-28 16:17:20 UTC (rev 4156) @@ -0,0 +1,8 @@ +namespace NHibernate.Test.NHSpecificTest.NH1713 +{ + public class A + { + public virtual int Id { get; set; } + public virtual decimal? Amount { get; set; } + } +} \ No newline at end of file Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1713/Fixture.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1713/Fixture.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1713/Fixture.cs 2009-03-28 16:17:20 UTC (rev 4156) @@ -0,0 +1,96 @@ +using NHibernate.Cfg; +using NHibernate.Dialect; +using NHibernate.Util; +using NUnit.Framework; +using NUnit.Framework.SyntaxHelpers; + +namespace NHibernate.Test.NHSpecificTest.NH1713 +{ + [TestFixture, Ignore("Should be fixed in some way.")] + public class Fixture : BugTestCase + { + /* NOTE + * This test should be fixed in some way at least to support Money. + * So far it is only a demostration that using + * <property name="prepare_sql">false</property> + * we should do some additional work for INSERT+UPDATE + */ + protected override void Configure(Configuration configuration) + { + configuration.SetProperty(Environment.PrepareSql, "true"); + } + + protected override bool AppliesTo(Dialect.Dialect dialect) + { + return dialect is MsSql2000Dialect; + } + + [Test] + public void Can_Save_Money_Column() + { + Assert.That(PropertiesHelper.GetBoolean(Environment.PrepareSql, cfg.Properties, false)); + var item = new A {Amount = 2600}; + + using (ISession s = OpenSession()) + { + using (ITransaction tx = s.BeginTransaction()) + { + s.Save(item); + tx.Commit(); + } + } + + Assert.IsTrue(item.Id > 0); + + // cleanup + using (ISession s = OpenSession()) + { + using (ITransaction tx = s.BeginTransaction()) + { + s.Delete("from A"); + tx.Commit(); + } + } + } + + [Test] + public void Can_Update_Money_Column() + { + Assert.That(PropertiesHelper.GetBoolean(Environment.PrepareSql, cfg.Properties, false)); + object savedId; + var item = new A {Amount = (decimal?) 2600.55}; + + using (ISession s = OpenSession()) + { + using (ITransaction tx = s.BeginTransaction()) + { + savedId= s.Save(item); + tx.Commit(); + } + } + + Assert.That(item.Id, Is.GreaterThan(0)); + + using (ISession s = OpenSession()) + { + using (ITransaction tx = s.BeginTransaction()) + { + var item2 = s.Load<A>(savedId); + item2.Amount = item2.Amount - 1.5m; + s.SaveOrUpdate(item2); + tx.Commit(); + } + } + + // cleanup + using (ISession s = OpenSession()) + { + using (ITransaction tx = s.BeginTransaction()) + { + s.Delete("from A"); + tx.Commit(); + } + } + } + } +} \ No newline at end of file Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1713/Mappings.hbm.xml =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1713/Mappings.hbm.xml (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1713/Mappings.hbm.xml 2009-03-28 16:17:20 UTC (rev 4156) @@ -0,0 +1,14 @@ +<?xml version="1.0" encoding="utf-8" ?> +<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" + assembly="NHibernate.Test" + namespace="NHibernate.Test.NHSpecificTest.NH1713"> + + <class name="A"> + <id name="Id"> + <generator class="native" /> + </id> + <property name="Amount"> + <column name="Amount" sql-type="money"/> + </property> + </class> +</hibernate-mapping> Modified: trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2009-03-28 15:28:16 UTC (rev 4155) +++ trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2009-03-28 16:17:20 UTC (rev 4156) @@ -298,6 +298,12 @@ <Compile Include="NHSpecificTest\NH1706\Domain.cs" /> <Compile Include="NHSpecificTest\NH1706\KeyPropertyRefFixture.cs" /> <Compile Include="NHSpecificTest\NH1710\Fixture.cs" /> + <Compile Include="NHSpecificTest\NH1713\Domain.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="NHSpecificTest\NH1713\Fixture.cs"> + <SubType>Code</SubType> + </Compile> <Compile Include="NHSpecificTest\NH1715\Fixture.cs" /> <Compile Include="NHSpecificTest\NH1715\ClassA.cs" /> <Compile Include="NHSpecificTest\NH645\HQLFunctionFixture.cs" /> @@ -1694,6 +1700,7 @@ <EmbeddedResource Include="NHSpecificTest\NH1710\InLine.hbm.xml" /> <EmbeddedResource Include="NHSpecificTest\NH1710\Heuristic.hbm.xml" /> <EmbeddedResource Include="NHSpecificTest\NH1710\Defined.hbm.xml" /> + <EmbeddedResource Include="NHSpecificTest\NH1713\Mappings.hbm.xml" /> <EmbeddedResource Include="NHSpecificTest\NH1715\Mappings.hbm.xml" /> <EmbeddedResource Include="NHSpecificTest\DtcFailures\Mappings.hbm.xml" /> <EmbeddedResource Include="NHSpecificTest\NH1694\Mappings.hbm.xml" /> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |