diff UnitTests/Linq/TableFunctionTest.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/Linq/TableFunctionTest.cs	Thu Mar 27 21:46:09 2014 +0400
@@ -0,0 +1,141 @@
+using System;
+using System.Linq;
+
+using BLToolkit.Data;
+using BLToolkit.Data.Linq;
+
+using NUnit.Framework;
+
+namespace Data.Linq
+{
+	using Model;
+
+	[TestFixture]
+	public class TableFunctionTest : TestBase
+	{
+		[Test]
+		public void Func1([IncludeDataContexts("Sql2008", "Sql2012")] string context)
+		{
+			using (var db = new TestDbManager(context))
+			{
+				var q =
+					from p in new Model.Functions(db).GetParentByID(1)
+					select p;
+
+				q.ToList();
+			}
+		}
+
+		[Test]
+		public void Func2([IncludeDataContexts("Sql2008", "Sql2012")] string context)
+		{
+			using (var db = new TestDbManager(context))
+			{
+				var q =
+					from c in db.Child
+					from p in db.GetParentByID(2)
+					select p;
+
+				q.ToList();
+			}
+		}
+
+		[Test]
+		public void Func3([IncludeDataContexts("Sql2008", "Sql2012")] string context)
+		{
+			using (var db = new TestDbManager(context))
+			{
+				var q =
+					from c in db.Child
+					from p in db.GetParentByID(c.ParentID)
+					select p;
+
+				q.ToList();
+			}
+		}
+
+		readonly Func<DbManager,int,IQueryable<Parent>> _f1 = CompiledQuery.Compile(
+			(DbManager db, int id) => from p in new Model.Functions(db).GetParentByID(id) select p);
+
+		[Test]
+		public void CompiledFunc1([IncludeDataContexts("Sql2008", "Sql2012")] string context)
+		{
+			using (var db = new TestDbManager(context))
+			{
+				var q = _f1(db, 1);
+				q.ToList();
+			}
+		}
+
+		readonly Func<TestDbManager,int,IQueryable<Parent>> _f2 = CompiledQuery.Compile(
+			(TestDbManager db, int id) => from c in db.Child from p in db.GetParentByID(id) select p);
+
+		[Test]
+		public void CompiledFunc2([IncludeDataContexts("Sql2008", "Sql2012")] string context)
+		{
+			using (var db = new TestDbManager(context))
+			{
+				var q = _f2(db, 1);
+				q.ToList();
+			}
+		}
+
+		[Test]
+		public void WithTabLock([IncludeDataContexts("Sql2008", "Sql2012")] string context)
+		{
+			using (var db = new TestDbManager(context))
+			{
+				var q =
+					from p in new Model.Functions(db).WithTabLock<Parent>()
+					select p;
+
+				q.ToList();
+			}
+		}
+
+		[Test, Category("FULLTEXT")]
+		public void FreeText1([IncludeDataContexts("Northwind")] string context)
+		{
+			using (var db = new NorthwindDB())
+			{
+				var q =
+					from c in db.Category
+					join t in db.FreeTextTable<Northwind.Category,int>("[Description]", "sweetest candy bread and dry meat")
+					on c.CategoryID equals t.Key
+					select c;
+
+				q.ToList();
+			}
+		}
+
+		[Test, Category("FULLTEXT")]
+		public void FreeText2([IncludeDataContexts("Northwind")] string context)
+		{
+			using (var db = new NorthwindDB())
+			{
+				var q =
+					from c in db.Category
+					join t in db.FreeTextTable<Northwind.Category,int>(c => c.Description, "sweetest candy bread and dry meat")
+					on c.CategoryID equals t.Key
+					select c;
+
+				q.ToList();
+			}
+		}
+
+		[Test, Category("FULLTEXT")]
+		public void FreeText3([IncludeDataContexts("Northwind")] string context)
+		{
+			using (var db = new NorthwindDB())
+			{
+				var q =
+					from t in db.FreeTextTable<Northwind.Category,int>(c => c.Description, "sweetest candy bread and dry meat")
+					join c in db.Category
+					on t.Key equals c.CategoryID
+					select c;
+
+				q.ToList();
+			}
+		}
+	}
+}