2 // Copyright (c) 2006 Mainsoft Co.
4 // Permission is hereby granted, free of charge, to any person obtaining
5 // a copy of this software and associated documentation files (the
6 // "Software"), to deal in the Software without restriction, including
7 // without limitation the rights to use, copy, modify, merge, publish,
8 // distribute, sublicense, and/or sell copies of the Software, and to
9 // permit persons to whom the Software is furnished to do so, subject to
10 // the following conditions:
12 // The above copyright notice and this permission notice shall be
13 // included in all copies or substantial portions of the Software.
15 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
16 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
17 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
18 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
19 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
20 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
21 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
26 using System.Data.OracleClient;
28 using MonoTests.System.Data.Utils;
31 using NUnit.Framework;
34 using Microsoft.ApplicationBlocks;
36 namespace MonoTests.System.Data.OracleClient
39 [Category ("NotWorking")]
40 public class OracleParameter_ctor_SOtype : ADONetTesterClass
42 private Exception exp;
43 // transaction use was add for PostgreSQL
46 public static void Main()
48 OracleParameter_ctor_SOtype tc = new OracleParameter_ctor_SOtype();
52 tc.BeginTest("OracleParameter_ctor_SOtype on " + ConnectedDataProvider.GetDbType().ToString());
55 catch(Exception ex){tc.exp = ex;}
56 finally {tc.EndTest(tc.exp);}
61 Log(string.Format("DB Server={0}.", ConnectedDataProvider.GetDbType()));
63 SimpleTypesWithDBNull();
67 public void AllTypes()
70 OracleParameter param = null;
72 foreach (OracleType dbtype in Enum.GetValues(typeof(OracleType)))
75 param = new OracleParameter("myParam",dbtype);
79 BeginCase("ctor " + dbtype.ToString());
80 Compare(param != null, true);
82 catch(Exception ex){exp = ex;}
83 finally{EndCase(exp); exp = null;}
87 BeginCase("name " + dbtype.ToString());
88 Compare(param.ParameterName ,"myParam");
90 catch(Exception ex){exp = ex;}
91 finally{EndCase(exp); exp = null;}
98 // [Category("NotWorking")]
100 public void SimpleTypesWithDBNull()
102 OracleConnection con=null;
103 OracleCommand cmd=null;
104 OracleDataReader rdr=null;
108 BeginCase("Test simple types with DBNull");
110 string connectionString = ConnectedDataProvider.ConnectionString;
111 con = new OracleConnection(connectionString);
112 cmd = new OracleCommand();
114 // transaction use was add for PostgreSQL
115 tr = con.BeginTransaction();
117 cmd = new OracleCommand("", con, tr);
118 cmd.CommandText = "GHSP_TYPES_SIMPLE_1";
119 cmd.CommandType = CommandType.StoredProcedure;
121 AddSimpleTypesNullParams(cmd);
122 cmd.Parameters.Add(new OracleParameter("result",OracleType.Cursor)).Direction = ParameterDirection.Output;
125 if (ConnectedDataProvider.GetDbType(con) == DataBaseServer.PostgreSQL)
129 rdr = Microsoft.ApplicationBlocks.Data.PostgresOracleHelper.OLEDB4ODBCExecuteReader(cmd,true);
137 rdr = cmd.ExecuteReader();
141 for (int i=0; i<rdr.FieldCount; i++)
143 Compare(DBNull.Value, rdr.GetValue(i));
154 if(rdr != null && !rdr.IsClosed)
158 if (con != null && con.State == ConnectionState.Open)
166 private void AddSimpleTypesNullParams(OracleCommand cmd)
168 OracleParameter tmpParam;
169 tmpParam = new OracleParameter("T_NUMBER", OracleType.Number);
170 cmd.Parameters.Add(tmpParam);
171 tmpParam = new OracleParameter("T_LONG", OracleType.LongVarChar);
172 cmd.Parameters.Add(tmpParam);
173 tmpParam = new OracleParameter("T_FLOAT", OracleType.Float);
174 cmd.Parameters.Add(tmpParam);
175 tmpParam = new OracleParameter("T_VARCHAR", OracleType.VarChar);
176 cmd.Parameters.Add(tmpParam);
177 tmpParam = new OracleParameter("T_NVARCHAR", OracleType.NVarChar);
178 cmd.Parameters.Add(tmpParam);
179 tmpParam = new OracleParameter("T_CHAR", OracleType.Char);
180 cmd.Parameters.Add(tmpParam);
181 tmpParam = new OracleParameter("T_NCHAR", OracleType.NChar);
182 cmd.Parameters.Add(tmpParam);
184 foreach (OracleParameter current in cmd.Parameters)
186 current.Value = DBNull.Value;