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