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/10/17 20:05:39 UTC
svn commit: r464983 [2/3] - in
/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/NUnit/SqlMapTests:
BaseTest.cs DynamicPrependTest.cs DynamicTest.cs Generics/StatementTest.cs
ResultMapTest.cs StatementTest.cs
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("no_email@provided.com", 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("no_email@provided.com", 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
- }
+ }
}