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;


Reply via email to