annotate UnitTests/Linq/StringFunctions.cs @ 6:11b6da379593

Исправлена странная ошибка при использовании OfType<...>().Where(...)
author cin
date Mon, 05 Dec 2016 05:50:52 +0300
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 using System.Data.Linq.SqlClient;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3 using System.Linq;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
4
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
5 using NUnit.Framework;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
6
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
7 using BLToolkit.Data.DataProvider;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
8 using BLToolkit.Data.Linq;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
9 using BLToolkit.DataAccess;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
10
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
11 namespace Data.Linq
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
12 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
13 using Model;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
14
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
15 [TestFixture]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
16 public class StringFunctions : TestBase
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
17 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
18 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
19 public void Length()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
20 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
21 ForEachProvider(db =>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
22 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
23 var q = from p in db.Person where p.FirstName.Length == "John".Length && p.ID == 1 select p;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
24 Assert.AreEqual(1, q.ToList().First().ID);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
25 });
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
26 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
27
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
28 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
29 public void ContainsConstant()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
30 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
31 ForEachProvider(db =>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
32 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
33 var q = from p in db.Person where p.FirstName.Contains("oh") && p.ID == 1 select p;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
34 Assert.AreEqual(1, q.ToList().First().ID);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
35 });
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
36 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
37
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
38 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
39 public void ContainsConstant2()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
40 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
41 ForEachProvider(db =>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
42 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
43 var q = from p in db.Person where !p.FirstName.Contains("o%h") && p.ID == 1 select p;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
44 Assert.AreEqual(1, q.ToList().First().ID);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
45 });
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 ContainsConstant3([DataContexts] string context)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
50 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
51 using (var db = GetDataContext(context))
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
52 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
53 var arr = new[] { "oh", "oh'", "oh\\" };
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
54
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
55 var q = from p in db.Person where arr.Contains(p.FirstName) select p;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
56 Assert.AreEqual(0, q.Count());
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
57 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
58 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
59
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
60 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
61 public void ContainsParameter1()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
62 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
63 var str = "oh";
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
64
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
65 ForEachProvider(db =>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
66 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
67 var q = from p in db.Person where p.FirstName.Contains(str) && p.ID == 1 select new { p, str };
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
68 var r = q.ToList().First();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
69 Assert.AreEqual(1, r.p.ID);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
70 Assert.AreEqual(str, r.str);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
71 });
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
72 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
73
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
74 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
75 public void ContainsParameter2()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
76 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
77 var str = "o%h";
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
78
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
79 ForEachProvider(db =>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
80 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
81 var q = from p in db.Person where !p.FirstName.Contains(str) && p.ID == 1 select p;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
82 Assert.AreEqual(1, q.ToList().First().ID);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
83 });
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
84 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
85
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
86 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
87 public void ContainsParameter3()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
88 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
89 var str = "o";
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
90
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
91 using (var db = new TestDbManager())
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
92 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
93 var q =
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
94 from d in db.Doctor
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
95 join p in db.Person.Where(p => p.FirstName.Contains(str))
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
96 on d.PersonID equals p.ID
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
97 select p;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
98
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
99 Assert.AreEqual(1, q.ToList().First().ID);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
100 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
101 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
102
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
103 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
104 public void ContainsParameter4()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
105 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
106 ForEachProvider(db =>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
107 AreEqual(
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
108 from p in Person
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
109 select new
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
110 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
111 p,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
112 Field1 = p.FirstName.Contains("Jo")
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
113 } into p
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
114 where p.Field1
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
115 orderby p.Field1
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
116 select p,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
117 from p in db.Person
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
118 select new
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
119 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
120 p,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
121 Field1 = p.FirstName.Contains("Jo")
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
122 } into p
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
123 where p.Field1
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
124 orderby p.Field1
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
125 select p));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
126 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
127
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
128 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
129 public void StartsWith1()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
130 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
131 ForEachProvider(db =>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
132 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
133 var q = from p in db.Person where p.FirstName.StartsWith("Jo") && p.ID == 1 select p;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
134 Assert.AreEqual(1, q.ToList().First().ID);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
135 });
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
136 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
137
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
138 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
139 public void StartsWith2()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
140 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
141 ForEachProvider(
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
142 new[] { ProviderName.DB2, ProviderName.Access },
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
143 db => AreEqual(
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
144 from p in Person where "John123".StartsWith(p.FirstName) select p,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
145 from p in db.Person where "John123".StartsWith(p.FirstName) select p));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
146 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
147
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
148 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
149 public void StartsWith3()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
150 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
151 var str = "John123";
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
152
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
153 ForEachProvider(
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
154 new[] { ProviderName.DB2, ProviderName.Access },
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
155 db => AreEqual(
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
156 from p in Person where str.StartsWith(p.FirstName) select p,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
157 from p in db.Person where str.StartsWith(p.FirstName) select p));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
158 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
159
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
160 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
161 public void StartsWith4()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
162 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
163 ForEachProvider(
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
164 new[] { ProviderName.DB2, ProviderName.Access },
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
165 db => AreEqual(
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
166 from p1 in Person
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
167 from p2 in Person
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
168 where p1.ID == p2.ID && p1.FirstName.StartsWith(p2.FirstName)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
169 select p1,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
170 from p1 in db.Person
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
171 from p2 in db.Person
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
172 where p1.ID == p2.ID &&
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
173 Sql.Like(p1.FirstName, p2.FirstName.Replace("%", "~%"), '~')
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
174 select p1));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
175 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
176
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
177 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
178 public void StartsWith5()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
179 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
180 ForEachProvider(
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
181 new[] { ProviderName.DB2, ProviderName.Access },
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
182 db => AreEqual(
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
183 from p1 in Person
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
184 from p2 in Person
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
185 where p1.ID == p2.ID && p1.FirstName.Replace("J", "%").StartsWith(p2.FirstName.Replace("J", "%"))
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
186 select p1,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
187 from p1 in db.Person
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
188 from p2 in db.Person
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
189 where p1.ID == p2.ID && p1.FirstName.Replace("J", "%").StartsWith(p2.FirstName.Replace("J", "%"))
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
190 select p1));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
191 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
192
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
193 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
194 public void EndsWith()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
195 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
196 ForEachProvider(db =>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
197 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
198 var q = from p in db.Person where p.FirstName.EndsWith("hn") && p.ID == 1 select p;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
199 Assert.AreEqual(1, q.ToList().First().ID);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
200 });
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
201 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
202
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
203 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
204 public void Like11()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
205 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
206 ForEachProvider(db =>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
207 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
208 var q = from p in db.Person where SqlMethods.Like(p.FirstName, "%hn%") && p.ID == 1 select p;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
209 Assert.AreEqual(1, q.ToList().First().ID);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
210 });
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
211 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
212
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
213 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
214 public void Like12()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
215 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
216 ForEachProvider(db =>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
217 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
218 var q = from p in db.Person where !SqlMethods.Like(p.FirstName, @"%h~%n%", '~') && p.ID == 1 select p;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
219 Assert.AreEqual(1, q.ToList().First().ID);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
220 });
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
221 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
222
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
223 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
224 public void Like21()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
225 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
226 ForEachProvider(db =>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
227 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
228 var q = from p in db.Person where Sql.Like(p.FirstName, "%hn%") && p.ID == 1 select p;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
229 Assert.AreEqual(1, q.ToList().First().ID);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
230 });
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
231 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
232
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
233 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
234 public void Like22()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
235 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
236 ForEachProvider(db =>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
237 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
238 var q = from p in db.Person where !Sql.Like(p.FirstName, @"%h~%n%", '~') && p.ID == 1 select p;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
239 Assert.AreEqual(1, q.ToList().First().ID);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
240 });
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
241 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
242
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
243 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
244 public void IndexOf11()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
245 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
246 ForEachProvider(new[] { ProviderName.Firebird, ProviderName.Informix }, db =>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
247 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
248 var q = from p in db.Person where p.FirstName.IndexOf("oh") == 1 && p.ID == 1 select p;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
249 Assert.AreEqual(1, q.ToList().First().ID);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
250 });
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
251 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
252
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
253 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
254 public void IndexOf12()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
255 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
256 ForEachProvider(new[] { ProviderName.Firebird, ProviderName.Informix }, db =>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
257 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
258 var q = from p in db.Person where p.FirstName.IndexOf("") == 0 && p.ID == 1 select p;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
259 Assert.AreEqual(1, q.ToList().First().ID);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
260 });
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
261 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
262
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
263 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
264 public void IndexOf2()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
265 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
266 ForEachProvider(new[] { ProviderName.Firebird, ProviderName.Informix }, db =>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
267 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
268 var q = from p in db.Person where p.LastName.IndexOf("e", 2) == 4 && p.ID == 2 select p;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
269 Assert.AreEqual(2, q.ToList().First().ID);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
270 });
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
271 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
272
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
273 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
274 public void IndexOf3([DataContexts(
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
275 ProviderName.DB2, ProviderName.Firebird, ProviderName.Informix, ProviderName.SqlCe, ProviderName.Sybase, ProviderName.Access)] string context)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
276 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
277 var s = "e";
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
278 var n1 = 2;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
279 var n2 = 5;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
280
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
281 using (var db = GetDataContext(context))
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
282 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
283 var q = from p in db.Person where p.LastName.IndexOf(s, n1, n2) == 1 && p.ID == 2 select p;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
284 Assert.AreEqual(2, q.ToList().First().ID);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
285 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
286 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
287
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
288 static readonly string[] _lastIndexExcludeList = new[]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
289 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
290 ProviderName.DB2, ProviderName.Firebird, ProviderName.Informix, ProviderName.SqlCe, ProviderName.Access
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
291 };
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
292
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
293 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
294 public void LastIndexOf1()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
295 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
296 ForEachProvider(_lastIndexExcludeList, db =>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
297 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
298 var q = from p in db.Person where p.LastName.LastIndexOf("p") == 2 && p.ID == 1 select p;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
299 Assert.AreEqual(1, q.ToList().First().ID);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
300 });
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
301 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
302
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
303 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
304 public void LastIndexOf2()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
305 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
306 ForEachProvider(_lastIndexExcludeList, db =>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
307 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
308 var q = from p in db.Person where p.ID == 1 select new { p.ID, FirstName = "123" + p.FirstName + "012345" };
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
309 q = q.Where(p => p.FirstName.LastIndexOf("123", 5) == 8);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
310 Assert.AreEqual(1, q.ToList().First().ID);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
311 });
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
312 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
313
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
314 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
315 public void LastIndexOf3()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
316 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
317 ForEachProvider(_lastIndexExcludeList, db =>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
318 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
319 var q = from p in db.Person where p.ID == 1 select new { p.ID, FirstName = "123" + p.FirstName + "0123451234" };
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
320 q = q.Where(p => p.FirstName.LastIndexOf("123", 5, 6) == 8);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
321 Assert.AreEqual(1, q.ToList().First().ID);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
322 });
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
323 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
324
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
325 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
326 public void CharIndex1()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
327 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
328 ForEachProvider(new[] { ProviderName.Firebird, ProviderName.Informix }, db =>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
329 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
330 var q = from p in db.Person where Sql.CharIndex("oh", p.FirstName) == 2 && p.ID == 1 select p;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
331 Assert.AreEqual(1, q.ToList().First().ID);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
332 });
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
333 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
334
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
335 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
336 public void CharIndex2()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
337 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
338 ForEachProvider(new[] { ProviderName.Firebird, ProviderName.Informix }, db =>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
339 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
340 var q = from p in db.Person where Sql.CharIndex("p", p.LastName, 2) == 3 && p.ID == 1 select p;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
341 Assert.AreEqual(1, q.ToList().First().ID);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
342 });
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
343 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
344
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
345 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
346 public void Left()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
347 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
348 ForEachProvider(db =>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
349 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
350 var q = from p in db.Person where Sql.Left(p.FirstName, 2) == "Jo" && p.ID == 1 select p;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
351 Assert.AreEqual(1, q.ToList().First().ID);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
352 });
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
353 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
354
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
355 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
356 public void Right()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
357 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
358 ForEachProvider(db =>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
359 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
360 var q = from p in db.Person where Sql.Right(p.FirstName, 3) == "ohn" && p.ID == 1 select p;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
361 Assert.AreEqual(1, q.ToList().First().ID);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
362 });
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
363 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
364
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
365 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
366 public void Substring1()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
367 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
368 ForEachProvider(db =>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
369 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
370 var q = from p in db.Person where p.FirstName.Substring(1) == "ohn" && p.ID == 1 select p;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
371 Assert.AreEqual(1, q.ToList().First().ID);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
372 });
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
373 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
374
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
375 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
376 public void Substring2()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
377 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
378 ForEachProvider(db =>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
379 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
380 var q = from p in db.Person where p.FirstName.Substring(1, 2) == "oh" && p.ID == 1 select p;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
381 Assert.AreEqual(1, q.ToList().First().ID);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
382 });
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
383 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
384
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
385 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
386 public void Reverse()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
387 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
388 ForEachProvider(new[] { ProviderName.DB2, ProviderName.Informix, ProviderName.SqlCe, ProviderName.Access }, db =>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
389 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
390 var q = from p in db.Person where Sql.Reverse(p.FirstName) == "nhoJ" && p.ID == 1 select p;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
391 Assert.AreEqual(1, q.ToList().First().ID);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
392 });
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
393 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
394
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
395 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
396 public void Stuff()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
397 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
398 ForEachProvider(db =>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
399 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
400 var q = from p in db.Person where Sql.Stuff(p.FirstName, 3, 1, "123") == "Jo123n" && p.ID == 1 select p;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
401 Assert.AreEqual(1, q.ToList().First().ID);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
402 });
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
403 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
404
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
405 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
406 public void Insert()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
407 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
408 ForEachProvider(db =>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
409 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
410 var q = from p in db.Person where p.FirstName.Insert(2, "123") == "Jo123hn" && p.ID == 1 select p;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
411 Assert.AreEqual(1, q.ToList().First().ID);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
412 });
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
413 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
414
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
415 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
416 public void Remove1()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
417 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
418 ForEachProvider(db =>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
419 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
420 var q = from p in db.Person where p.FirstName.Remove(2) == "Jo" && p.ID == 1 select p;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
421 Assert.AreEqual(1, q.ToList().First().ID);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
422 });
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
423 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
424
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
425 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
426 public void Remove2()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
427 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
428 ForEachProvider(db =>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
429 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
430 var q = from p in db.Person where p.FirstName.Remove(1, 2) == "Jn" && p.ID == 1 select p;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
431 Assert.AreEqual(1, q.ToList().First().ID);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
432 });
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
433 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
434
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
435 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
436 public void Space()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
437 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
438 ForEachProvider(db =>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
439 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
440 var q = from p in db.Person where p.FirstName + Sql.Space(p.ID + 1) + "123" == "John 123" && p.ID == 1 select p;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
441 Assert.AreEqual(1, q.ToList().First().ID);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
442 });
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
443 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
444
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
445 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
446 public void PadRight()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
447 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
448 ForEachProvider(db =>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
449 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
450 var q = from p in db.Person where Sql.PadRight(p.FirstName, 6, ' ') + "123" == "John 123" && p.ID == 1 select p;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
451 Assert.AreEqual(1, q.ToList().First().ID);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
452 });
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
453 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
454
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
455 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
456 public void PadRight1()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
457 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
458 ForEachProvider(db =>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
459 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
460 var q = from p in db.Person where p.FirstName.PadRight(6) + "123" == "John 123" && p.ID == 1 select p;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
461 Assert.AreEqual(1, q.ToList().First().ID);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
462 });
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
463 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
464
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
465 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
466 public void PadRight2()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
467 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
468 ForEachProvider(db =>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
469 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
470 var q = from p in db.Person where p.FirstName.PadRight(6, '*') + "123" == "John**123" && p.ID == 1 select p;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
471 Assert.AreEqual(1, q.ToList().First().ID);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
472 });
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
473 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
474
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
475 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
476 public void PadLeft()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
477 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
478 ForEachProvider(db =>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
479 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
480 var q = from p in db.Person where "123" + Sql.PadLeft(p.FirstName, 6, ' ') == "123 John" && p.ID == 1 select p;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
481 Assert.AreEqual(1, q.ToList().First().ID);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
482 });
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
483 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
484
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
485 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
486 public void PadLeft1()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
487 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
488 ForEachProvider(db =>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
489 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
490 var q = from p in db.Person where "123" + p.FirstName.PadLeft(6) == "123 John" && p.ID == 1 select p;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
491 Assert.AreEqual(1, q.ToList().First().ID);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
492 });
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
493 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
494
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
495 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
496 public void PadLeft2()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
497 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
498 ForEachProvider(db =>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
499 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
500 var q = from p in db.Person where "123" + p.FirstName.PadLeft(6, '*') == "123**John" && p.ID == 1 select p;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
501 Assert.AreEqual(1, q.ToList().First().ID);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
502 });
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
503 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
504
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
505 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
506 public void Replace()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
507 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
508 ForEachProvider(new[] { ProviderName.Access }, db =>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
509 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
510 var q = from p in db.Person where p.FirstName.Replace("hn", "lie") == "Jolie" && p.ID == 1 select p;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
511 Assert.AreEqual(1, q.ToList().First().ID);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
512 });
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
513 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
514
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
515 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
516 public void Trim()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
517 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
518 ForEachProvider(db =>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
519 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
520 var q =
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
521 from p in db.Person where p.ID == 1 select new { p.ID, Name = " " + p.FirstName + " " } into pp
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
522 where pp.Name.Trim() == "John" select pp;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
523 Assert.AreEqual(1, q.ToList().First().ID);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
524 });
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
525 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
526
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
527 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
528 public void TrimLeft()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
529 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
530 ForEachProvider(db =>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
531 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
532 var q =
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
533 from p in db.Person where p.ID == 1 select new { p.ID, Name = " " + p.FirstName + " " } into pp
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
534 where pp.Name.TrimStart() == "John " select pp;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
535 Assert.AreEqual(1, q.ToList().First().ID);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
536 });
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
537 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
538
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
539 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
540 public void TrimRight()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
541 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
542 ForEachProvider(db =>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
543 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
544 var q =
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
545 from p in db.Person where p.ID == 1 select new { p.ID, Name = " " + p.FirstName + " " } into pp
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
546 where pp.Name.TrimEnd() == " John" select pp;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
547 Assert.AreEqual(1, q.ToList().First().ID);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
548 });
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
549 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
550
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
551 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
552 public void ToLower()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
553 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
554 ForEachProvider(db =>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
555 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
556 var q = from p in db.Person where p.FirstName.ToLower() == "john" && p.ID == 1 select p;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
557 Assert.AreEqual(1, q.ToList().First().ID);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
558 });
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
559 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
560
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
561 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
562 public void ToUpper()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
563 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
564 ForEachProvider(db =>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
565 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
566 var q = from p in db.Person where p.FirstName.ToUpper() == "JOHN" && p.ID == 1 select p;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
567 Assert.AreEqual(1, q.ToList().First().ID);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
568 });
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
569 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
570
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
571 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
572 public void CompareTo()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
573 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
574 ForEachProvider(db =>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
575 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
576 var q = from p in db.Person where p.FirstName.CompareTo("John") == 0 && p.ID == 1 select p;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
577 Assert.AreEqual(1, q.ToList().First().ID);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
578 });
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
579 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
580
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
581 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
582 public void CompareToNotEqual1()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
583 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
584 ForEachProvider(db =>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
585 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
586 var q = from p in db.Person where p.FirstName.CompareTo("Jo") != 0 && p.ID == 1 select p;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
587 Assert.AreEqual(1, q.ToList().First().ID);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
588 });
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
589 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
590
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
591 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
592 public void CompareToNotEqual2()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
593 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
594 ForEachProvider(db =>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
595 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
596 var q = from p in db.Person where 0 != p.FirstName.CompareTo("Jo") && p.ID == 1 select p;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
597 Assert.AreEqual(1, q.ToList().First().ID);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
598 });
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
599 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
600
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
601 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
602 public void CompareTo1()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
603 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
604 ForEachProvider(db =>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
605 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
606 var q = from p in db.Person where p.FirstName.CompareTo("Joh") > 0 && p.ID == 1 select p;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
607 Assert.AreEqual(1, q.ToList().First().ID);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
608 });
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
609 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
610
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
611 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
612 public void CompareTo2()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
613 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
614 ForEachProvider(db =>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
615 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
616 var q = from p in db.Person where p.FirstName.CompareTo("Johnn") < 0 && p.ID == 1 select p;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
617 Assert.AreEqual(1, q.ToList().First().ID);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
618 });
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
619 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
620
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
621 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
622 public void CompareTo21()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
623 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
624 ForEachProvider(db =>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
625 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
626 var q = from p in db.Person where p.FirstName.CompareTo("Johnn") <= 0 && p.ID == 1 select p;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
627 Assert.AreEqual(1, q.ToList().First().ID);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
628 });
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
629 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
630
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
631 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
632 public void CompareTo22()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
633 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
634 ForEachProvider(db =>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
635 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
636 var q = from p in db.Person where 0 >= p.FirstName.CompareTo("Johnn") && p.ID == 1 select p;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
637 Assert.AreEqual(1, q.ToList().First().ID);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
638 });
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
639 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
640
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
641 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
642 public void CompareTo3()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
643 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
644 ForEachProvider(db =>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
645 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
646 var q = from p in db.Person where p.FirstName.CompareTo(55) > 0 && p.ID == 1 select p;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
647 Assert.AreEqual(1, q.ToList().First().ID);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
648 });
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
649 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
650
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
651 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
652 public void CompareTo31()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
653 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
654 ForEachProvider(db =>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
655 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
656 var q = from p in db.Person where p.FirstName.CompareTo(55) >= 0 && p.ID == 1 select p;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
657 Assert.AreEqual(1, q.ToList().First().ID);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
658 });
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
659 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
660
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
661 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
662 public void CompareTo32()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
663 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
664 ForEachProvider(db =>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
665 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
666 var q = from p in db.Person where 0 <= p.FirstName.CompareTo(55) && p.ID == 1 select p;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
667 Assert.AreEqual(1, q.ToList().First().ID);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
668 });
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
669 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
670
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
671 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
672 public void CompareOrdinal1()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
673 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
674 ForEachProvider(db =>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
675 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
676 var q = from p in db.Person where string.CompareOrdinal(p.FirstName, "Joh") > 0 && p.ID == 1 select p;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
677 Assert.AreEqual(1, q.ToList().First().ID);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
678 });
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
679 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
680
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
681 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
682 public void CompareOrdinal2()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
683 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
684 ForEachProvider(db =>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
685 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
686 var q = from p in db.Person where string.CompareOrdinal(p.FirstName, 1, "Joh", 1, 2) == 0 && p.ID == 1 select p;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
687 Assert.AreEqual(1, q.ToList().First().ID);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
688 });
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
689 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
690
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
691 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
692 public void Compare1()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
693 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
694 ForEachProvider(db =>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
695 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
696 var q = from p in db.Person where string.Compare(p.FirstName, "Joh") > 0 && p.ID == 1 select p;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
697 Assert.AreEqual(1, q.ToList().First().ID);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
698 });
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
699 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
700
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
701 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
702 public void Compare2()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
703 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
704 ForEachProvider(db =>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
705 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
706 var q = from p in db.Person where string.Compare(p.FirstName, "joh", true) > 0 && p.ID == 1 select p;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
707 Assert.AreEqual(1, q.ToList().First().ID);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
708 });
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
709 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
710
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
711 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
712 public void Compare3()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
713 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
714 ForEachProvider(db =>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
715 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
716 var q = from p in db.Person where string.Compare(p.FirstName, 1, "Joh", 1, 2) == 0 && p.ID == 1 select p;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
717 Assert.AreEqual(1, q.ToList().First().ID);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
718 });
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
719 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
720
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
721 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
722 public void Compare4()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
723 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
724 ForEachProvider(db =>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
725 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
726 var q = from p in db.Person where string.Compare(p.FirstName, 1, "Joh", 1, 2, true) == 0 && p.ID == 1 select p;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
727 Assert.AreEqual(1, q.ToList().First().ID);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
728 });
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
729 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
730
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
731 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
732 public void IsNullOrEmpty1()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
733 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
734 ForEachProvider(db =>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
735 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
736 var q = from p in db.Person where !string.IsNullOrEmpty(p.FirstName) && p.ID == 1 select p;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
737 Assert.AreEqual(1, q.ToList().First().ID);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
738 });
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
739 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
740
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
741 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
742 public void IsNullOrEmpty2()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
743 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
744 ForEachProvider(db =>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
745 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
746 var q = from p in db.Person where p.ID == 1 select string.IsNullOrEmpty(p.FirstName);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
747 Assert.AreEqual(false, q.ToList().First());
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
748 });
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
749 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
750
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
751 //[Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
752 public void Test()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
753 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
754 using (var db = new TestDbManager(ProviderName.Firebird))
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
755 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
756 var p = db
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
757 .SetCommand(@"
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
758 SELECT
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
759 t1.ParentID,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
760 t1.Value1
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
761 FROM
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
762 Parent t1
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
763 LEFT JOIN (
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
764 SELECT
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
765 t3.ParentID as ParentID1,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
766 Coalesce(t3.ParentID, 1) as c1
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
767 FROM
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
768 Child t3
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
769 ) t2 ON t1.ParentID = t2.ParentID1
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
770 WHERE
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
771 t2.c1 IS NULL")
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
772 .ExecuteList<Parent>();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
773
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
774 var p1 = p.First();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
775 Assert.AreEqual(1, p1.ParentID);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
776
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
777
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
778 var da = new SqlQuery();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
779 var pr = (Person)da.SelectByKey(typeof(Person), 1);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
780
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
781 Assert.AreEqual("Pupkin", pr.LastName);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
782
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
783
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
784 //Assert.AreEqual(1, p.ID);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
785 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
786 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
787 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
788 }