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 2006/05/25 18:11:31 UTC

svn commit: r409410 - in /ibatis/trunk/cs/mapper: IBatisNet.Common.Test/Domain/ IBatisNet.Common.Test/NUnit/CommonTests/Utilities/ IBatisNet.Common/Utilities/Objects/Members/ IBatisNet.DataMapper/DataExchange/

Author: gbayon
Date: Thu May 25 09:11:28 2006
New Revision: 409410

URL: http://svn.apache.org/viewvc?rev=409410&view=rev
Log:
- Fix from Tom Nguyen + nunit test

Modified:
    ibatis/trunk/cs/mapper/IBatisNet.Common.Test/Domain/Property.cs
    ibatis/trunk/cs/mapper/IBatisNet.Common.Test/NUnit/CommonTests/Utilities/PropertyAccessorTest.cs
    ibatis/trunk/cs/mapper/IBatisNet.Common/Utilities/Objects/Members/DelegatePropertyGetAccessor.cs
    ibatis/trunk/cs/mapper/IBatisNet.DataMapper/DataExchange/DotNetObjectDataExchange.cs

Modified: ibatis/trunk/cs/mapper/IBatisNet.Common.Test/Domain/Property.cs
URL: http://svn.apache.org/viewvc/ibatis/trunk/cs/mapper/IBatisNet.Common.Test/Domain/Property.cs?rev=409410&r1=409409&r2=409410&view=diff
==============================================================================
--- ibatis/trunk/cs/mapper/IBatisNet.Common.Test/Domain/Property.cs (original)
+++ ibatis/trunk/cs/mapper/IBatisNet.Common.Test/Domain/Property.cs Thu May 25 09:11:28 2006
@@ -173,6 +173,7 @@
     public class PropertySon : Property
     {
         private int _int = int.MinValue;
+        private float _float = float.MinValue;
 
         private int PrivateIndex
         {
@@ -205,6 +206,12 @@
         {
             get { return new DateTime(2000,1,1); }
             set { throw new InvalidOperationException("Test virtual"); }
+        }
+
+        public new float Float
+        {
+            get { return _float; }
+            set { _float = value*2; }
         }
     }
 }

Modified: ibatis/trunk/cs/mapper/IBatisNet.Common.Test/NUnit/CommonTests/Utilities/PropertyAccessorTest.cs
URL: http://svn.apache.org/viewvc/ibatis/trunk/cs/mapper/IBatisNet.Common.Test/NUnit/CommonTests/Utilities/PropertyAccessorTest.cs?rev=409410&r1=409409&r2=409410&view=diff
==============================================================================
--- ibatis/trunk/cs/mapper/IBatisNet.Common.Test/NUnit/CommonTests/Utilities/PropertyAccessorTest.cs (original)
+++ ibatis/trunk/cs/mapper/IBatisNet.Common.Test/NUnit/CommonTests/Utilities/PropertyAccessorTest.cs Thu May 25 09:11:28 2006
@@ -1,8 +1,7 @@
 using System;
-using System.Reflection;
+
 using IBatisNet.Common.Test.Domain;
 using IBatisNet.Common.Utilities;
-using IBatisNet.Common.Utilities.Objects;
 using IBatisNet.Common.Utilities.Objects.Members;
 using NUnit.Framework;
 
@@ -138,8 +137,6 @@
             IGetAccessor accessorGet = factoryGet.CreateGetAccessor(typeof(PropertySon), "Account");
             ISetAccessor accessorSet = factorySet.CreateSetAccessor(typeof(PropertySon), "Account");
 
-            PropertySon prop = new PropertySon();
-
             PropertySon son = new PropertySon();
             Account account = (Account)accessorGet.Get(son);
 
@@ -157,8 +154,6 @@
             IGetAccessor accessorGet = factoryGet.CreateGetAccessor(typeof(PropertySon), "Int");
             ISetAccessor accessorSet = factorySet.CreateSetAccessor(typeof(PropertySon), "Int");
 
-            PropertySon prop = new PropertySon();
-
             PropertySon son = new PropertySon();
             Int32 i = (Int32)accessorGet.Get(son);
 
@@ -176,8 +171,6 @@
             IGetAccessor accessorGet = factoryGet.CreateGetAccessor(typeof(PropertySon), "DateTime");
             ISetAccessor accessorSet = factorySet.CreateSetAccessor(typeof(PropertySon), "DateTime");
 
