diff UnitTests/CS/Mapping/ObjectMapperTest.cs @ 0:f990fcb411a9

Копия текущей версии из github
author cin
date Thu, 27 Mar 2014 21:46:09 +0400
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/UnitTests/CS/Mapping/ObjectMapperTest.cs	Thu Mar 27 21:46:09 2014 +0400
@@ -0,0 +1,113 @@
+using System;
+using System.Data;
+using BLToolkit.EditableObjects;
+using NUnit.Framework;
+
+using BLToolkit.Mapping;
+
+namespace Mapping
+{
+	[TestFixture]
+	public class ObjectMapperTest
+	{
+		public class Object1
+		{
+			[MapField("col2")]
+			public int Col1 { get; set; }
+		}
+
+
+		[Test]
+		public void NameTest1()
+		{
+			var dt = new DataTable();
+
+			dt.Columns.Add("col1", typeof(int));
+			dt.Columns.Add("col2", typeof(int));
+			dt.Rows.Add(1, 2);
+
+			var o = Map.DataRowToObject<Object1>(dt.Rows[0]);
+
+			Assert.AreEqual(2, o.Col1);
+		}
+
+		[Test]
+		public void NameTest2()
+		{
+			var dt = new DataTable();
+
+			dt.Columns.Add("col2", typeof(int));
+			dt.Columns.Add("col1", typeof(int));
+			dt.Rows.Add(2, 1);
+
+			var o = Map.DataRowToObject<Object1>(dt.Rows[0]);
+
+			Assert.AreEqual(2, o.Col1);
+		}
+
+		[Test]
+		public void GetMemberMapperByNameAliasTest()
+		{
+			var om = Map.GetObjectMapper(typeof(Object1));
+
+			Assert.IsNotNull(om["col2"]);
+			Assert.IsNull   (om["Col1"]);
+			Assert.IsNotNull(om["Col1", true]);
+			Assert.IsNull   (om["col1", true]);
+		}
+
+		public interface ICheckOut
+		{
+			DateTime DateCheckOut { get; }
+		}
+
+		public class Test : ICheckOut
+		{
+			public int    ID    { get; set; }
+			public string Value { get; set; }
+
+			DateTime ICheckOut.DateCheckOut
+			{
+				get { return DateTime.Now; }
+			}
+		}
+
+		[Test]
+		public void MapObjectToObject()
+		{
+			var s1 = new Test { ID = 1, Value = "123" };
+			var s2 = new Test();
+
+			Map.ObjectToObject(s1, s2, null);
+		}
+
+		public abstract class BizEntityTest : EditableObject<BizEntityTest>
+		{
+			public abstract int                ID                 { get; set; }
+			public abstract string             Name               { get; set; }
+			public abstract BizEntityTestInner BizEntityTestInner { get; set; }
+		}
+
+		public abstract class BizEntityTestInner : EditableObject<BizEntityTestInner>
+		{
+			public abstract int    ID   { get; set; }
+			public abstract string Name { get; set; }
+		}
+
+		[Test]
+		public void DestabilizeTest()
+		{
+			var bet = BizEntityTest.CreateInstance();
+
+			bet.ID                      = 1;
+			bet.Name                    = "BizEntityTest";
+			bet.BizEntityTestInner      = BizEntityTestInner.CreateInstance();
+			bet.BizEntityTestInner.ID   = 111;
+			bet.BizEntityTestInner.Name = "BizEntityTestInner";
+
+			var mapper = Map.GetObjectMapper<BizEntityTest, BizEntityTest>(true);
+
+			var bet2 = mapper(bet);
+		}
+	}
+}