diff UnitTests/CS/Data/ExecuteDictionaryTest.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/Data/ExecuteDictionaryTest.cs	Thu Mar 27 21:46:09 2014 +0400
@@ -0,0 +1,278 @@
+using System;
+using System.Collections;
+using System.Collections.Generic;
+
+using NUnit.Framework;
+
+using BLToolkit.Common;
+using BLToolkit.Data;
+using BLToolkit.Mapping;
+
+namespace Data
+{
+	[TestFixture]
+	public class ExecuteDictionaryTest
+	{
+
+#if ORACLE
+		private const decimal _id = 1m;
+#elif SQLITE
+		private const long    _id = 1;
+#else
+		private const int     _id = 1;
+#endif
+
+		public enum Gender
+		{
+			[MapValue("F")] Female,
+			[MapValue("M")] Male,
+			[MapValue("U")] Unknown,
+			[MapValue("O")] Other
+		}
+
+		public class Person
+		{
+			[MapField("PersonID")]
+			public int    ID;
+			public string FirstName;
+			public string MiddleName;
+			public string LastName;
+			public Gender Gender;
+		}
+		
+		[Test]
+		public void DictionaryTest()
+		{
+			using (DbManager db = new DbManager())
+			{
+				Hashtable table = db
+#if SQLITE || SQLCE
+					.SetCommand("SELECT * FROM Person")
+#else
+					.SetSpCommand("Person_SelectAll")
+#endif
+					.ExecuteDictionary("ID", typeof(Person));
+
+				Assert.IsNotNull(table);
+				Assert.IsTrue(table.Count > 0);
+
+				Person actualValue = (Person)table[1];
+				Assert.IsNotNull(actualValue);
+				Assert.AreEqual("John", actualValue.FirstName);
+			}
+		}
+
+		[Test]
+		public void DictionaryTest2()
+		{
+			using (DbManager db = new DbManager())
+			{
+				Hashtable table = new Hashtable();
+				db
+					.SetCommand("SELECT * FROM Person")
+					.ExecuteDictionary(table, "@PersonID", typeof(Person));
+
+				Assert.IsNotNull(table);
+				Assert.IsTrue(table.Count > 0);
+
+				Person actualValue = (Person)table[_id];
+				Assert.IsNotNull(actualValue);
+				Assert.AreEqual("John", actualValue.FirstName);
+			}
+		}
+
+		[Test]
+		public void DictionaryTest3()
+		{
+			using (DbManager db = new DbManager())
+			{
+				Hashtable table = db
+					.SetCommand("SELECT * FROM Person")
+					.ExecuteDictionary(0, typeof(Person));
+
+				Assert.IsNotNull(table);
+				Assert.IsTrue(table.Count > 0);
+
+				Person actualValue = (Person)table[1];
+				Assert.IsNotNull(actualValue);
+				Assert.AreEqual("John", actualValue.FirstName);
+			}
+		}
+
+		[Test]
+		public void DictionaryMapIndexTest()
+		{
+			using (DbManager db = new DbManager())
+			{
+				Hashtable table = new Hashtable();
+					db
+					.SetCommand("SELECT * FROM Person")
+					.ExecuteDictionary(table, new MapIndex("ID"), typeof(Person));
+
+				Assert.IsNotNull(table);
+				Assert.IsTrue(table.Count > 0);
+
+				Person actualValue = (Person)table[new CompoundValue(1)];
+				Assert.IsNotNull(actualValue);
+				Assert.AreEqual("John", actualValue.FirstName);
+			}
+		}
+
+		[Test]
+		public void DictionaryMapIndexTest2()
+		{
+			using (DbManager db = new DbManager())
+			{
+				Hashtable table = db
+					.SetCommand("SELECT * FROM Person")
+					.ExecuteDictionary(new MapIndex(0), typeof(Person));
+
+				Assert.IsNotNull(table);
+				Assert.IsTrue(table.Count > 0);
+
+				Person actualValue = (Person)table[new CompoundValue(1)];
+				Assert.IsNotNull(actualValue);
+				Assert.AreEqual("John", actualValue.FirstName);
+			}
+		}
+
+
+		[Test]
+		public void DictionaryMapIndexTest3()
+		{
+			using (DbManager db = new DbManager())
+			{
+				Hashtable table = new Hashtable();
+				db
+					.SetCommand("SELECT * FROM Person")
+					.ExecuteDictionary(table,
+					new MapIndex("@PersonID", 2, 3), typeof(Person));
+
+				Assert.IsNotNull(table);
+				Assert.IsTrue(table.Count > 0);
+
+				Person actualValue = (Person)table[new CompoundValue(_id, "", "Pupkin")];
+				Assert.IsNotNull(actualValue);
+				Assert.AreEqual("John", actualValue.FirstName);
+			}
+		}
+
+		[Test]
+		public void GenericsDictionaryTest()
+		{
+			using (DbManager db = new DbManager())
+			{
+				Dictionary<int, Person> dic = db
+					.SetCommand("SELECT * FROM Person")
+					.ExecuteDictionary<int, Person>("ID");
+
+				Assert.IsNotNull(dic);
+				Assert.IsTrue(dic.Count > 0);
+
+				Person actualValue = dic[1];
+				Assert.IsNotNull(actualValue);
+				Assert.AreEqual("John", actualValue.FirstName);
+			}
+		}
+
+		[Test]
+		public void GenericsDictionaryTest2()
+		{
+			using (DbManager db = new DbManager())
+			{
+#if ORACLE
+				Dictionary<decimal, Person> dic = new Dictionary<decimal, Person>();
+#elif SQLITE
+				Dictionary<long, Person> dic = new Dictionary<long, Person>();
+#else
+				Dictionary<int, Person> dic = new Dictionary<int, Person>();
+#endif
+					db
+					.SetCommand("SELECT * FROM Person")
+					.ExecuteDictionary(dic, "@PersonID");
+
+				Assert.IsNotNull(dic);
+				Assert.IsTrue(dic.Count > 0);
+
+				Person actualValue = dic[_id];
+				Assert.IsNotNull(actualValue);
+				Assert.AreEqual("John", actualValue.FirstName);
+			}
+		}
+
+		[Test]
+		public void GenericsDictionaryTest3()
+		{
+			using (DbManager db = new DbManager())
+			{
+				Dictionary<int, Person> dic = db
+					.SetCommand("SELECT * FROM Person")
+					.ExecuteDictionary<int, Person>(0);
+
+				Assert.IsNotNull(dic);
+				Assert.IsTrue(dic.Count > 0);
+
+				Person actualValue = dic[1];
+				Assert.IsNotNull(actualValue);
+				Assert.AreEqual("John", actualValue.FirstName);
+			}
+		}
+
+		[Test]
+		public void GenericsDictionaryMapIndexTest()
+		{
+			using (DbManager db = new DbManager())
+			{
+				Dictionary<CompoundValue, Person> dic = db
+					.SetCommand("SELECT * FROM Person WHERE PersonID < 3")
+					.ExecuteDictionary<Person>(new MapIndex("LastName"));
+
+				Assert.IsNotNull(dic);
+				Assert.IsTrue(dic.Count > 0);
+
+				Person actualValue = dic[new CompoundValue("Pupkin")];
+				Assert.IsNotNull(actualValue);
+				Assert.AreEqual("John", actualValue.FirstName);
+			}
+		}
+
+		[Test]
+		public void GenericsDictionaryMapIndexTest2()
+		{
+			using (DbManager db = new DbManager())
+			{
+				Dictionary<CompoundValue, Person> dic = new Dictionary<CompoundValue, Person>();
+					db
+					.SetCommand("SELECT * FROM Person")
+					.ExecuteDictionary(dic, new MapIndex(0));
+
+				Assert.IsNotNull(dic);
+				Assert.IsTrue(dic.Count > 0);
+
+				Person actualValue = dic[new CompoundValue(1)]; ;
+				Assert.IsNotNull(actualValue);
+				Assert.AreEqual("John", actualValue.FirstName);
+			}
+		}
+
+		[Test]
+		public void GenericsDictionaryMapIndexTest3()
+		{
+			using (DbManager db = new DbManager())
+			{
+				Dictionary<CompoundValue, Person> dic = new Dictionary<CompoundValue, Person>();
+					db
+					.SetCommand("SELECT * FROM Person")
+					.ExecuteDictionary(dic, new MapIndex("@PersonID", 2, 3));
+
+				Assert.IsNotNull(dic);
+				Assert.IsTrue(dic.Count > 0);
+
+				Person actualValue = dic[new CompoundValue(_id, "", "Pupkin")];
+				Assert.IsNotNull(actualValue);
+				Assert.AreEqual("John", actualValue.FirstName);
+				
+			}
+		}
+	}
+}