column name and ordinal fix...tested on 10.1
[mono.git] / mcs / class / System.Data.Linq / src / DbLinq / Test / Providers / ReadTests_AnyCountFirst.cs
1 using System;\r
2 using System.Collections.Generic;\r
3 using System.Linq;\r
4 using System.Text;\r
5 using Test_NUnit;\r
6 using NUnit.Framework;\r
7 using Test_NUnit.Linq_101_Samples;\r
8 \r
9 using nwind;\r
10 \r
11 // test ns \r
12 #if MYSQL\r
13     namespace Test_NUnit_MySql\r
14 #elif ORACLE && ODP\r
15     namespace Test_NUnit_OracleODP\r
16 #elif ORACLE\r
17     namespace Test_NUnit_Oracle\r
18 #elif POSTGRES\r
19     namespace Test_NUnit_PostgreSql\r
20 #elif SQLITE\r
21     namespace Test_NUnit_Sqlite\r
22 #elif INGRES\r
23     namespace Test_NUnit_Ingres\r
24 #elif MSSQL && L2SQL\r
25     namespace Test_NUnit_MsSql_Strict\r
26 #elif MSSQL\r
27     namespace Test_NUnit_MsSql\r
28 #elif FIREBIRD\r
29     namespace Test_NUnit_Firebird\r
30 #endif\r
31 {\r
32     [TestFixture]\r
33     public class AnyCount : TestBase\r
34     {\r
35         [Test]\r
36         public void AnyInternal01()\r
37         {\r
38             Northwind db = CreateDB();\r
39 \r
40             var q = from c in db.Customers\r
41                     where !c.Orders.Any()\r
42                     select c;\r
43 \r
44             var list = q.ToList();\r
45             Assert.IsTrue(list.Count > 0);\r
46         }\r
47 \r
48         [Test]\r
49         public void AnyInternal02()\r
50         {\r
51             Northwind db = CreateDB();\r
52 \r
53             var q = from c in db.Customers\r
54                     where !c.Orders.Any(o => o.Customer.ContactName == "WARTH")\r
55                     select c;\r
56 \r
57             var list = q.ToList();\r
58             Assert.IsTrue(list.Count > 0);\r
59         }\r
60 \r
61 #if !DEBUG && POSTGRES\r
62         [Explicit]\r
63 #endif\r
64         [Test]\r
65         public void AnyInternal03()\r
66         {\r
67             Northwind db = CreateDB();\r
68 \r
69             var q = (from c in db.Customers\r
70                      where !c.Orders.Where(o => o.Customer.ContactName == "WARTH")\r
71                                      .Any(o => o.Customer.Country == "USA")\r
72                      select c).ToList();\r
73         }\r
74 \r
75         [Test]\r
76         public void AnyInternal04()\r
77         {\r
78             Northwind db = CreateDB();\r
79 \r
80             var q = (from c in db.Customers\r
81                      where !c.Orders.Select(o => o.Customer.Country)\r
82                                      .Any(ct => ct == "USA")\r
83                      select c).ToList();\r
84         }\r
85 \r
86         [Test]\r
87         public void AnyInternal05()\r
88         {\r
89             Northwind db = CreateDB();\r
90 \r
91             var q = (from c in db.Customers\r
92                      select new { c.CustomerID, HasUSAOrders = c.Orders.Any(o => o.ShipCountry == "USA") }).ToList();\r
93         }\r
94 \r
95 \r
96         [Test]\r
97         public void AnyExternal01()\r
98         {\r
99             Northwind db = CreateDB();\r
100 \r
101             var q = (from c in db.Customers\r
102                      where c.Country == "USA"\r
103                      select c).Any();\r
104 \r
105         }\r
106 \r
107         [Test]\r
108         public void AnyExternal02()\r
109         {\r
110             Northwind db = CreateDB();\r
111 \r
112             var q = (from c in db.Customers\r
113                      where c.Country == "USA"\r
114                      select c).Any(cust => cust.City == "Seatle");\r
115         }\r
116 \r
117         [Test]\r
118         public void AnyExternal03()\r
119         {\r
120             Northwind db = CreateDB();\r
121             var q = db.Customers.Any();\r
122         }\r
123 \r
124         [Test]\r
125         public void AnyExternal04()\r
126         {\r
127             Northwind db = CreateDB();\r
128             var q = db.Customers.Any(cust => cust.City == "Seatle");\r
129         }\r
130 \r
131 \r
132         [Test]\r
133         public void CountInternal01()\r
134         {\r
135             Northwind db = CreateDB();\r
136 \r
137             var q = from c in db.Customers\r
138                     where c.Orders.Count() % 2 == 0\r
139                     select c;\r
140 \r
141             var list = q.ToList();\r
142             Assert.IsTrue(list.Count > 0);\r
143         }\r
144 \r
145         [Test]\r
146         public void CountInternal02()\r
147         {\r
148             Northwind db = CreateDB();\r
149 \r
150             var q = from c in db.Customers\r
151                     where c.Orders.Count(o => o.Customer.ContactName == "WARTH") % 2 == 0\r
152                     select c;\r
153 \r
154             var list = q.ToList();\r
155             Assert.IsTrue(list.Count > 0);\r
156         }\r
157 \r
158 #if !DEBUG && POSTGRES\r
159         [Explicit]\r
160 #endif\r
161         [Test]\r
162         public void CountInternal03()\r
163         {\r
164             Northwind db = CreateDB();\r
165 \r
166             var q = (from c in db.Customers\r
167                      where c.Orders.Where(o => o.Customer.ContactName == "WARTH")\r
168                                      .Count(o => o.Customer.Country == "USA") % 2 == 0\r
169                      select c).ToList();\r
170         }\r
171 \r
172         [Test]\r
173         public void CountInternal04()\r
174         {\r
175             Northwind db = CreateDB();\r
176 \r
177             var q = (from c in db.Customers\r
178                      where c.Orders.Select(o => o.Customer.Country)\r
179                                      .Count(ct => ct == "USA") % 2 == 0\r
180                      select c).ToList();\r
181         }\r
182 \r
183 \r
184         [Test]\r
185         public void CountExternal01()\r
186         {\r
187             Northwind db = CreateDB();\r
188 \r
189             var q = (from c in db.Customers\r
190                      where c.Country == "USA"\r
191                      select c).Count();\r
192         }\r
193 \r
194         [Test]\r
195         public void CountExternal02()\r
196         {\r
197             Northwind db = CreateDB();\r
198 \r
199             var q = (from c in db.Customers\r
200                      where c.Country == "USA"\r
201                      select c).Count(cust => cust.City == "Seatle");\r
202         }\r
203 \r
204         [Test]\r
205         public void CountExternal03()\r
206         {\r
207             Northwind db = CreateDB();\r
208             var q = db.Customers.Count();\r
209         }\r
210 \r
211         [Test]\r
212         public void CountExternal04()\r
213         {\r
214             Northwind db = CreateDB();\r
215             var q = db.Customers.Count(cust => cust.City == "Seatle");\r
216         }\r
217 \r
218         [Test]\r
219         public void CountInternal05()\r
220         {\r
221             Northwind db = CreateDB();\r
222 \r
223             var q = (from c in db.Customers\r
224                      select new { c.CustomerID, HasUSAOrders = c.Orders.Count(o => o.ShipCountry == "USA") }).ToList();\r
225         }\r
226 \r
227 #if !DEBUG && (SQLITE || (MSSQL && !L2SQL))\r
228         [Explicit]\r
229 #endif\r
230         [Test]\r
231         public void FirstInternal01()\r
232         {\r
233             Northwind db = CreateDB();\r
234 \r
235             var q = from c in db.Customers\r
236                     where c.Orders.FirstOrDefault() != null\r
237                     select c;\r
238 \r
239             var list = q.ToList();\r
240             Assert.IsTrue(list.Count > 0);\r
241         }\r
242 \r
243 #if !DEBUG && (SQLITE || (MSSQL && !L2SQL))\r
244         [Explicit]\r
245 #endif\r
246         [Test]\r
247         public void FirstInternal02()\r
248         {\r
249             Northwind db = CreateDB();\r
250 \r
251             var q = from c in db.Customers\r
252                     where c.Orders.FirstOrDefault(o => o.Customer.ContactName == "WARTH") != null\r
253                     select c;\r
254 \r
255             var list = q.ToList();\r
256         }\r
257 \r
258 #if !DEBUG && (SQLITE || POSTGRES || (MSSQL && !L2SQL))\r
259         [Explicit]\r
260 #endif\r
261         [Test]\r
262         public void FirstInternal03()\r
263         {\r
264             Northwind db = CreateDB();\r
265 \r
266             var q = (from c in db.Customers\r
267                      where c.Orders.Where(o => o.Customer.ContactName == "WARTH")\r
268                                      .FirstOrDefault(o => o.Customer.Country == "USA") != null\r
269                      select c).ToList();\r
270         }\r
271 \r
272         [Test]\r
273         public void FirstInternal04()\r
274         {\r
275             Northwind db = CreateDB();\r
276 \r
277             var q = (from c in db.Customers\r
278                      where c.Orders.Select(o => o.Customer.Country)\r
279                                    .FirstOrDefault(ct => ct == "USA") != null\r
280                      select c).ToList();\r
281         }\r
282 \r
283         [Test]\r
284         public void FirstExternal01()\r
285         {\r
286             Northwind db = CreateDB();\r
287 \r
288             var q = (from c in db.Customers\r
289                      where c.Country == "USA"\r
290                      select c).First();\r
291         }\r
292 \r
293         [Test]\r
294         public void FirstExternal02()\r
295         {\r
296             Northwind db = CreateDB();\r
297 \r
298             var q = (from c in db.Customers\r
299                      where c.Country == "France"\r
300                      select c).First(cust => cust.City == "Marseille");\r
301 \r
302         }\r
303 \r
304         [Test]\r
305         public void FirstExternal03()\r
306         {\r
307             Northwind db = CreateDB();\r
308             var q = db.Customers.First();\r
309         }\r
310 \r
311         [Test]\r
312         public void FirstExternal04()\r
313         {\r
314             Northwind db = CreateDB();\r
315             var q = db.Customers.First(cust => cust.City == "Marseille");\r
316         }\r
317 \r
318         [Test]\r
319         public void FirstInternal05()\r
320         {\r
321             Northwind db = CreateDB();\r
322 \r
323             var q = (from c in db.Customers\r
324                      select new { c.CustomerID, FirstUSAOrder = c.Orders.First(o => o.ShipCountry == "France") }).ToList();\r
325         }\r
326 \r
327         [Test]\r
328         public void ArrayContains()\r
329         {\r
330             var db = CreateDB();\r
331             decimal[] d = new decimal[] { 1, 4, 5, 6, 10248, 10255 };\r
332             var q = db.OrderDetails.Where(o => d.Contains(o.OrderID));\r
333 \r
334             Assert.Greater(q.Count(), 0);\r
335         }\r
336 \r
337 \r
338         [Test]\r
339         public void ArrayContains_QueryParserCacheHit()\r
340         {\r
341             var db = CreateDB();\r
342             decimal[] d = new decimal[] { 1, 4, 5, 6, 10248, 10255 };\r
343             var q = db.OrderDetails.Where(o => d.Contains(o.OrderID));\r
344             string query1 = db.GetCommand(q).CommandText;\r
345             d = new decimal[] { 1, 4, 5, 6, 7, 8 };\r
346             q = db.OrderDetails.Where(o => d.Contains(o.OrderID));\r
347             string query2 = db.GetCommand(q).CommandText;\r
348             Assert.AreEqual(query1, query2);\r
349         }\r
350 \r
351     }\r
352 }\r