f792f8e585fb0e173c1d07d5553c36dfbc050535
[mono.git] / mcs / class / System.Data.Linq / src / DbLinq / Test / Providers / StoredProcTest.cs
1 #region MIT license\r
2 // \r
3 // MIT license\r
4 //\r
5 // Copyright (c) 2007-2008 Jiri Moudry, Pascal Craponne\r
6 // \r
7 // Permission is hereby granted, free of charge, to any person obtaining a copy\r
8 // of this software and associated documentation files (the "Software"), to deal\r
9 // in the Software without restriction, including without limitation the rights\r
10 // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r
11 // copies of the Software, and to permit persons to whom the Software is\r
12 // furnished to do so, subject to the following conditions:\r
13 // \r
14 // The above copyright notice and this permission notice shall be included in\r
15 // all copies or substantial portions of the Software.\r
16 // \r
17 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r
18 // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r
19 // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\r
20 // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\r
21 // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r
22 // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\r
23 // THE SOFTWARE.\r
24 // \r
25 #endregion\r
26 \r
27 using System;\r
28 using System.Collections.Generic;\r
29 using System.Text;\r
30 using System.Linq;\r
31 using NUnit.Framework;\r
32 using Test_NUnit;\r
33 \r
34 using nwind;\r
35 \r
36 // test ns \r
37 #if MYSQL\r
38     namespace Test_NUnit_MySql\r
39 #elif ORACLE && ODP\r
40     namespace Test_NUnit_OracleODP\r
41 #elif ORACLE\r
42     namespace Test_NUnit_Oracle\r
43 #elif POSTGRES\r
44     namespace Test_NUnit_PostgreSql\r
45 #elif SQLITE\r
46     namespace Test_NUnit_Sqlite\r
47 #elif INGRES\r
48     namespace Test_NUnit_Ingres\r
49 #elif MSSQL && L2SQL\r
50     namespace Test_NUnit_MsSql_Strict\r
51 #elif MSSQL\r
52     namespace Test_NUnit_MsSql\r
53 #elif FIREBIRD\r
54     namespace Test_NUnit_Firebird\r
55 #endif\r
56 {\r
57     [TestFixture]\r
58     public class StoredProcTest : TestBase\r
59     {\r
60 \r
61 #if !SQLITE && !MSSQL && !L2SQL && !FIREBIRD && !POSTGRES\r
62         [Test]\r
63         public void SP1_CallHello0()\r
64         {\r
65             Northwind db = base.CreateDB();\r
66             string result = db.Hello0();\r
67             Assert.IsNotNull(result);\r
68         }\r
69 \r
70         [Test]\r
71         public void SP2_CallHello1()\r
72         {\r
73             Northwind db = base.CreateDB();\r
74             string result = db.Hello1("xx");\r
75             Assert.IsTrue(result!=null && result.Contains("xx"));\r
76         }\r
77 \r
78         [Test]\r
79         public void SP3_GetOrderCount_SelField()\r
80         {\r
81             Northwind db = base.CreateDB();\r
82             var q = from c in db.Customers \r
83                     select new { c.CustomerID, OrderCount = db.GetOrderCount(c.CustomerID) };\r
84 \r
85             int count = 0;\r
86             foreach (var c in q)\r
87             {\r
88                 Assert.IsNotNull(c.CustomerID);\r
89                 Assert.Greater(c.OrderCount, -1);\r
90                 count++;\r
91             }\r
92             Assert.Greater(count, 0);\r
93         }\r
94 \r
95         [Test]\r
96         public void SP4_GetOrderCount_SelField_B()\r
97         {\r
98             Northwind db = base.CreateDB();\r
99             var q = from c in db.Customers \r
100                     select new {c, OrderCount=db.GetOrderCount(c.CustomerID)};\r
101 \r
102             int count = 0;\r
103             foreach (var v in q)\r
104             {\r
105                 Assert.IsNotNull(v.c.CustomerID);\r
106                 Assert.Greater(v.OrderCount, -1);\r
107                 count++;\r
108             }\r
109             Assert.Greater(count, 0);\r
110         }\r
111 \r
112         [Test]\r
113         public void SPB_GetOrderCount_Having()\r
114         {\r
115             Northwind db = base.CreateDB();\r
116             var q = from c in db.Customers where db.GetOrderCount(c.CustomerID) > 1 select c;\r
117 \r
118             int count = 0;\r
119             foreach (var c in q)\r
120             {\r
121                 Assert.IsTrue(c.CustomerID!=null, "Non-null customerID required");\r
122                 count++;\r
123             }\r
124             Assert.Greater(count, 0);\r
125         }\r
126 #endif\r
127     }\r
128 \r
129 }\r