Author: gbayon
Date: Mon Feb 6 13:08:06 2006
New Revision: 375372
URL: http://svn.apache.org/viewcvs?rev=375372&view=rev
Log:
- Fixed for Array type and .NET v2
Modified:
ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/NUnit/SqlMapTests/CacheKeyTest.cs
ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/NUnit/SqlMapTests/ResultMapTest.cs
ibatis/trunk/cs/mapper/IBatisNet.DataMapper/MappedStatements/MappedStatement.cs
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=375372&r1=375371&r2=375372&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
Mon Feb 6 13:08:06 2006
@@ -47,9 +47,13 @@
key1.Update("HS1CS001");
key2.Update("HS1D4001");
+ /*
+ The string hash algorithm is not an industry standard and is not
guaranteed to produce the same behaviour between versions.
+ And in fact it does not. The .NET 2.0 CLR uses a different algorithm
for string hashing than the .NET 1.1 CLR.
+ */
#if dotnet2
- Assert.Ignore("Will not work in .NET 2.0");
+ Assert.Ignore("The .NET 2.0 CLR uses a different algorithm for
string hashing than the .NET 1.1 CLR.");
#else
Assert.AreEqual( key1.GetHashCode(),
key2.GetHashCode(), "Expect same hashcode.");
Assert.IsFalse( key1.Equals(key2),"Expect not equal");
@@ -57,6 +61,8 @@
}
[Test]
+
+
public void CacheKeyWithTwoParamsSameHashcode()
{
CacheKey key1 = new CacheKey();
@@ -68,12 +74,12 @@
key2.Update("HS1D4001");
key2.Update("HS1CS001");
- #if dotnet2
- Assert.Ignore("Will not work in .NET 2.0");
- #else
+#if dotnet2
+ Assert.Ignore("The .NET 2.0 CLR uses a different algorithm for
string hashing than the .NET 1.1 CLR.");
+#else
Assert.AreEqual(key1.GetHashCode(), key2.GetHashCode(),
"Expect same hashcode.");
Assert.IsFalse(key1.Equals(key2), "Expect not equal");
- #endif
+#endif
}
}
Modified:
ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/NUnit/SqlMapTests/ResultMapTest.cs
URL:
http://svn.apache.org/viewcvs/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/NUnit/SqlMapTests/ResultMapTest.cs?rev=375372&r1=375371&r2=375372&view=diff
==============================================================================
---
ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/NUnit/SqlMapTests/ResultMapTest.cs
(original)
+++
ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/NUnit/SqlMapTests/ResultMapTest.cs
Mon Feb 6 13:08:06 2006
@@ -232,15 +232,11 @@
[Test]
public void TestArrayMapping()
{
- #if dotnet2
- Assert.Ignore("Will not work in .NET 2.0");
- #else
Order order =
(Order)sqlMap.QueryForObject("GetOrderWithLineItemArray", 1);
AssertOrder1(order);
Assert.IsNotNull( order.LineItemsArray );
Assert.AreEqual(2, order.LineItemsArray.Length);
- #endif
}
/// <summary>
Modified:
ibatis/trunk/cs/mapper/IBatisNet.DataMapper/MappedStatements/MappedStatement.cs
URL:
http://svn.apache.org/viewcvs/ibatis/trunk/cs/mapper/IBatisNet.DataMapper/MappedStatements/MappedStatement.cs?rev=375372&r1=375371&r2=375372&view=diff
==============================================================================
---
ibatis/trunk/cs/mapper/IBatisNet.DataMapper/MappedStatements/MappedStatement.cs
(original)
+++
ibatis/trunk/cs/mapper/IBatisNet.DataMapper/MappedStatements/MappedStatement.cs
Mon Feb 6 13:08:06 2006
@@ -1256,9 +1256,13 @@
postSelect.ResultProperty = mapping;
#region Collection object or .NET object
+ if
(mapping.PropertyInfo.PropertyType.BaseType == typeof(Array))
+ {
+ postSelect.Method =
ExecuteMethod.ExecuteQueryForArrayList;
+ }
// Check if the object to Map implement
'IList' or is IList type
// If yes the ResultProperty is map to
a IList object
- if (
(mapping.PropertyInfo.PropertyType.GetInterface("IList") != null) ||
+ else if (
(mapping.PropertyInfo.PropertyType.GetInterface("IList") != null) ||
(mapping.PropertyInfo.PropertyType == typeof(IList)))
{
object values = null;
@@ -1280,10 +1284,6 @@
}
}
}
- else if
(mapping.PropertyInfo.PropertyType.IsArray)
- {
- postSelect.Method =
ExecuteMethod.ExecuteQueryForArrayList;
- }
else // The ResultProperty is map to a
.Net object
{
postSelect.Method =
ExecuteMethod.ExecuteQueryForObject;