Mercurial > pub > bltoolkit
diff UnitTests/CS/Data/Sql/FromTest.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/Sql/FromTest.cs Thu Mar 27 21:46:09 2014 +0400 @@ -0,0 +1,85 @@ +using System; + +using NUnit.Framework; + +using BLToolkit.Data.Sql; + +namespace Data.Sql +{ + [TestFixture] + public class FromTest + { + public static SqlTable Order = new SqlTable + { + Name = "Order", + Fields = { new SqlField { Name = "ID" }, new SqlField { Name = "Number" } } + }; + + public static SqlTable OrderItem = new SqlTable + { + Name = "OrderItem", + Fields = { new SqlField { Name = "ID" }, new SqlField { Name = "OrderID" } } + }; + + public static SqlTable OrderItem2 = new SqlTable(OrderItem); + public static SqlTable OrderItem3 = new SqlTable(OrderItem); + public static SqlTable OrderItem4 = new SqlTable(OrderItem); + public static SqlTable OrderItem5 = new SqlTable(OrderItem); + + [Test] + public void Test1() + { + var sb = new SqlQuery(); + + sb + .Select + .Field(Order["ID"]) + .Field(Order["Number"]) + .From + .Table(Order) + ; + + sb.FinalizeAndValidate(true, true); + + Assert.AreEqual(1, sb.From.Tables.Count); + Assert.AreEqual(0, sb.From.Tables[0].Joins.Count); + } + + [Test] + public void Test2() + { + var sb = new SqlQuery(); + + sb + .Select + .Field(Order["ID"]) + .Field(OrderItem.All) + .Field(OrderItem4["ID"]) + .From + .Table(Order, + OrderItem. Join ().Field(Order["ID"]).Equal.Field(OrderItem["OrderID"]), + OrderItem2.WeakJoin(), + OrderItem3.WeakJoin( + OrderItem5.WeakLeftJoin(), + OrderItem4.LeftJoin ().Field(OrderItem4["ID"]).Equal.Field(OrderItem3["ID"])) + ) + .Where + .Not.Field(Order["ID"]).Like("1234").Or + .Field(Order["ID"]).Equal.Value("!%") + .GroupBy + .Field(Order["ID"]) + .OrderBy + .Field(Order["ID"]) + ; + + Assert.AreEqual(1, sb.From.Tables.Count); + Assert.AreEqual(3, sb.From.Tables[0].Joins.Count); + Assert.AreEqual(2, sb.From.Tables[0].Joins[2].Table.Joins.Count); + + sb.FinalizeAndValidate(true, true); + + Assert.AreEqual(2, sb.From.Tables[0].Joins.Count); + Assert.AreEqual(1, sb.From.Tables[0].Joins[1].Table.Joins.Count); + } + } +}