You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ibatis.apache.org by gb...@apache.org on 2005/10/13 20:14:00 UTC
svn commit: r320845 - in /ibatis/trunk/cs/mapper:
IBatisNet.Common/Utilities/Objects/ObjectProbe.cs
IBatisNet.DataMapper.Test/NUnit/SqlMapTests/CacheKeyTest.cs
Author: gbayon
Date: Thu Oct 13 11:13:49 2005
New Revision: 320845
URL: http://svn.apache.org/viewcvs?rev=320845&view=rev
Log:
- Updated for IBATISNET-119
Modified:
ibatis/trunk/cs/mapper/IBatisNet.Common/Utilities/Objects/ObjectProbe.cs
ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/NUnit/SqlMapTests/CacheKeyTest.cs
Modified: ibatis/trunk/cs/mapper/IBatisNet.Common/Utilities/Objects/ObjectProbe.cs
URL: http://svn.apache.org/viewcvs/ibatis/trunk/cs/mapper/IBatisNet.Common/Utilities/Objects/ObjectProbe.cs?rev=320845&r1=320844&r2=320845&view=diff
==============================================================================
--- ibatis/trunk/cs/mapper/IBatisNet.Common/Utilities/Objects/ObjectProbe.cs (original)
+++ ibatis/trunk/cs/mapper/IBatisNet.Common/Utilities/Objects/ObjectProbe.cs Thu Oct 13 11:13:49 2005
@@ -680,7 +680,7 @@
if (IsSimpleType(value.GetType()))
{
hashcode += value.GetHashCode();
- hashcode += value.ToString().GetHashCode();
+ hashcode += value.ToString().GetHashCode()*37;
}
else
{
Modified: ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/NUnit/SqlMapTests/CacheKeyTest.cs
URL: http://svn.apache.org/viewcvs/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/NUnit/SqlMapTests/CacheKeyTest.cs?rev=320845&r1=320844&r2=320845&view=diff
==============================================================================
--- ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/NUnit/SqlMapTests/CacheKeyTest.cs (original)
+++ ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/NUnit/SqlMapTests/CacheKeyTest.cs Thu Oct 13 11:13:49 2005
@@ -11,17 +11,27 @@
[TestFixture]
public class CacheKeyTest
{
- private const long A_LONG = 1L;
- private const long ANOTHER_LONG_WITH_SAME_HASHCODE = -9223372034707292159;
+ [Test]
+ public void ShouldNotConsider1LAndNegative9223372034707292159LToBeEqual()
+ {
+ // old version of ObjectProbe gave TestClass based on these longs the same HashCode
+ DoTestClassEquals(1L, -9223372034707292159L);
+ }
[Test]
- public void ShouldNotBeConsideredEqualWhenParametersHaveTheSameHashCodeButAreNotEqual()
+ public void ShouldNotConsider1LAndNegative9223372036524971138LToBeEqual()
+ {
+ // current version of ObjectProbe gives TestClass based on these longs the same HashCode
+ DoTestClassEquals(1L, -9223372036524971138L);
+ }
+
+ private static void DoTestClassEquals(long firstLong, long secondLong)
{
TypeHandlerFactory factory = new TypeHandlerFactory();
// Two cache keys are equal except for the parameter.
- CacheKey key = new CacheKey(factory, "STATEMENT", "SQL", new TestClass(A_LONG), new string[] {"AProperty"}, 0, 0, CacheKeyType.Object);
- CacheKey aDifferentKey = new CacheKey(factory, "STATEMENT", "SQL", new TestClass(ANOTHER_LONG_WITH_SAME_HASHCODE), new string[] {"AProperty"}, 0, 0, CacheKeyType.Object);
+ CacheKey key = new CacheKey(factory, "STATEMENT", "SQL", new TestClass(firstLong), new string[] {"AProperty"}, 0, 0, CacheKeyType.Object);
+ CacheKey aDifferentKey = new CacheKey(factory, "STATEMENT", "SQL", new TestClass(secondLong), new string[] {"AProperty"}, 0, 0, CacheKeyType.Object);
Assert.IsFalse(aDifferentKey.Equals(key)); // should not be equal.
}