|
From: <fab...@us...> - 2010-12-17 04:09:06
|
Revision: 5322
http://nhibernate.svn.sourceforge.net/nhibernate/?rev=5322&view=rev
Author: fabiomaulo
Date: 2010-12-17 04:09:00 +0000 (Fri, 17 Dec 2010)
Log Message:
-----------
Fix NH-2460
Modified Paths:
--------------
trunk/nhibernate/src/NHibernate/Type/DateTime2Type.cs
trunk/nhibernate/src/NHibernate/Type/DateTimeType.cs
trunk/nhibernate/src/NHibernate.Test/TypesTest/Decima2lTypeFixture.cs
Modified: trunk/nhibernate/src/NHibernate/Type/DateTime2Type.cs
===================================================================
--- trunk/nhibernate/src/NHibernate/Type/DateTime2Type.cs 2010-12-17 03:06:33 UTC (rev 5321)
+++ trunk/nhibernate/src/NHibernate/Type/DateTime2Type.cs 2010-12-17 04:09:00 UTC (rev 5322)
@@ -51,5 +51,15 @@
return x.Equals(y);
}
+
+ public override object Next(object current, Engine.ISessionImplementor session)
+ {
+ return Seed(session);
+ }
+
+ public override object Seed(Engine.ISessionImplementor session)
+ {
+ return DateTime.Now;
+ }
}
}
\ No newline at end of file
Modified: trunk/nhibernate/src/NHibernate/Type/DateTimeType.cs
===================================================================
--- trunk/nhibernate/src/NHibernate/Type/DateTimeType.cs 2010-12-17 03:06:33 UTC (rev 5321)
+++ trunk/nhibernate/src/NHibernate/Type/DateTimeType.cs 2010-12-17 04:09:00 UTC (rev 5322)
@@ -68,12 +68,12 @@
#region IVersionType Members
- public object Next(object current, ISessionImplementor session)
+ public virtual object Next(object current, ISessionImplementor session)
{
return Seed(session);
}
- public object Seed(ISessionImplementor session)
+ public virtual object Seed(ISessionImplementor session)
{
return TimestampType.Round(DateTime.Now, TimeSpan.TicksPerSecond);
}
Modified: trunk/nhibernate/src/NHibernate.Test/TypesTest/Decima2lTypeFixture.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/TypesTest/Decima2lTypeFixture.cs 2010-12-17 03:06:33 UTC (rev 5321)
+++ trunk/nhibernate/src/NHibernate.Test/TypesTest/Decima2lTypeFixture.cs 2010-12-17 04:09:00 UTC (rev 5322)
@@ -1,6 +1,7 @@
using System;
using NHibernate.Type;
using NUnit.Framework;
+using SharpTestsEx;
namespace NHibernate.Test.TypesTest
{
@@ -14,12 +15,10 @@
public void Next()
{
DateTimeType type = (DateTimeType)NHibernateUtil.DateTime2;
- object current = DateTime.Parse("2004-01-01");
+ object current = DateTime.Now.AddMilliseconds(-1);
object next = type.Next(current, null);
- Assert.IsTrue(next is DateTime, "Next should be DateTime");
- Assert.IsTrue((DateTime)next > (DateTime)current,
- "next should be greater than current (could be equal depending on how quickly this occurs)");
+ next.Should().Be.OfType<DateTime>().And.Value.Should().Be.GreaterThan((DateTime)current);
}
[Test]
@@ -43,5 +42,15 @@
value2 = ((DateTime)value2).AddHours(2);
Assert.IsFalse(value1 == value2, "value2 was changed, value1 should not have changed also.");
}
+
+ [Test]
+ public void EqualityShouldIgnoreKindAndNotIgnoreMillisecond()
+ {
+ var type = (DateTimeType)NHibernateUtil.DateTime;
+ var localTime = DateTime.Now;
+ var unspecifiedKid = new DateTime(localTime.Ticks, DateTimeKind.Unspecified);
+ type.Satisfy(t => t.IsEqual(localTime, unspecifiedKid));
+ type.Satisfy(t => t.IsEqual(localTime, unspecifiedKid, EntityMode.Poco));
+ }
}
}
\ No newline at end of file
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|