annotate UnitTests/CS/Data/Sql/FromTest.cs @ 3:1ef98bd70424

!bug 100 +3h Исправление проблемы BLToolkit + mono 3.4
author cin
date Fri, 22 Aug 2014 17:34:46 +0400
parents f990fcb411a9
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1 using System;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3 using NUnit.Framework;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
4
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
5 using BLToolkit.Data.Sql;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
6
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
7 namespace Data.Sql
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
8 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
9 [TestFixture]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
10 public class FromTest
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
11 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
12 public static SqlTable Order = new SqlTable
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
13 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
14 Name = "Order",
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
15 Fields = { new SqlField { Name = "ID" }, new SqlField { Name = "Number" } }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
16 };
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
17
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
18 public static SqlTable OrderItem = new SqlTable
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
19 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
20 Name = "OrderItem",
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
21 Fields = { new SqlField { Name = "ID" }, new SqlField { Name = "OrderID" } }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
22 };
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
23
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
24 public static SqlTable OrderItem2 = new SqlTable(OrderItem);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
25 public static SqlTable OrderItem3 = new SqlTable(OrderItem);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
26 public static SqlTable OrderItem4 = new SqlTable(OrderItem);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
27 public static SqlTable OrderItem5 = new SqlTable(OrderItem);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
28
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
29 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
30 public void Test1()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
31 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
32 var sb = new SqlQuery();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
33
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
34 sb
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
35 .Select
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
36 .Field(Order["ID"])
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
37 .Field(Order["Number"])
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
38 .From
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
39 .Table(Order)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
40 ;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
41
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
42 sb.FinalizeAndValidate(true, true);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
43
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
44 Assert.AreEqual(1, sb.From.Tables.Count);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
45 Assert.AreEqual(0, sb.From.Tables[0].Joins.Count);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
46 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
47
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
48 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
49 public void Test2()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
50 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
51 var sb = new SqlQuery();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
52
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
53 sb
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
54 .Select
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
55 .Field(Order["ID"])
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
56 .Field(OrderItem.All)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
57 .Field(OrderItem4["ID"])
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
58 .From
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
59 .Table(Order,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
60 OrderItem. Join ().Field(Order["ID"]).Equal.Field(OrderItem["OrderID"]),
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
61 OrderItem2.WeakJoin(),
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
62 OrderItem3.WeakJoin(
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
63 OrderItem5.WeakLeftJoin(),
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
64 OrderItem4.LeftJoin ().Field(OrderItem4["ID"]).Equal.Field(OrderItem3["ID"]))
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
65 )
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
66 .Where
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
67 .Not.Field(Order["ID"]).Like("1234").Or
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
68 .Field(Order["ID"]).Equal.Value("!%")
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
69 .GroupBy
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
70 .Field(Order["ID"])
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
71 .OrderBy
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
72 .Field(Order["ID"])
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
73 ;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
74
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
75 Assert.AreEqual(1, sb.From.Tables.Count);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
76 Assert.AreEqual(3, sb.From.Tables[0].Joins.Count);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
77 Assert.AreEqual(2, sb.From.Tables[0].Joins[2].Table.Joins.Count);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
78
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
79 sb.FinalizeAndValidate(true, true);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
80
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
81 Assert.AreEqual(2, sb.From.Tables[0].Joins.Count);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
82 Assert.AreEqual(1, sb.From.Tables[0].Joins[1].Table.Joins.Count);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
83 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
84 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
85 }