Modified: 
ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/NUnit/SqlMapTests/ResultMapTest.cs
URL: 
http://svn.apache.org/viewvc/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/NUnit/SqlMapTests/ResultMapTest.cs?view=diff&rev=464983&r1=464982&r2=464983
==============================================================================
--- 
ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/NUnit/SqlMapTests/ResultMapTest.cs
 (original)
+++ 
ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/NUnit/SqlMapTests/ResultMapTest.cs
 Tue Oct 17 11:05:38 2006
@@ -8,524 +8,524 @@
 
 namespace IBatisNet.DataMapper.Test.NUnit.SqlMapTests
 {
-       /// <summary>
-       /// Summary description for ResultMapTest.
-       /// </summary>
-       [TestFixture] 
-       public class ResultMapTest : BaseTest
-       {
-               #region SetUp & TearDown
-
-               /// <summary>
-               /// SetUp
-               /// </summary>
-               [SetUp] 
-               public void Init() 
-               {
-                       InitScript( sqlMap.DataSource, ScriptDirectory + 
"account-init.sql" );
-                       InitScript( sqlMap.DataSource, ScriptDirectory + 
"account-procedure.sql", false );
-                       InitScript( sqlMap.DataSource, ScriptDirectory + 
"order-init.sql" );
-                       InitScript( sqlMap.DataSource, ScriptDirectory + 
"line-item-init.sql" );
-                       InitScript( sqlMap.DataSource, ScriptDirectory + 
"enumeration-init.sql" );
-               }
-
-               /// <summary>
-               /// TearDown
-               /// </summary>
-               [TearDown] 
-               public void Dispose()
-               { /* ... */ } 
-
-               #endregion
-
-               #region Result Map test
-
-               /// <summary>
-               /// Test a Result Map property with map by column name
-               /// </summary>
-               [Test] 
-               public void TestColumnsByName() 
-               {
-                       Order order = (Order) 
sqlMap.QueryForObject("GetOrderLiteByColumnName", 1);
-                       AssertOrder1(order);
-               }
-
-               /// <summary>
-               /// Test a Result Map property with map by column index
-               /// </summary>
-               [Test] 
-               public void TestColumnsByIndex() 
-               {
-                       Order order = (Order) 
sqlMap.QueryForObject("GetOrderLiteByColumnIndex", 1);
-                       AssertOrder1(order);
-               }
-
-
-               /// <summary>
-               /// Test extends attribute in a Result Map
-               /// </summary>
-               [Test] 
-               public void TestExtendedResultMap() 
-               {
-                       Order order = (Order) 
sqlMap.QueryForObject("GetOrderWithLineItems", 1);
-
-                       AssertOrder1(order);
-                       Assert.IsNotNull(order.LineItemsIList);
-                       Assert.AreEqual(2, order.LineItemsIList.Count);
-               }
-
-               /// <summary>
-               /// Test lazyLoad attribute in a Result Map property
-               /// </summary>
-               [Test] 
-               public void TestLazyLoad() 
-               {
-                       Order order = (Order) 
sqlMap.QueryForObject("GetOrderWithLineItems", 1);
-
-                       AssertOrder1(order);
-                       
-                       Assert.IsNotNull( order.LineItemsIList );
-                       Assert.IsTrue( typeof(IList).IsAssignableFrom( 
order.LineItemsIList.GetType() ) );
-
-                       Assert.AreEqual(2, order.LineItemsIList.Count);
-                       // After a call to a method from a proxy object,
-                       // the proxy object is replaced by his real object.
-                       Assert.IsTrue( order.LineItemsIList is ArrayList  );
-               }
-
-               /// <summary>
-               /// Test lazyLoad attribute With an Open Connection
-               /// </summary>
-               [Test] 
-               public void TestLazyLoadWithOpenConnection() 
-               {
-                       sqlMap.OpenConnection();
-
-                       Order order = (Order) 
sqlMap.QueryForObject("GetOrderWithLineItems", 1);
-
-                       AssertOrder1(order);
-                       
-                       Assert.IsNotNull( order.LineItemsIList );
-                       Assert.IsTrue( typeof(IList).IsAssignableFrom( 
order.LineItemsIList.GetType() ) );
-
-                       Assert.AreEqual(2, order.LineItemsIList.Count);
-                       // After a call to a method from a proxy object,
-                       // the proxy object is replaced by his real object.
-                       Assert.IsTrue( order.LineItemsIList is ArrayList  );
-
-                       sqlMap.CloseConnection(); 
-               }
-
-               /// <summary>
-               /// Test collection mapping
-               /// order.LineItems
-               /// </summary>
-               [Test] 
-               public void TestLazyWithStronglyTypedCollectionMapping() 
-               {
-                       Order order = (Order) 
sqlMap.QueryForObject("GetOrderWithLineItemCollection", 1);
+    /// <summary>
+    /// Summary description for ResultMapTest.
+    /// </summary>
+    [TestFixture]
+    public class ResultMapTest : BaseTest
+    {
+        #region SetUp & TearDown
+
+        /// <summary>
+        /// SetUp
+        /// </summary>
+        [SetUp]
+        public void Init()
+        {
+            InitScript(sqlMap.DataSource, ScriptDirectory + 
"account-init.sql");
+            InitScript(sqlMap.DataSource, ScriptDirectory + 
"account-procedure.sql", false);
+            InitScript(sqlMap.DataSource, ScriptDirectory + "order-init.sql");
+            InitScript(sqlMap.DataSource, ScriptDirectory + 
"line-item-init.sql");
+            InitScript(sqlMap.DataSource, ScriptDirectory + 
"enumeration-init.sql");
+        }
+
+        /// <summary>
+        /// TearDown
+        /// </summary>
+        [TearDown]
+        public void Dispose()
+        { /* ... */ }
+
+        #endregion
+
+        #region Result Map test
+
+        /// <summary>
+        /// Test a Result Map property with map by column name
+        /// </summary>
+        [Test]
+        public void TestColumnsByName()
+        {
+            Order order = 
(Order)sqlMap.QueryForObject("GetOrderLiteByColumnName", 1);
+            AssertOrder1(order);
+        }
+
+        /// <summary>
+        /// Test a Result Map property with map by column index
+        /// </summary>
+        [Test]
+        public void TestColumnsByIndex()
+        {
+            Order order = 
(Order)sqlMap.QueryForObject("GetOrderLiteByColumnIndex", 1);
+            AssertOrder1(order);
+        }
 
-                       AssertOrder1(order);
 
-                       Assert.IsNotNull(order.LineItemsCollection);
+        /// <summary>
+        /// Test extends attribute in a Result Map
+        /// </summary>
+        [Test]
+        public void TestExtendedResultMap()
+        {
+            Order order = 
(Order)sqlMap.QueryForObject("GetOrderWithLineItems", 1);
+
+            AssertOrder1(order);
+            Assert.IsNotNull(order.LineItemsIList);
+            Assert.AreEqual(2, order.LineItemsIList.Count);
+        }
+
+        /// <summary>
+        /// Test lazyLoad attribute in a Result Map property
+        /// </summary>
+        [Test]
+        public void TestLazyLoad()
+        {
+            Order order = 
(Order)sqlMap.QueryForObject("GetOrderWithLineItems", 1);
+
+            AssertOrder1(order);
+
+            Assert.IsNotNull(order.LineItemsIList);
+            
Assert.IsTrue(typeof(IList).IsAssignableFrom(order.LineItemsIList.GetType()));
+
+            Assert.AreEqual(2, order.LineItemsIList.Count);
+            // After a call to a method from a proxy object,
+            // the proxy object is replaced by his real object.
+            Assert.IsTrue(order.LineItemsIList is ArrayList);
+        }
+
+        /// <summary>
+        /// Test lazyLoad attribute With an Open Connection
+        /// </summary>
+        [Test]
+        public void TestLazyLoadWithOpenConnection()
+        {
+            sqlMap.OpenConnection();
+
+            Order order = 
(Order)sqlMap.QueryForObject("GetOrderWithLineItems", 1);
+
+            AssertOrder1(order);
+
+            Assert.IsNotNull(order.LineItemsIList);
+            
Assert.IsTrue(typeof(IList).IsAssignableFrom(order.LineItemsIList.GetType()));
+
+            Assert.AreEqual(2, order.LineItemsIList.Count);
+            // After a call to a method from a proxy object,
+            // the proxy object is replaced by his real object.
+            Assert.IsTrue(order.LineItemsIList is ArrayList);
+
+            sqlMap.CloseConnection();
+        }
+
+        /// <summary>
+        /// Test collection mapping
+        /// order.LineItems
+        /// </summary>
+        [Test]
+        public void TestLazyWithStronglyTypedCollectionMapping()
+        {
+            Order order = 
(Order)sqlMap.QueryForObject("GetOrderWithLineItemCollection", 1);
+
+            AssertOrder1(order);
+
+            Assert.IsNotNull(order.LineItemsCollection);
             Assert.AreEqual(2, order.LineItemsCollection.Count);
 
             IEnumerator e = 
((IEnumerable)order.LineItemsCollection).GetEnumerator();
-                       while(e.MoveNext())
-                       {
-                               LineItem item = (LineItem)e.Current;
-                               Assert.IsNotNull(item);
-                       }
-               }
-
-               /// <summary>
-               /// Test null value replacement(on string) in a Result property.
-               /// </summary>
-               [Test] 
-               public void TestNullValueReplacementOnString() 
-               {
-                       Account account = (Account) 
sqlMap.QueryForObject("GetAccountViaColumnName", 5);
-                       Assert.AreEqual("[EMAIL PROTECTED]", 
account.EmailAddress);
-               }
-
-               /// <summary>
-               /// Test null value replacement(on enum class) in a Result 
property.
-               /// </summary>
-               [Test] 
-               public void TestNullValueReplacementOnEnum() 
-               {
-                       Enumeration enumClass = new Enumeration();
-                       enumClass.Id = 99;
-                       enumClass.Day = Days.Thu;
-                       enumClass.Color = Colors.Blue;
-                       enumClass.Month = Months.All;
-
-                       sqlMap.Insert("InsertEnumViaParameterMap", enumClass);
-
-                       enumClass = null;
-                       enumClass = 
sqlMap.QueryForObject("GetEnumerationNullValue", 99) as Enumeration;
-
-                       Assert.AreEqual(enumClass.Day, Days.Thu);
-                       Assert.AreEqual(enumClass.Color, Colors.Blue);
-                       Assert.AreEqual(enumClass.Month, Months.All);
-               }
-
-               /// <summary>
-               /// Test usage of dbType in a result map property.
-               /// 
-               /// </summary>
-               [Test]
-               public void TestTypeSpecified() 
-               {
-                       Order order = (Order) 
sqlMap.QueryForObject("GetOrderWithTypes", 1);
-                       AssertOrder1(order);
-               }
-
-
-               /// <summary>
-               /// Test a Complex Object Mapping. 
-               /// Order + Account in Order.Account
-               /// </summary>
-               [Test]
-               public void TestComplexObjectMapping() 
-               {
-                       Order order = (Order) 
sqlMap.QueryForObject("GetOrderWithAccount", 1);
-                       AssertOrder1(order);
-                       AssertAccount1(order.Account);
-               }
-
-
-               /// <summary>
-               /// Test collection mapping with extends attribute
-               /// </summary>
-               [Test]
-               public void TestCollectionMappingAndExtends() 
-               {
-                       Order order = (Order) 
sqlMap.QueryForObject("GetOrderWithLineItemsCollection", 1);
+            while (e.MoveNext())
+            {
+                LineItem item = (LineItem)e.Current;
+                Assert.IsNotNull(item);
+            }
+        }
 
-                       AssertOrder1(order);
+        /// <summary>
+        /// Test null value replacement(on string) in a Result property.
+        /// </summary>
+        [Test]
+        public void TestNullValueReplacementOnString()
+        {
+            Account account = 
(Account)sqlMap.QueryForObject("GetAccountViaColumnName", 3);
+            Assert.AreEqual("[EMAIL PROTECTED]", account.EmailAddress);
+        }
 
-                       // Check strongly typed collection
+        /// <summary>
+        /// Test null value replacement(on enum class) in a Result property.
+        /// </summary>
+        [Test]
+        public void TestNullValueReplacementOnEnum()
+        {
+            Enumeration enumClass = new Enumeration();
+            enumClass.Id = 99;
+            enumClass.Day = Days.Thu;
+            enumClass.Color = Colors.Blue;
+            enumClass.Month = Months.All;
+
+            sqlMap.Insert("InsertEnumViaParameterMap", enumClass);
+
+            enumClass = null;
+            enumClass = sqlMap.QueryForObject("GetEnumerationNullValue", 99) 
as Enumeration;
+
+            Assert.AreEqual(enumClass.Day, Days.Thu);
+            Assert.AreEqual(enumClass.Color, Colors.Blue);
+            Assert.AreEqual(enumClass.Month, Months.All);
+        }
+
+        /// <summary>
+        /// Test usage of dbType in a result map property.
+        /// 
+        /// </summary>
+        [Test]
+        public void TestTypeSpecified()
+        {
+            Order order = (Order)sqlMap.QueryForObject("GetOrderWithTypes", 1);
+            AssertOrder1(order);
+        }
+
+
+        /// <summary>
+        /// Test a Complex Object Mapping. 
+        /// Order + Account in Order.Account
+        /// </summary>
+        [Test]
+        public void TestComplexObjectMapping()
+        {
+            Order order = (Order)sqlMap.QueryForObject("GetOrderWithAccount", 
1);
+            AssertOrder1(order);
+            AssertAccount1(order.Account);
+        }
+
+
+        /// <summary>
+        /// Test collection mapping with extends attribute
+        /// </summary>
+        [Test]
+        public void TestCollectionMappingAndExtends()
+        {
+            Order order = 
(Order)sqlMap.QueryForObject("GetOrderWithLineItemsCollection", 1);
+
+            AssertOrder1(order);
+
+            // Check strongly typed collection
             Assert.IsNotNull(order.LineItemsCollection);
             Assert.AreEqual(2, order.LineItemsCollection.Count);
-               }
+        }
+
+        /// <summary>
+        /// Test collection mapping: Ilist collection 
+        /// order.LineItemsIList 
+        /// </summary>
+        [Test]
+        public void TestListMapping()
+        {
+            Order order = 
(Order)sqlMap.QueryForObject("GetOrderWithLineItems", 1);
+
+            AssertOrder1(order);
+
+            // Check IList collection
+            Assert.IsNotNull(order.LineItemsIList);
+            Assert.AreEqual(2, order.LineItemsIList.Count);
+        }
+
+        /// <summary>
+        /// Test Array Mapping
+        /// </summary>
+        [Test]
+        public void TestArrayMapping()
+        {
+            Order order = 
(Order)sqlMap.QueryForObject("GetOrderWithLineItemArray", 1);
+
+            AssertOrder1(order);
+            Assert.IsNotNull(order.LineItemsArray);
+            Assert.AreEqual(2, order.LineItemsArray.Length);
+        }
 
-               /// <summary>
-               /// Test collection mapping: Ilist collection 
-               /// order.LineItemsIList 
-               /// </summary>
-               [Test]
-               public void TestListMapping() 
-               {
-                       Order order = (Order) 
sqlMap.QueryForObject("GetOrderWithLineItems", 1);
-
-                       AssertOrder1(order);
-
-                       // Check IList collection
-                       Assert.IsNotNull(order.LineItemsIList);
-                       Assert.AreEqual(2, order.LineItemsIList.Count);
-               }
-
-               /// <summary>
-               /// Test Array Mapping
-               /// </summary>
-               [Test]
-               public void TestArrayMapping() 
-               {
-                       Order order = 
(Order)sqlMap.QueryForObject("GetOrderWithLineItemArray", 1);
-
-                       AssertOrder1(order);
-                       Assert.IsNotNull( order.LineItemsArray );
-                       Assert.AreEqual(2, order.LineItemsArray.Length);
-        }
-
-               /// <summary>
-               /// Test collection mapping
-               /// order.LineItems
-               /// </summary>
-               [Test] 
-               public void TestStronglyTypedCollectionMapping() 
-               {
-                       Order order = (Order) 
sqlMap.QueryForObject("GetOrderWithLineItemCollection", 1);
+        /// <summary>
+        /// Test collection mapping
+        /// order.LineItems
+        /// </summary>
+        [Test]
+        public void TestStronglyTypedCollectionMapping()
+        {
+            Order order = 
(Order)sqlMap.QueryForObject("GetOrderWithLineItemCollection", 1);
 
-                       AssertOrder1(order);
+            AssertOrder1(order);
 
             Assert.IsNotNull(order.LineItemsCollection);
             Assert.AreEqual(2, order.LineItemsCollection.Count);
 
             IEnumerator e = 
((IEnumerable)order.LineItemsCollection).GetEnumerator();
-                       while(e.MoveNext())
-                       {
-                               LineItem item = (LineItem)e.Current;
-                               Assert.IsNotNull(item);
-                       }
-               }
-
-               /// <summary>
-               /// Test a ResultMap mapping as an Hastable.
-               /// </summary>
-               [Test]
-               public void TestHashtableMapping() 
-               {
-                       Hashtable order = (Hashtable) 
sqlMap.QueryForObject("GetOrderAsHastable", 1);
-
-                       AssertOrder1AsHashtable(order);
-               }
-
-               /// <summary>
-               /// Test nested object.
-               /// Order + FavouriteLineItem in order.FavouriteLineItem
-               /// </summary>
-               [Test]
-               public void TestNestedObjects() 
-               {
-                       Order order = (Order) 
sqlMap.QueryForObject("GetOrderJoinedFavourite", 1);
-
-                       AssertOrder1(order);
-
-                       Assert.IsNotNull(order.FavouriteLineItem);
-                       Assert.AreEqual(2, order.FavouriteLineItem.Id, 
"order.FavouriteLineItem.Id");
-                       Assert.AreEqual("ESM-23", order.FavouriteLineItem.Code);
-
-               }
-
-               /// <summary>
-               /// Test nested object.
-               /// Order + FavouriteLineItem in order.FavouriteLineItem
-               /// </summary>
-               [Test]
-               public void TestNestedObjects2() 
-               {
-                       Order order = (Order) 
sqlMap.QueryForObject("GetOrderJoinedFavourite2", 1);
-
-                       AssertOrder1(order);
-
-                       Assert.IsNotNull(order.FavouriteLineItem);
-                       Assert.AreEqual(2, order.FavouriteLineItem.Id, 
"order.FavouriteLineItem.Id");
-                       Assert.AreEqual("ESM-23", order.FavouriteLineItem.Code);
-               }
-
-               /// <summary>
-               /// Test Implicit Result Maps
-               /// </summary>
-               [Test]
-               public void TestImplicitResultMaps() 
-               {
-                       Order order = (Order) 
sqlMap.QueryForObject("GetOrderJoinedFavourite3", 1);
-
-                       AssertOrder1(order);
-
-                       Assert.IsNotNull(order.FavouriteLineItem);
-                       Assert.AreEqual(2, order.FavouriteLineItem.Id, 
"order.FavouriteLineItem.Id");
-                       Assert.AreEqual("ESM-23", order.FavouriteLineItem.Code);
-
-               }
-
-               /// <summary>
-               /// Test a composite Key Mapping.
-               /// It must be: property1=column1,property2=column2,...
-               /// </summary>
-               [Test]
-               public void TestCompositeKeyMapping() 
-               {
-                       Order order1 = (Order) 
sqlMap.QueryForObject("GetOrderWithFavouriteLineItem", 1);
-                       Order order2 = (Order) 
sqlMap.QueryForObject("GetOrderWithFavouriteLineItem", 2);
-
-                       Assert.IsNotNull(order1);
-                       Assert.IsNotNull(order1.FavouriteLineItem);
-                       Assert.AreEqual(2, order1.FavouriteLineItem.Id);
-
-                       Assert.IsNotNull(order2);
-                       Assert.IsNotNull(order2.FavouriteLineItem);
-                       Assert.AreEqual(1, order2.FavouriteLineItem.Id);
-
-               }
-
-               /// <summary>
-               /// Test Dynamique Composite Key Mapping
-               /// </summary>
-               [Test]
-               public void TestDynamiqueCompositeKeyMapping() 
-               {
-
-                       Order order1 = (Order) 
sqlMap.QueryForObject("GetOrderWithDynFavouriteLineItem", 1);
-
-                       Assert.IsNotNull(order1);
-                       Assert.IsNotNull(order1.FavouriteLineItem);
-                       Assert.AreEqual(2, order1.FavouriteLineItem.Id);
-               }
-
-               /// <summary>
-               /// Test a simple type mapping (string)
-               /// </summary>
-               [Test]
-               public void TestSimpleTypeMapping() 
-               {
-                       IList list = 
sqlMap.QueryForList("GetAllCreditCardNumbersFromOrders", null);
-
-                       Assert.AreEqual(5, list.Count );
-                       Assert.AreEqual("555555555555", list[0]);
-               }
-
-               /// <summary>
-               /// Test a simple type mapping (decimal)
-               /// </summary>
-               [Test]
-               public void TestDecimalTypeMapping() 
-               {
-                       Hashtable param = new Hashtable();
-                       param.Add("LineItem_ID", 1);
-                       param.Add("Order_ID",  10);
-                       decimal price = (decimal) 
sqlMap.QueryForObject("GetLineItemPrice", param);
-                       Assert.AreEqual( 45.43m, price);
-               }
-
-               /// <summary>
-               /// Test Byte Array Mapping
-               /// </summary>
-               /// <remarks>Test for request support 1032436 
ByteArrayTypeHandler misses the last byte</remarks>
-               [Test]
-               public void TestByteArrayMapping() 
-               {
-                       Account account = NewAccount6();
-
-                       sqlMap.Insert("InsertAccountViaParameterMap", account);
-
-                       Order order = new Order();
-                       order.Id = 99;
-                       order.CardExpiry = "09/11";
-                       order.Account = account;
-                       order.CardNumber = "154564656";
-                       order.CardType = "Visa";
-                       order.City = "Lyon";
-                       order.Date = System.DateTime.MinValue; 
-                       order.PostalCode = "69004";
-                       order.Province = "Rhone";
-                       order.Street = "rue Durand";
- 
-                       sqlMap.Insert("InsertOrderViaParameterMap", order);
-
-                       LineItem item = new LineItem();
-                       item.Id = 99;
-                       item.Code = "test";
-                       item.Price = -99.99m;
-                       item.Quantity = 99;
-                       item.Order = order;
-                       item.PictureData = new byte[] {1, 2, 3};
-
-                       // Check insert
-                       sqlMap.Insert("InsertLineItemWithPicture", item);
-
-                       // select
-                       LineItem loadItem = null;
-                       
-                       Hashtable param = new Hashtable();
-                       param.Add("LineItem_ID", 99);
-                       param.Add("Order_ID",  99);
-
-                       loadItem = 
sqlMap.QueryForObject("GetSpecificLineItemWithPicture", param) as LineItem;
-
-                       Assert.IsNotNull( loadItem.Id );
-                       Assert.IsNotNull( loadItem.PictureData );
-                       Assert.AreEqual( item.PictureData, loadItem.PictureData 
);
-               }
-
-               /// <summary>
-               /// Test null replacement (on decimal) in ResultMap property
-               /// </summary>
-               [Test]
-               public void TestNullValueReplacementOnDecimal() 
-               {
-                       Account account = NewAccount6();
-
-                       sqlMap.Insert("InsertAccountViaParameterMap", account);
-
-                       Order order = new Order();
-                       order.Id = 99;
-                       order.CardExpiry = "09/11";
-                       order.Account = account;
-                       order.CardNumber = "154564656";
-                       order.CardType = "Visa";
-                       order.City = "Lyon";
-                       order.Date = System.DateTime.MinValue; //<-- null 
replacement for parameterMAp 
-                       order.PostalCode = "69004";
-                       order.Province = "Rhone";
-                       order.Street = "rue Durand";
- 
-                       sqlMap.Insert("InsertOrderViaParameterMap", order);
-
-                       LineItem item = new LineItem();
-                       item.Id = 99;
-                       item.Code = "test";
-                       item.Price = -99.99m;//<-- null replacement for 
parameterMAp 
-                       item.Quantity = 99;
-                       item.Order = order;
-
-                       sqlMap.Insert("InsertLineItem", item);
-
-                       // Retrieve LineItem & test null replacement for 
resultMap 
-
-                       LineItem testItem = (LineItem) 
sqlMap.QueryForObject("GetSpecificLineItemWithNullReplacement", 99);
-
-                       Assert.IsNotNull(testItem);
-                       Assert.AreEqual(-77.77m, testItem.Price);
-                       Assert.AreEqual("test", testItem.Code);
-               }
-               
-               /// <summary>
-               /// Test null replacement (on DateTime) in ResultMap property.
-               /// </summary>
-               [Test]
-               public void TestNullValueReplacementOnDateTime()
-               {
-                       Account account = NewAccount6();
-
-                       sqlMap.Insert("InsertAccountViaParameterMap", account);
-
-                       Order order = new Order();
-                       order.Id = 99;
-                       order.CardExpiry = "09/11";
-                       order.Account = account;
-                       order.CardNumber = "154564656";
-                       order.CardType = "Visa";
-                       order.City = "Lyon";
-                       order.Date = System.DateTime.MinValue; //<-- null 
replacement
-                       order.PostalCode = "69004";
-                       order.Province = "Rhone";
-                       order.Street = "rue Durand";
- 
-                       sqlMap.Insert("InsertOrderViaParameterMap", order);
-
-                       Order orderTest = (Order) 
sqlMap.QueryForObject("GetOrderLiteByColumnName", 99);
-
-                       Assert.AreEqual(System.DateTime.MinValue, 
orderTest.Date);              
-               }
-//#if dotnet2
-        
-
-
-//        /// <summary>
-//        /// Test lazy mapping
-//        /// </summary>
-//        [Test]
-//        public void TestLazyWithGenericStronglyTypedCollection()
-//        {
-//            Order order = 
(Order)sqlMap.QueryForObject("GetOrderWithLineItemCollection2", 1);
-
-//            AssertOrder1(order);
-
-//            Assert.IsNotNull(order.LineItemsCollection2);
-//            Assert.AreEqual(2, order.LineItemsCollection2.Count);
-
-//            IEnumerator<LineItem> e = 
((IEnumerable<LineItem>)order.LineItemsCollection2).GetEnumerator();
-//            while (e.MoveNext())
-//            {
-//                LineItem item = e.Current;
-//                Assert.IsNotNull(item);
-//            }
-//        }
-//#endif
-               #endregion
+            while (e.MoveNext())
+            {
+                LineItem item = (LineItem)e.Current;
+                Assert.IsNotNull(item);
+            }
+        }
+
+        /// <summary>
+        /// Test a ResultMap mapping as an Hastable.
+        /// </summary>
+        [Test]
+        public void TestHashtableMapping()
+        {
+            Hashtable order = 
(Hashtable)sqlMap.QueryForObject("GetOrderAsHastable", 1);
+
+            AssertOrder1AsHashtable(order);
+        }
+
+        /// <summary>
+        /// Test nested object.
+        /// Order + FavouriteLineItem in order.FavouriteLineItem
+        /// </summary>
+        [Test]
+        public void TestNestedObjects()
+        {
+            Order order = 
(Order)sqlMap.QueryForObject("GetOrderJoinedFavourite", 1);
+
+            AssertOrder1(order);
+
+            Assert.IsNotNull(order.FavouriteLineItem);
+            Assert.AreEqual(2, order.FavouriteLineItem.Id, 
"order.FavouriteLineItem.Id");
+            Assert.AreEqual("ESM-23", order.FavouriteLineItem.Code);
+
+        }
+
+        /// <summary>
+        /// Test nested object.
+        /// Order + FavouriteLineItem in order.FavouriteLineItem
+        /// </summary>
+        [Test]
+        public void TestNestedObjects2()
+        {
+            Order order = 
(Order)sqlMap.QueryForObject("GetOrderJoinedFavourite2", 1);
+
+            AssertOrder1(order);
+
+            Assert.IsNotNull(order.FavouriteLineItem);
+            Assert.AreEqual(2, order.FavouriteLineItem.Id, 
"order.FavouriteLineItem.Id");
+            Assert.AreEqual("ESM-23", order.FavouriteLineItem.Code);
+        }
+
+        /// <summary>
+        /// Test Implicit Result Maps
+        /// </summary>
+        [Test]
+        public void TestImplicitResultMaps()
+        {
+            Order order = 
(Order)sqlMap.QueryForObject("GetOrderJoinedFavourite3", 1);
+
+            AssertOrder1(order);
+
+            Assert.IsNotNull(order.FavouriteLineItem);
+            Assert.AreEqual(2, order.FavouriteLineItem.Id, 
"order.FavouriteLineItem.Id");
+            Assert.AreEqual("ESM-23", order.FavouriteLineItem.Code);
+
+        }
+
+        /// <summary>
+        /// Test a composite Key Mapping.
+        /// It must be: property1=column1,property2=column2,...
+        /// </summary>
+        [Test]
+        public void TestCompositeKeyMapping()
+        {
+            Order order1 = 
(Order)sqlMap.QueryForObject("GetOrderWithFavouriteLineItem", 1);
+            Order order2 = 
(Order)sqlMap.QueryForObject("GetOrderWithFavouriteLineItem", 2);
+
+            Assert.IsNotNull(order1);
+            Assert.IsNotNull(order1.FavouriteLineItem);
+            Assert.AreEqual(2, order1.FavouriteLineItem.Id);
+
+            Assert.IsNotNull(order2);
+            Assert.IsNotNull(order2.FavouriteLineItem);
+            Assert.AreEqual(1, order2.FavouriteLineItem.Id);
+
+        }
+
+        /// <summary>
+        /// Test Dynamique Composite Key Mapping
+        /// </summary>
+        [Test]
+        public void TestDynamiqueCompositeKeyMapping()
+        {
+
+            Order order1 = 
(Order)sqlMap.QueryForObject("GetOrderWithDynFavouriteLineItem", 1);
+
+            Assert.IsNotNull(order1);
+            Assert.IsNotNull(order1.FavouriteLineItem);
+            Assert.AreEqual(2, order1.FavouriteLineItem.Id);
+        }
+
+        /// <summary>
+        /// Test a simple type mapping (string)
+        /// </summary>
+        [Test]
+        public void TestSimpleTypeMapping()
+        {
+            IList list = 
sqlMap.QueryForList("GetAllCreditCardNumbersFromOrders", null);
+
+            Assert.AreEqual(5, list.Count);
+            Assert.AreEqual("555555555555", list[0]);
+        }
+
+        /// <summary>
+        /// Test a simple type mapping (decimal)
+        /// </summary>
+        [Test]
+        public void TestDecimalTypeMapping()
+        {
+            Hashtable param = new Hashtable();
+            param.Add("LineItem_ID", 1);
+            param.Add("Order_ID", 10);
+            decimal price = (decimal)sqlMap.QueryForObject("GetLineItemPrice", 
param);
+            Assert.AreEqual(45.43m, price);
+        }
+
+        /// <summary>
+        /// Test Byte Array Mapping
+        /// </summary>
+        /// <remarks>Test for request support 1032436 ByteArrayTypeHandler 
misses the last byte</remarks>
+        [Test]
+        public void TestByteArrayMapping()
+        {
+            Account account = NewAccount6();
+
+            sqlMap.Insert("InsertAccountViaParameterMap", account);
+
+            Order order = new Order();
+            order.Id = 99;
+            order.CardExpiry = "09/11";
+            order.Account = account;
+            order.CardNumber = "154564656";
+            order.CardType = "Visa";
+            order.City = "Lyon";
+            order.Date = System.DateTime.MinValue;
+            order.PostalCode = "69004";
+            order.Province = "Rhone";
+            order.Street = "rue Durand";
+
+            sqlMap.Insert("InsertOrderViaParameterMap", order);
+
+            LineItem item = new LineItem();
+            item.Id = 99;
+            item.Code = "test";
+            item.Price = -99.99m;
+            item.Quantity = 99;
+            item.Order = order;
+            item.PictureData = new byte[] { 1, 2, 3 };
+
+            // Check insert
+            sqlMap.Insert("InsertLineItemWithPicture", item);
+
+            // select
+            LineItem loadItem = null;
+
+            Hashtable param = new Hashtable();
+            param.Add("LineItem_ID", 99);
+            param.Add("Order_ID", 99);
+
+            loadItem = sqlMap.QueryForObject("GetSpecificLineItemWithPicture", 
param) as LineItem;
+
+            Assert.IsNotNull(loadItem.Id);
+            Assert.IsNotNull(loadItem.PictureData);
+            Assert.AreEqual(item.PictureData, loadItem.PictureData);
+        }
+
+        /// <summary>
+        /// Test null replacement (on decimal) in ResultMap property
+        /// </summary>
+        [Test]
+        public void TestNullValueReplacementOnDecimal()
+        {
+            Account account = NewAccount6();
+
+            sqlMap.Insert("InsertAccountViaParameterMap", account);
+
+            Order order = new Order();
+            order.Id = 99;
+            order.CardExpiry = "09/11";
+            order.Account = account;
+            order.CardNumber = "154564656";
+            order.CardType = "Visa";
+            order.City = "Lyon";
+            order.Date = System.DateTime.MinValue; //<-- null replacement for 
parameterMAp 
+            order.PostalCode = "69004";
+            order.Province = "Rhone";
+            order.Street = "rue Durand";
+
+            sqlMap.Insert("InsertOrderViaParameterMap", order);
+
+            LineItem item = new LineItem();
+            item.Id = 99;
+            item.Code = "test";
+            item.Price = -99.99m;//<-- null replacement for parameterMAp 
+            item.Quantity = 99;
+            item.Order = order;
+
+            sqlMap.Insert("InsertLineItem", item);
+
+            // Retrieve LineItem & test null replacement for resultMap 
+
+            LineItem testItem = 
(LineItem)sqlMap.QueryForObject("GetSpecificLineItemWithNullReplacement", 99);
+
+            Assert.IsNotNull(testItem);
+            Assert.AreEqual(-77.77m, testItem.Price);
+            Assert.AreEqual("test", testItem.Code);
+        }
+
+        /// <summary>
+        /// Test null replacement (on DateTime) in ResultMap property.
+        /// </summary>
+        [Test]
+        public void TestNullValueReplacementOnDateTime()
+        {
+            Account account = NewAccount6();
+
+            sqlMap.Insert("InsertAccountViaParameterMap", account);
+
+            Order order = new Order();
+            order.Id = 99;
+            order.CardExpiry = "09/11";
+            order.Account = account;
+            order.CardNumber = "154564656";
+            order.CardType = "Visa";
+            order.City = "Lyon";
+            order.Date = System.DateTime.MinValue; //<-- null replacement
+            order.PostalCode = "69004";
+            order.Province = "Rhone";
+            order.Street = "rue Durand";
+
+            sqlMap.Insert("InsertOrderViaParameterMap", order);
+
+            Order orderTest = 
(Order)sqlMap.QueryForObject("GetOrderLiteByColumnName", 99);
+
+            Assert.AreEqual(System.DateTime.MinValue, orderTest.Date);
+        }
+        //#if dotnet2
+
+
+
+        //        /// <summary>
+        //        /// Test lazy mapping
+        //        /// </summary>
+        //        [Test]
+        //        public void TestLazyWithGenericStronglyTypedCollection()
+        //        {
+        //            Order order = 
(Order)sqlMap.QueryForObject("GetOrderWithLineItemCollection2", 1);
+
+        //            AssertOrder1(order);
+
+        //            Assert.IsNotNull(order.LineItemsCollection2);
+        //            Assert.AreEqual(2, order.LineItemsCollection2.Count);
+
+        //            IEnumerator<LineItem> e = 
((IEnumerable<LineItem>)order.LineItemsCollection2).GetEnumerator();
+        //            while (e.MoveNext())
+        //            {
+        //                LineItem item = e.Current;
+        //                Assert.IsNotNull(item);
+        //            }
+        //        }
+        //#endif
+        #endregion
 
-       }
+    }
 }


Reply via email to