d5920e7ac933d9aff7318697d36ba4a7485bf7c3
[mono.git] / mcs / class / System.Data.OracleClient / Test / TestOracleClient.cs
1 // 
2 // TestOracleClient.cs - Tests Sytem.Data.OracleClient
3 //                       data provider in Mono.
4 //  
5 // Part of managed C#/.NET library System.Data.OracleClient.dll
6 //
7 // Part of the Mono class libraries at
8 // mcs/class/System.Data.OracleClient/System.Data.OracleClient.OCI
9 //
10 // Tests:
11 //     Assembly: System.Data.OracleClient.dll
12 //     Namespace: System.Data.OracleClient
13 // 
14 // Author: 
15 //     Daniel Morgan <danmorg@sc.rr.com>
16 //         
17 // Copyright (C) Daniel Morgan, 2002
18 // 
19
20 // Expected Results:
21 //    3 new rows where ENAME being: 'conn3', 'conn9', and 'conn1'
22
23 using System;
24 using System.Runtime.InteropServices;
25 using System.Data.OracleClient;
26
27 namespace Test.OracleClient
28 {
29         public class OracleTest
30         {
31                 public OracleTest() 
32                 {
33
34                 }
35
36                 static void DoTest1(OracleConnection con, int conn) 
37                 {
38                         string inst = conn.ToString();
39
40                         string insertSql =
41                                 "insert into scott.emp " +
42                                 "(empno, ename, job, sal, deptno) " +
43                                 "values(123" + inst + "," +
44                                 "'conn" + inst + "'," +
45                                 "'homy" + inst + "'," +
46                                 "321" + inst + ",20)";
47                         
48                         Console.WriteLine("insertSql: " + insertSql);
49                         OracleCommand cmd = new OracleCommand();
50                         cmd.Connection = con;
51
52                         cmd.CommandText = insertSql;
53                         cmd.ExecuteNonQuery();
54
55                         if(conn == 2)
56                                 cmd.CommandText = "rollback";
57                         else
58                                 cmd.CommandText = "commit";
59                         cmd.ExecuteNonQuery();
60                 }
61
62                 static void DoTest9(OracleConnection con) {
63                         string inst = "9";
64
65                         string insertSql =
66                                 "insert into scott.emp " +
67                                 "(empno, ename, job, sal, deptno) " +
68                                 "values(123" + inst + "," +
69                                 "'conn" + inst + "'," +
70                                 "'homy" + inst + "'," +
71                                 "321" + inst + ",20)";
72                         
73                         Console.WriteLine("insertSql: " + insertSql);
74                         OracleCommand cmd = new OracleCommand();
75                         cmd.Connection = con;
76
77                         cmd.CommandText = insertSql;
78                         cmd.ExecuteNonQuery();
79
80                         cmd.CommandText = "commit";
81                         cmd.ExecuteNonQuery();
82                 }
83
84                 static void Wait(string msg) 
85                 {
86                         Console.WriteLine(msg);
87                         Console.WriteLine("Waiting...  Presee Enter to continue...");
88                         string nothing = Console.ReadLine();
89                 }
90
91                 [STAThread]
92                 static void Main(string[] args)
93                 {       
94                         if(args.Length != 3) {
95                                 Console.WriteLine("Usage: mono TestOracleClient database userid password");
96                                 return;
97                         }
98
99                         string connectionString = String.Format(
100                                 "Data Source={0};" +
101                                 "User ID={1};" +
102                                 "Password={2}",
103                                 args[0], args[1], args[2]);
104
105                         Wait("Verify database.");
106
107                         OracleConnection con1 = new OracleConnection();
108                         con1.ConnectionString = connectionString;
109                         con1.Open();
110
111                         Wait("Verify 1 connection.");
112                         
113                         OracleConnection con2 = new OracleConnection();
114                         con2.ConnectionString = connectionString;
115                         con2.Open();
116                         
117                         Wait("Verify 2 connections.");
118
119                         OracleConnection con3 = new OracleConnection();
120                         con3.ConnectionString = connectionString;
121                         con3.Open();
122                         
123                         Wait("Verify 3 connections.");
124                                         
125                         DoTest1(con1, 1);
126                         DoTest1(con2, 2);
127                         DoTest1(con3, 3);
128                         
129                         DoTest9(con1);
130
131                         Wait("Verify Proper Results.");
132                                                 
133                         con1.Close();           
134
135                         Wait("Verify 2 connections left.");
136
137                         con2.Close();
138
139                         Wait("Verify 1 connection left.");
140
141                         con3.Close();
142                         
143                         Wait("Verify all disconnected.");
144                 }
145         }
146 }