-            PropertySon prop = new PropertySon();
-
             PropertySon son = new PropertySon();
             DateTime date = (DateTime)accessorGet.Get(son);
 
@@ -193,8 +186,6 @@
         {
             ISetAccessor accessorSet = factorySet.CreateSetAccessor(typeof(PropertySon), "PrivateIndex");
 
-            PropertySon prop = new PropertySon();
-
             PropertySon son = new PropertySon();
             accessorSet.Set(son, -99);
 
@@ -209,14 +200,39 @@
         {
             ISetAccessor accessorSet = factorySet.CreateSetAccessor(typeof(PropertySon), "Index");
 
-            PropertySon prop = new PropertySon();
-
             PropertySon son = new PropertySon();
             accessorSet.Set(son, -99);
 
             Assert.AreEqual(-99, son.Index);
         }
 
+        /// <summary>
+        /// Test set IMemberAccessor on a property override by new
+        /// </summary>
+        [Test]
+        public void TestSetPropertyOverrideByNew()
+        {
+            ISetAccessor accessorSet = factorySet.CreateSetAccessor(typeof(PropertySon), "Float");
+
+            PropertySon son = new PropertySon();
+            accessorSet.Set(son, -99.99f);
+
+            Assert.AreEqual(-99.99f*2, son.Float);
+        }
+
+        /// <summary>
+        /// Test get IMemberAccessor on a property override by new
+        /// </summary>
+        [Test]
+        public void TestGetPropertyOverrideByNew()
+        {
+            IGetAccessor accessorGet = factoryGet.CreateGetAccessor(typeof(PropertySon), "Float");
+
+            PropertySon son = new PropertySon();
+            son.Float = -99.99f;
+
+            Assert.AreEqual(-99.99f * 2, accessorGet.Get(son));
+        }
     }
 
 }

Modified: ibatis/trunk/cs/mapper/IBatisNet.Common/Utilities/Objects/Members/DelegatePropertyGetAccessor.cs
URL: http://svn.apache.org/viewvc/ibatis/trunk/cs/mapper/IBatisNet.Common/Utilities/Objects/Members/DelegatePropertyGetAccessor.cs?rev=409410&r1=409409&r2=409410&view=diff
==============================================================================
--- ibatis/trunk/cs/mapper/IBatisNet.Common/Utilities/Objects/Members/DelegatePropertyGetAccessor.cs (original)
+++ ibatis/trunk/cs/mapper/IBatisNet.Common/Utilities/Objects/Members/DelegatePropertyGetAccessor.cs Thu May 25 09:11:28 2006
@@ -51,7 +51,7 @@
         private Type _targetType = null;
 
         /// <summary>
-        /// Initializes a new instance of the <see cref="T:DelegatePropertyGetAccessor"/> class
+        /// Initializes a new instance of the <see cref="DelegatePropertyGetAccessor"/> class
         /// for get property access via DynamicMethod.
         /// </summary>
         /// <param name="targetObjectType">Type of the target object.</param>

Modified: ibatis/trunk/cs/mapper/IBatisNet.DataMapper/DataExchange/DotNetObjectDataExchange.cs
URL: http://svn.apache.org/viewvc/ibatis/trunk/cs/mapper/IBatisNet.DataMapper/DataExchange/DotNetObjectDataExchange.cs?rev=409410&r1=409409&r2=409410&view=diff
==============================================================================
--- ibatis/trunk/cs/mapper/IBatisNet.DataMapper/DataExchange/DotNetObjectDataExchange.cs (original)
+++ ibatis/trunk/cs/mapper/IBatisNet.DataMapper/DataExchange/DotNetObjectDataExchange.cs Thu May 25 09:11:28 2006
@@ -78,8 +78,9 @@
 		/// <param name="dataBaseValue"></param>
 		public override void SetData(ref object target, ResultProperty mapping, object dataBaseValue)
 		{
-            if ( (target.GetType() != _parameterClass)
-                && !_parameterClass.IsSubclassOf(target.GetType())) 
+		    Type targetType = target.GetType();
+            if ((targetType != _parameterClass)
+                && !targetType.IsSubclassOf(_parameterClass)) 
 			{
                 throw new ArgumentException("Could not set value of type '" + target.GetType() + "' in property '" + mapping.PropertyName + "' of type '" + _parameterClass + "'");
 			}