Mercurial > pub > bltoolkit
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(); + } + } + } +}