From: <fab...@us...> - 2010-07-21 20:31:47
|
Revision: 5033 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=5033&view=rev Author: fabiomaulo Date: 2010-07-21 20:31:40 +0000 (Wed, 21 Jul 2010) Log Message: ----------- Demonstration of ExternalIssue for NH-2207 Modified Paths: -------------- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj Added Paths: ----------- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2207/ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2207/DomainClass.cs trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2207/Mappings.hbm.xml trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2207/SampleTest.cs Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2207/DomainClass.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2207/DomainClass.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2207/DomainClass.cs 2010-07-21 20:31:40 UTC (rev 5033) @@ -0,0 +1,10 @@ +using System; + +namespace NHibernate.Test.NHSpecificTest.NH2207 +{ + public class DomainClass + { + public virtual int Id { get; set; } + public virtual DateTime Date { get; set; } + } +} \ No newline at end of file Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2207/Mappings.hbm.xml =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2207/Mappings.hbm.xml (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2207/Mappings.hbm.xml 2010-07-21 20:31:40 UTC (rev 5033) @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="utf-8" ?> + <hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" + assembly="NHibernate.Test" + namespace="NHibernate.Test.NHSpecificTest.NH2207"> + <class name="DomainClass"> + <id name="Id"> + <generator class="identity" /> + </id> + <property name="Date" type="Date" not-null="true" /> + </class> +</hibernate-mapping> \ No newline at end of file Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2207/SampleTest.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2207/SampleTest.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2207/SampleTest.cs 2010-07-21 20:31:40 UTC (rev 5033) @@ -0,0 +1,89 @@ +using System; +using System.Data; +using NHibernate.Dialect; +using NUnit.Framework; +using SharpTestsEx; + +namespace NHibernate.Test.NHSpecificTest.NH2207 +{ + [TestFixture, Ignore("Demostration of external issue")] + public class SampleTest : BugTestCase + { + protected override bool AppliesTo(Dialect.Dialect dialect) + { + return dialect as MsSql2008Dialect != null; + } + + [Test] + public void WithoutUseNHSqlDataProviderWorkProperly() + { + var createTable = "CREATE TABLE TryDate([Id] [int] IDENTITY(1,1) NOT NULL,[MyDate] [date] NOT NULL)"; + var dropTable = "DROP TABLE TryDate"; + var insertTable = "INSERT INTO TryDate([MyDate]) VALUES(@p0)"; + using(var sqlConnection = new System.Data.SqlClient.SqlConnection(cfg.Properties[Cfg.Environment.ConnectionString])) + { + sqlConnection.Open(); + using (var tx = sqlConnection.BeginTransaction()) + { + var command = sqlConnection.CreateCommand(); + command.Transaction = tx; + command.CommandText = createTable; + command.ExecuteNonQuery(); + tx.Commit(); + } + + try + { + using (var tx = sqlConnection.BeginTransaction()) + { + var command = sqlConnection.CreateCommand(); + command.Transaction = tx; + command.CommandText = insertTable; + var dateParam = command.CreateParameter(); + dateParam.ParameterName = "@p0"; + dateParam.DbType = DbType.Date; + dateParam.Value = DateTime.MinValue.Date; + command.Parameters.Add(dateParam); + command.ExecuteNonQuery(); + tx.Commit(); + } + } + finally + { + using (var tx = sqlConnection.BeginTransaction()) + { + var command = sqlConnection.CreateCommand(); + command.Transaction = tx; + command.CommandText = dropTable; + command.ExecuteNonQuery(); + tx.Commit(); + } + } + } + + } + + [Test] + public void Dates_Before_1753_Should_Not_Insert_Null() + { + object savedId; + var expectedStoredValue = DateTime.MinValue.Date.AddDays(1).Date; + using (ISession session = OpenSession()) + using (var tx = session.BeginTransaction()) + { + var concrete = new DomainClass{Date = expectedStoredValue.AddMinutes(90)}; + savedId = session.Save(concrete); + tx.Commit(); + } + + using (ISession session = OpenSession()) + using (var tx = session.BeginTransaction()) + { + var savedObj = session.Get<DomainClass>(savedId); + savedObj.Date.Should().Be(expectedStoredValue); + session.Delete(savedObj); + tx.Commit(); + } + } + } +} \ No newline at end of file Modified: trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2010-07-21 17:51:11 UTC (rev 5032) +++ trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2010-07-21 20:31:40 UTC (rev 5033) @@ -752,6 +752,8 @@ <Compile Include="NHSpecificTest\NH2195\SQLiteMultiCriteriaTest.cs" /> <Compile Include="NHSpecificTest\NH2201\Fixture.cs" /> <Compile Include="NHSpecificTest\NH2201\Model.cs" /> + <Compile Include="NHSpecificTest\NH2207\DomainClass.cs" /> + <Compile Include="NHSpecificTest\NH2207\SampleTest.cs" /> <Compile Include="NHSpecificTest\NH2230\Domain.cs" /> <Compile Include="NHSpecificTest\NH2230\Fixture.cs" /> <Compile Include="NHSpecificTest\NH2234\Fixture.cs" /> @@ -2198,6 +2200,7 @@ <EmbeddedResource Include="DriverTest\SqlServerCeEntity.hbm.xml" /> <EmbeddedResource Include="CollectionTest\NullableValueTypeElementMapFixture.hbm.xml" /> <Content Include="DynamicEntity\package.html" /> + <EmbeddedResource Include="NHSpecificTest\NH2207\Mappings.hbm.xml" /> <EmbeddedResource Include="NHSpecificTest\NH2243\Mappings.hbm.xml" /> <EmbeddedResource Include="NHSpecificTest\NH1891\FormulaEscaping.hbm.xml" /> <EmbeddedResource Include="NHSpecificTest\NH2242\Mappings.hbm.xml" /> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |