diff UnitTests/CS/Mapping/ISupportMappingTest.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/ISupportMappingTest.cs	Thu Mar 27 21:46:09 2014 +0400
@@ -0,0 +1,134 @@
+using System;
+
+using NUnit.Framework;
+
+using BLToolkit.Mapping;
+using BLToolkit.Reflection;
+using BLToolkit.TypeBuilder;
+
+namespace Mapping
+{
+	[TestFixture, Category("Mapping")]
+	public class ISupportMappingTest
+	{
+		public class SourceObject
+		{
+			public int Int1 = 10;
+			public int Int2 = 20;
+			public int Int3 = 30;
+		}
+
+		public class Object1 : ISupportMapping
+		{
+			public Object1(InitContext initContext)
+			{
+				if (initContext != null)
+					Int11 = (int)initContext.Parameters[0];
+
+				if (Int11 == 77)
+					initContext.StopMapping = true;
+			}
+
+			public int Int11;
+			public int Int22;
+			public int Int3;
+			public int Int44;
+
+			public void BeginMapping(InitContext initContext)
+			{
+				Int22 = (int)initContext.Parameters[1];
+
+				if (Int22 == 66)
+					initContext.StopMapping = true;
+			}
+
+			public void EndMapping(InitContext initContext)
+			{
+				Int44 = (int)initContext.Parameters[2];
+			}
+		}
+
+		[Test]
+		public void Test1()
+		{
+			Object1 o = (Object1)Map.ObjectToObject(new SourceObject(), typeof(Object1), 11, 22, 44);
+
+			Assert.AreEqual(11, o.Int11);
+			Assert.AreEqual(22, o.Int22);
+			Assert.AreEqual(30, o.Int3);
+			Assert.AreEqual(44, o.Int44);
+		}
+
+		[Test]
+		public void Test2()
+		{
+			Object1 o = new Object1(null);
+
+			Map.ObjectToObject(new SourceObject(), o, 11, 22, 44);
+
+			Assert.AreEqual(0,  o.Int11);
+			Assert.AreEqual(22, o.Int22);
+			Assert.AreEqual(30, o.Int3);
+			Assert.AreEqual(44, o.Int44);
+		}
+
+		[Test]
+		public void Test3()
+		{
+			Object1 o = (Object1)Map.ObjectToObject(new SourceObject(), typeof(Object1), 77, 66, 44);
+
+			Assert.AreEqual(77, o.Int11);
+			Assert.AreEqual(0,  o.Int22);
+			Assert.AreEqual(0,  o.Int3);
+			Assert.AreEqual(0,  o.Int44);
+		}
+
+		[Test]
+		public void Test4()
+		{
+			Object1 o = (Object1)Map.ObjectToObject(new SourceObject(), typeof(Object1), 11, 66, 44);
+
+			Assert.AreEqual(11, o.Int11);
+			Assert.AreEqual(66, o.Int22);
+			Assert.AreEqual(0,  o.Int3);
+			Assert.AreEqual(0,  o.Int44);
+		}
+
+		public abstract class Object5 : ISupportMapping
+		{
+			public Object5(InitContext initContext)
+			{
+				Int11 = (int)initContext.Parameters[0];
+			}
+
+			[Parameter(77)]
+			public abstract int   Int00 { get; set; }
+			public abstract int   Int11 { get; set; }
+			public abstract int   Int22 { get; set; }
+			public abstract short Int3  { get; set; }
+			public abstract int   Int44 { get; set; }
+
+			public void BeginMapping(InitContext initContext)
+			{
+				Int22 = (int)initContext.Parameters[1];
+			}
+
+			public void EndMapping(InitContext initContext)
+			{
+				Int44 = (int)initContext.Parameters[2];
+			}
+		}
+
+		[Test]
+		public void Test5()
+		{
+			Object5 o = (Object5)Map.ObjectToObject(new SourceObject(), typeof(Object5), 11, 22, 44);
+
+			Assert.AreEqual(77, o.Int00);
+			Assert.AreEqual(11, o.Int11);
+			Assert.AreEqual(22, o.Int22);
+			Assert.AreEqual(30, o.Int3);
+			Assert.AreEqual(44, o.Int44);
+		}
+	}
+}