2009-06-12 Bill Holmes <billholmes54@gmail.com>
[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 && MONO_STRICT\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         [Test]\r
61         public void AnyInternal03()\r
62         {\r
63             Northwind db = CreateDB();\r
64 \r
65             var q = (from c in db.Customers\r
66                      where !c.Orders.Where(o => o.Customer.ContactName == "WARTH")\r
67                                      .Any(o => o.Customer.Country == "USA")\r
68                      select c).ToList();\r
69         }\r
70 \r
71         [Test]\r
72         public void AnyInternal04()\r
73         {\r
74             Northwind db = CreateDB();\r
75 \r
76             var q = (from c in db.Customers\r
77                      where !c.Orders.Select(o => o.Customer.Country)\r
78                                      .Any(ct => ct == "USA")\r
79                      select c).ToList();\r
80         }\r
81 \r
82         [Test]\r
83         public void AnyInternal05()\r
84         {\r
85             Northwind db = CreateDB();\r
86 \r
87             var q = (from c in db.Customers\r
88                      select new { c.CustomerID, HasUSAOrders = c.Orders.Any(o => o.ShipCountry == "USA") }).ToList();\r
89         }\r
90 \r
91 \r
92         [Test]\r
93         public void AnyExternal01()\r
94         {\r
95             Northwind db = CreateDB();\r
96 \r
97             var q = (from c in db.Customers\r
98                      where c.Country == "USA"\r
99                      select c).Any();\r
100 \r
101         }\r
102 \r
103         [Test]\r
104         public void AnyExternal02()\r
105         {\r
106             Northwind db = CreateDB();\r
107 \r
108             var q = (from c in db.Customers\r
109                      where c.Country == "USA"\r
110                      select c).Any(cust => cust.City == "Seatle");\r
111         }\r
112 \r
113         [Test]\r
114         public void AnyExternal03()\r
115         {\r
116             Northwind db = CreateDB();\r
117             var q = db.Customers.Any();\r
118         }\r
119 \r
120         [Test]\r
121         public void AnyExternal04()\r
122         {\r
123             Northwind db = CreateDB();\r
124             var q = db.Customers.Any(cust => cust.City == "Seatle");\r
125         }\r
126 \r
127 \r
128         [Test]\r
129         public void CountInternal01()\r
130         {\r
131             Northwind db = CreateDB();\r
132 \r
133             var q = from c in db.Customers\r
134                     where c.Orders.Count() % 2 == 0\r
135                     select c;\r
136 \r
137             var list = q.ToList();\r
138             Assert.IsTrue(list.Count > 0);\r
139         }\r
140 \r
141         [Test]\r
142         public void CountInternal02()\r
143         {\r
144             Northwind db = CreateDB();\r
145 \r
146             var q = from c in db.Customers\r
147                     where c.Orders.Count(o => o.Customer.ContactName == "WARTH") % 2 == 0\r
148                     select c;\r
149 \r
150             var list = q.ToList();\r
151             Assert.IsTrue(list.Count > 0);\r
152         }\r
153 \r
154 \r
155         [Test]\r
156         public void CountInternal03()\r
157         {\r
158             Northwind db = CreateDB();\r
159 \r
160             var q = (from c in db.Customers\r
161                      where c.Orders.Where(o => o.Customer.ContactName == "WARTH")\r
162                                      .Count(o => o.Customer.Country == "USA") % 2 == 0\r
163                      select c).ToList();\r
164         }\r
165 \r
166         [Test]\r
167         public void CountInternal04()\r
168         {\r
169             Northwind db = CreateDB();\r
170 \r
171             var q = (from c in db.Customers\r
172                      where c.Orders.Select(o => o.Customer.Country)\r
173                                      .Count(ct => ct == "USA") % 2 == 0\r
174                      select c).ToList();\r
175         }\r
176 \r
177 \r
178         [Test]\r
179         public void CountExternal01()\r
180         {\r
181             Northwind db = CreateDB();\r
182 \r
183             var q = (from c in db.Customers\r
184                      where c.Country == "USA"\r
185                      select c).Count();\r
186         }\r
187 \r
188         [Test]\r
189         public void CountExternal02()\r
190         {\r
191             Northwind db = CreateDB();\r
192 \r
193             var q = (from c in db.Customers\r
194                      where c.Country == "USA"\r
195                      select c).Count(cust => cust.City == "Seatle");\r
196         }\r
197 \r
198         [Test]\r
199         public void CountExternal03()\r
200         {\r
201             Northwind db = CreateDB();\r
202             var q = db.Customers.Count();\r
203         }\r
204 \r
205         [Test]\r
206         public void CountExternal04()\r
207         {\r
208             Northwind db = CreateDB();\r
209             var q = db.Customers.Count(cust => cust.City == "Seatle");\r
210         }\r
211 \r
212         [Test]\r
213         public void CountInternal05()\r
214         {\r
215             Northwind db = CreateDB();\r
216 \r
217             var q = (from c in db.Customers\r
218                      select new { c.CustomerID, HasUSAOrders = c.Orders.Count(o => o.ShipCountry == "USA") }).ToList();\r
219         }\r
220 \r
221         [Test]\r
222         public void FirstInternal01()\r
223         {\r
224             Northwind db = CreateDB();\r
225 \r
226             var q = from c in db.Customers\r
227                     where c.Orders.FirstOrDefault() != null\r
228                     select c;\r
229 \r
230             var list = q.ToList();\r
231             Assert.IsTrue(list.Count > 0);\r
232         }\r
233 \r
234         [Test]\r
235         public void FirstInternal02()\r
236         {\r
237             Northwind db = CreateDB();\r
238 \r
239             var q = from c in db.Customers\r
240                     where c.Orders.FirstOrDefault(o => o.Customer.ContactName == "WARTH") != null\r
241                     select c;\r
242 \r
243             var list = q.ToList();\r
244         }\r
245 \r
246         [Test]\r
247         public void FirstInternal03()\r
248         {\r
249             Northwind db = CreateDB();\r
250 \r
251             var q = (from c in db.Customers\r
252                      where c.Orders.Where(o => o.Customer.ContactName == "WARTH")\r
253                                      .FirstOrDefault(o => o.Customer.Country == "USA") != null\r
254                      select c).ToList();\r
255         }\r
256 \r
257         [Test]\r
258         public void FirstInternal04()\r
259         {\r
260             Northwind db = CreateDB();\r
261 \r
262             var q = (from c in db.Customers\r
263                      where c.Orders.Select(o => o.Customer.Country)\r
264                                    .FirstOrDefault(ct => ct == "USA") != null\r
265                      select c).ToList();\r
266         }\r
267 \r
268         [Test]\r
269         public void FirstExternal01()\r
270         {\r
271             Northwind db = CreateDB();\r
272 \r
273             var q = (from c in db.Customers\r
274                      where c.Country == "USA"\r
275                      select c).First();\r
276         }\r
277 \r
278         [Test]\r
279         public void FirstExternal02()\r
280         {\r
281             Northwind db = CreateDB();\r
282 \r
283             var q = (from c in db.Customers\r
284                      where c.Country == "France"\r
285                      select c).First(cust => cust.City == "Marseille");\r
286 \r
287         }\r
288 \r
289         [Test]\r
290         public void FirstExternal03()\r
291         {\r
292             Northwind db = CreateDB();\r
293             var q = db.Customers.First();\r
294         }\r
295 \r
296         [Test]\r
297         public void FirstExternal04()\r
298         {\r
299             Northwind db = CreateDB();\r
300             var q = db.Customers.First(cust => cust.City == "Marseille");\r
301         }\r
302 \r
303         [Test]\r
304         public void FirstInternal05()\r
305         {\r
306             Northwind db = CreateDB();\r
307 \r
308             var q = (from c in db.Customers\r
309                      select new { c.CustomerID, FirstUSAOrder = c.Orders.First(o => o.ShipCountry == "France") }).ToList();\r
310         }\r
311 \r
312         [Test]\r
313         public void ArrayContains()\r
314         {\r
315             var db = CreateDB();\r
316             decimal[] d = new decimal[] { 1, 4, 5, 6 };\r
317             var q = db.OrderDetails.Where(o => d.Contains(o.OrderID));\r
318 \r
319             Assert.Greater(q.Count(), 0);\r
320         }\r
321 \r
322     }\r
323 }\r