|
From: <fab...@us...> - 2009-02-24 18:00:22
|
Revision: 4097
http://nhibernate.svn.sourceforge.net/nhibernate/?rev=4097&view=rev
Author: fabiomaulo
Date: 2009-02-24 18:00:18 +0000 (Tue, 24 Feb 2009)
Log Message:
-----------
Bug fix in SingletonEnumerable
Modified Paths:
--------------
trunk/nhibernate/src/NHibernate/Util/SingletonEnumerable.cs
trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj
Added Paths:
-----------
trunk/nhibernate/src/NHibernate.Test/UtilityTest/SingletonEnumerableFixture.cs
Modified: trunk/nhibernate/src/NHibernate/Util/SingletonEnumerable.cs
===================================================================
--- trunk/nhibernate/src/NHibernate/Util/SingletonEnumerable.cs 2009-02-21 17:08:24 UTC (rev 4096)
+++ trunk/nhibernate/src/NHibernate/Util/SingletonEnumerable.cs 2009-02-24 18:00:18 UTC (rev 4097)
@@ -44,11 +44,7 @@
public T Current
{
- get
- {
- if (hasNext) hasNext = false;
- return current;
- }
+ get { return current; }
}
#endregion
@@ -65,7 +61,9 @@
public bool MoveNext()
{
- return hasNext;
+ var result = hasNext;
+ hasNext = false;
+ return result;
}
public void Reset()
Modified: trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2009-02-21 17:08:24 UTC (rev 4096)
+++ trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2009-02-24 18:00:18 UTC (rev 4097)
@@ -1100,6 +1100,7 @@
<Compile Include="UtilityTest\ReflectHelperFixture.cs" />
<Compile Include="UtilityTest\SafetyEnumerableFixture.cs" />
<Compile Include="UtilityTest\SequencedHashMapFixture.cs" />
+ <Compile Include="UtilityTest\SingletonEnumerableFixture.cs" />
<Compile Include="UtilityTest\StringHelperFixture.cs" />
<Compile Include="UtilityTest\StringTokenizerFixture.cs" />
<Compile Include="UtilityTest\ThreadSafeDictionaryFixture.cs" />
Added: trunk/nhibernate/src/NHibernate.Test/UtilityTest/SingletonEnumerableFixture.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/UtilityTest/SingletonEnumerableFixture.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/UtilityTest/SingletonEnumerableFixture.cs 2009-02-24 18:00:18 UTC (rev 4097)
@@ -0,0 +1,50 @@
+using System.Collections;
+using NHibernate.Util;
+using NUnit.Framework;
+using NUnit.Framework.SyntaxHelpers;
+
+namespace NHibernate.Test.UtilityTest
+{
+ [TestFixture]
+ public class SingletonEnumerableFixture
+ {
+ [Test]
+ public void DifferentEnumeratorInEachRequest()
+ {
+ var obj = new object();
+ var se = new SingletonEnumerable<object>(obj);
+ Assert.That(!ReferenceEquals(se.GetEnumerator(), se.GetEnumerator()));
+
+ // with no generic enumerator
+ var see = (IEnumerable) se;
+ Assert.That(!ReferenceEquals(see.GetEnumerator(), see.GetEnumerator()));
+ }
+
+ [Test]
+ public void ShouldWorkInForeach()
+ {
+ var obj = new object();
+ var se = new SingletonEnumerable<object>(obj);
+ int i=0;
+ foreach (var o in se)
+ {
+ i++;
+ }
+ Assert.That(i, Is.EqualTo(1));
+ }
+
+ [Test]
+ public void ShouldWorkAsEnumerator()
+ {
+ var obj = new object();
+ var se = new SingletonEnumerable<object>(obj);
+ var enu = se.GetEnumerator();
+ int i = 0;
+ while (enu.MoveNext())
+ {
+ i++;
+ }
+ Assert.That(i, Is.EqualTo(1));
+ }
+ }
+}
\ No newline at end of file
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|