ea375055d7eff42f3f25fbcd002a30e9d7d6f16d
[mono.git] / mcs / class / System.Data.Linq / src / DbLinq / Test / Providers / ExecuteQuery_Test.cs
1 using System;\r
2 using System.Collections.Generic;\r
3 using System.Linq;\r
4 using System.Text;\r
5 using NUnit.Framework;\r
6 using Test_NUnit;\r
7 \r
8 using nwind;\r
9 \r
10 // test ns \r
11 #if MYSQL\r
12     namespace Test_NUnit_MySql\r
13 #elif ORACLE && ODP\r
14     namespace Test_NUnit_OracleODP\r
15 #elif ORACLE\r
16     namespace Test_NUnit_Oracle\r
17 #elif POSTGRES\r
18     namespace Test_NUnit_PostgreSql\r
19 #elif SQLITE\r
20     namespace Test_NUnit_Sqlite\r
21 #elif INGRES\r
22     namespace Test_NUnit_Ingres\r
23 #elif MSSQL && L2SQL\r
24     namespace Test_NUnit_MsSql_Strict\r
25 #elif MSSQL\r
26     namespace Test_NUnit_MsSql\r
27 #elif FIREBIRD\r
28     namespace Test_NUnit_Firebird\r
29 #endif\r
30 {\r
31     [TestFixture]\r
32     public class ExecuteQuery_Test : TestBase\r
33     {\r
34         [Test]\r
35         public void X1_SimpleQuery()\r
36         {\r
37             var db = CreateDB();\r
38 \r
39             IList<Category> categories1 = (from c in db.Categories orderby c.CategoryName select c).ToList();\r
40             IList<Category> categories2 = db.ExecuteQuery<Category>(\r
41                 @"select \r
42                         [Description], \r
43                         [CategoryName], \r
44                         [Picture],\r
45                         [CategoryID]\r
46                     from [Categories]\r
47                      order by [CategoryName]").ToList();\r
48 \r
49             Assert.AreEqual(categories1.Count, categories2.Count);\r
50             for (int index = 0; index < categories2.Count; index++)\r
51             {\r
52                 Assert.AreEqual(categories1[index].CategoryID, categories2[index].CategoryID);\r
53                 Assert.AreEqual(categories1[index].CategoryName, categories2[index].CategoryName);\r
54                 Assert.AreEqual(categories1[index].Description, categories2[index].Description);\r
55             }\r
56         }\r
57 \r
58         [Test]\r
59         public void X2_CheckChanges()\r
60         {\r
61             var db = CreateDB();\r
62             string query = "SELECT * FROM \"Customers\";";\r
63 \r
64             var characters = db.ExecuteQuery<Customer>(query);\r
65             var character = characters.First();\r
66 \r
67             string beforecountry = character.Country;\r
68             character.Country = "Burmuda";\r
69 \r
70             Assert.Greater(db.GetChangeSet().Updates.Count, 0);\r
71             db.SubmitChanges();\r
72 \r
73             var character2 = db.Customers.First(c=>c.CustomerID==character.CustomerID);\r
74             Assert.AreEqual(character2.Country, "Burmuda");\r
75 \r
76             character2.Country = beforecountry;\r
77             db.SubmitChanges();\r
78         }\r
79     }\r
80 }\r