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