1 // 2 // OracleCommandTest.cs - 3 // NUnit Test Cases for OraclePermissionAttribute 4 // 5 // Author: 6 // Leszek Ciesielski <skolima@gmail.com> 7 // 8 // Copyright (C) 2006 Forcom (http://www.forcom.com.pl/) 9 // 10 // Permission is hereby granted, free of charge, to any person obtaining 11 // a copy of this software and associated documentation files (the 12 // "Software"), to deal in the Software without restriction, including 13 // without limitation the rights to use, copy, modify, merge, publish, 14 // distribute, sublicense, and/or sell copies of the Software, and to 15 // permit persons to whom the Software is furnished to do so, subject to 16 // the following conditions: 17 // 18 // The above copyright notice and this permission notice shall be 19 // included in all copies or substantial portions of the Software. 20 // 21 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 22 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 23 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 24 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 25 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 26 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 27 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 28 // 29 30 using System; 31 using System.Data; 32 using System.Data.OracleClient; 33 using System.Data.SqlClient; 34 35 using NUnit.Framework; 36 37 namespace MonoTests.System.Data.OracleClient 38 { 39 [TestFixture] 40 public class OracleCommandTest 41 { 42 const string COMMAND_TEXT = "SELECT * FROM dual"; 43 44 OracleCommand command; 45 IDbCommand interface_command; 46 47 [SetUp] SetUp()48 public void SetUp () 49 { 50 command = new OracleCommand (); 51 interface_command = command; 52 } 53 54 [TearDown] TearDown()55 public void TearDown () 56 { 57 command.Dispose (); 58 } 59 60 [Test] // ctor () Constructor1()61 public void Constructor1 () 62 { 63 OracleCommand cmd = new OracleCommand (); 64 Assert.AreEqual (string.Empty, cmd.CommandText, "#1"); 65 Assert.AreEqual (0, cmd.CommandTimeout, "#2"); 66 Assert.AreEqual (CommandType.Text, cmd.CommandType, "#3"); 67 Assert.IsNull (cmd.Connection, "#4"); 68 Assert.IsNull (cmd.Container, "#5"); 69 Assert.IsTrue (cmd.DesignTimeVisible, "#6"); 70 Assert.IsNotNull (cmd.Parameters, "#7"); 71 Assert.AreEqual (0, cmd.Parameters.Count, "#8"); 72 Assert.IsNull (cmd.Site, "#9"); 73 Assert.IsNull (cmd.Transaction, "#10"); 74 Assert.AreEqual (UpdateRowSource.Both, cmd.UpdatedRowSource, "#11"); 75 } 76 77 [Test] // ctor (String) Constructor2()78 public void Constructor2 () 79 { 80 OracleCommand cmd = new OracleCommand (COMMAND_TEXT); 81 Assert.AreEqual (COMMAND_TEXT, cmd.CommandText, "#A1"); 82 Assert.AreEqual (0, cmd.CommandTimeout, "#A2"); 83 Assert.AreEqual (CommandType.Text, cmd.CommandType, "#A3"); 84 Assert.IsNull (cmd.Connection, "#A4"); 85 Assert.IsNull (cmd.Container, "#A5"); 86 Assert.IsTrue (cmd.DesignTimeVisible, "#A6"); 87 Assert.IsNotNull (cmd.Parameters, "#A7"); 88 Assert.AreEqual (0, cmd.Parameters.Count, "#A8"); 89 Assert.IsNull (cmd.Site, "#A9"); 90 Assert.IsNull (cmd.Transaction, "#A10"); 91 Assert.AreEqual (UpdateRowSource.Both, cmd.UpdatedRowSource, "#A11"); 92 93 cmd = new OracleCommand ((string) null); 94 Assert.AreEqual (string.Empty, cmd.CommandText, "#B1"); 95 Assert.AreEqual (0, cmd.CommandTimeout, "#B2"); 96 Assert.AreEqual (CommandType.Text, cmd.CommandType, "#B3"); 97 Assert.IsNull (cmd.Connection, "#B4"); 98 Assert.IsNull (cmd.Container, "#B5"); 99 Assert.IsTrue (cmd.DesignTimeVisible, "#B6"); 100 Assert.IsNotNull (cmd.Parameters, "#B7"); 101 Assert.AreEqual (0, cmd.Parameters.Count, "#B8"); 102 Assert.IsNull (cmd.Site, "#B9"); 103 Assert.IsNull (cmd.Transaction, "#B10"); 104 Assert.AreEqual (UpdateRowSource.Both, cmd.UpdatedRowSource, "#B11"); 105 } 106 107 [Test] // ctor (String, OracleConnection) Constructor3()108 public void Constructor3 () 109 { 110 OracleConnection conn = new OracleConnection (); 111 OracleCommand cmd; 112 113 cmd = new OracleCommand (COMMAND_TEXT, conn); 114 Assert.AreEqual (COMMAND_TEXT, cmd.CommandText, "#A1"); 115 Assert.AreEqual (0, cmd.CommandTimeout, "#A2"); 116 Assert.AreEqual (CommandType.Text, cmd.CommandType, "#A3"); 117 Assert.AreSame (conn, cmd.Connection, "#A4"); 118 Assert.IsNull (cmd.Container, "#A5"); 119 Assert.IsTrue (cmd.DesignTimeVisible, "#A6"); 120 Assert.IsNotNull (cmd.Parameters, "#A7"); 121 Assert.AreEqual (0, cmd.Parameters.Count, "#A8"); 122 Assert.IsNull (cmd.Site, "#A9"); 123 Assert.IsNull (cmd.Transaction, "#A10"); 124 Assert.AreEqual (UpdateRowSource.Both, cmd.UpdatedRowSource, "#A11"); 125 126 cmd = new OracleCommand ((string) null, conn); 127 Assert.AreEqual (string.Empty, cmd.CommandText, "#B1"); 128 Assert.AreEqual (0, cmd.CommandTimeout, "#B2"); 129 Assert.AreEqual (CommandType.Text, cmd.CommandType, "#B3"); 130 Assert.AreSame (conn, cmd.Connection, "#B4"); 131 Assert.IsNull (cmd.Container, "#B5"); 132 Assert.IsTrue (cmd.DesignTimeVisible, "#B6"); 133 Assert.IsNotNull (cmd.Parameters, "#B7"); 134 Assert.AreEqual (0, cmd.Parameters.Count, "#B8"); 135 Assert.IsNull (cmd.Site, "#B9"); 136 Assert.IsNull (cmd.Transaction, "#B10"); 137 Assert.AreEqual (UpdateRowSource.Both, cmd.UpdatedRowSource, "#B11"); 138 139 cmd = new OracleCommand (COMMAND_TEXT, (OracleConnection) null); 140 Assert.AreEqual (COMMAND_TEXT, cmd.CommandText, "#C1"); 141 Assert.AreEqual (0, cmd.CommandTimeout, "#C2"); 142 Assert.AreEqual (CommandType.Text, cmd.CommandType, "#C3"); 143 Assert.IsNull (cmd.Connection, "#C4"); 144 Assert.IsNull (cmd.Container, "#C5"); 145 Assert.IsTrue (cmd.DesignTimeVisible, "#C6"); 146 Assert.IsNotNull (cmd.Parameters, "#C7"); 147 Assert.AreEqual (0, cmd.Parameters.Count, "#C8"); 148 Assert.IsNull (cmd.Site, "#C9"); 149 Assert.IsNull (cmd.Transaction, "#C10"); 150 Assert.AreEqual (UpdateRowSource.Both, cmd.UpdatedRowSource, "#C11"); 151 } 152 153 [Test] // ctor (String, OracleConnection, OracleTransaction) Constructor4()154 public void Constructor4 () 155 { 156 OracleConnection conn = new OracleConnection (); 157 OracleCommand cmd; 158 159 cmd = new OracleCommand (COMMAND_TEXT, conn, (OracleTransaction) null); 160 Assert.AreEqual (COMMAND_TEXT, cmd.CommandText, "#A1"); 161 Assert.AreEqual (0, cmd.CommandTimeout, "#A2"); 162 Assert.AreEqual (CommandType.Text, cmd.CommandType, "#A3"); 163 Assert.AreSame (conn, cmd.Connection, "#A4"); 164 Assert.IsNull (cmd.Container, "#A5"); 165 Assert.IsTrue (cmd.DesignTimeVisible, "#A6"); 166 Assert.IsNotNull (cmd.Parameters, "#A7"); 167 Assert.AreEqual (0, cmd.Parameters.Count, "#A8"); 168 Assert.IsNull (cmd.Site, "#A9"); 169 Assert.IsNull (cmd.Transaction, "#A10"); 170 Assert.AreEqual (UpdateRowSource.Both, cmd.UpdatedRowSource, "#A11"); 171 172 cmd = new OracleCommand ((string) null, conn, (OracleTransaction) null); 173 Assert.AreEqual (string.Empty, cmd.CommandText, "#B1"); 174 Assert.AreEqual (0, cmd.CommandTimeout, "#B2"); 175 Assert.AreEqual (CommandType.Text, cmd.CommandType, "#B3"); 176 Assert.AreSame (conn, cmd.Connection, "#B4"); 177 Assert.IsNull (cmd.Container, "#B5"); 178 Assert.IsTrue (cmd.DesignTimeVisible, "#B6"); 179 Assert.IsNotNull (cmd.Parameters, "#B7"); 180 Assert.AreEqual (0, cmd.Parameters.Count, "#B8"); 181 Assert.IsNull (cmd.Site, "#B9"); 182 Assert.IsNull (cmd.Transaction, "#B10"); 183 Assert.AreEqual (UpdateRowSource.Both, cmd.UpdatedRowSource, "#B11"); 184 185 cmd = new OracleCommand (COMMAND_TEXT, (OracleConnection) null, (OracleTransaction) null); 186 Assert.AreEqual (COMMAND_TEXT, cmd.CommandText, "#C1"); 187 Assert.AreEqual (0, cmd.CommandTimeout, "#C2"); 188 Assert.AreEqual (CommandType.Text, cmd.CommandType, "#C3"); 189 Assert.IsNull (cmd.Connection, "#C4"); 190 Assert.IsNull (cmd.Container, "#C5"); 191 Assert.IsTrue (cmd.DesignTimeVisible, "#C6"); 192 Assert.IsNotNull (cmd.Parameters, "#C7"); 193 Assert.AreEqual (0, cmd.Parameters.Count, "#C8"); 194 Assert.IsNull (cmd.Site, "#C9"); 195 Assert.IsNull (cmd.Transaction, "#C10"); 196 Assert.AreEqual (UpdateRowSource.Both, cmd.UpdatedRowSource, "#C11"); 197 } 198 199 [Test] // bug #78765 AllowNullTransactionTest()200 public void AllowNullTransactionTest () 201 { 202 command.Transaction = null; 203 interface_command.Transaction = null; 204 } 205 206 [Test] CommandText()207 public void CommandText () 208 { 209 OracleCommand cmd = new OracleCommand (); 210 cmd.CommandText = COMMAND_TEXT; 211 Assert.AreSame (COMMAND_TEXT, cmd.CommandText, "#1"); 212 cmd.CommandText = null; 213 Assert.AreEqual (string.Empty, cmd.CommandText, "#2"); 214 cmd.CommandText = COMMAND_TEXT; 215 Assert.AreSame (COMMAND_TEXT, cmd.CommandText, "#3"); 216 cmd.CommandText = string.Empty; 217 Assert.AreEqual (string.Empty, cmd.CommandText, "#4"); 218 } 219 220 [Test] CommandTimeout()221 public void CommandTimeout () 222 { 223 Assert.AreEqual (0, command.CommandTimeout, "#1"); 224 command.CommandTimeout = 10; 225 Assert.AreEqual (0, command.CommandTimeout, "#2"); 226 command.CommandTimeout = int.MaxValue; 227 Assert.AreEqual (0, command.CommandTimeout, "#3"); 228 command.CommandTimeout = int.MinValue; 229 Assert.AreEqual (0, command.CommandTimeout, "#4"); 230 } 231 232 [Test] ConnectionTimeout_IDbConnection()233 public void ConnectionTimeout_IDbConnection () 234 { 235 Assert.AreEqual (0, interface_command.CommandTimeout, "#1"); 236 interface_command.CommandTimeout = 10; 237 Assert.AreEqual (0, interface_command.CommandTimeout, "#2"); 238 interface_command.CommandTimeout = int.MaxValue; 239 Assert.AreEqual (0, interface_command.CommandTimeout, "#3"); 240 interface_command.CommandTimeout = int.MinValue; 241 Assert.AreEqual (0, interface_command.CommandTimeout, "#4"); 242 } 243 244 [Test] Connection()245 public void Connection () 246 { 247 OracleConnection connection = new OracleConnection (); 248 249 Assert.IsNull (command.Connection, "#1"); 250 command.Connection = connection; 251 Assert.AreSame (connection, command.Connection, "#2"); 252 Assert.AreSame (connection, interface_command.Connection, "#3"); 253 command.Connection = null; 254 Assert.IsNull (command.Connection, "#4"); 255 Assert.IsNull (interface_command.Connection, "#5"); 256 } 257 258 [Test] Connection_IDbConnection()259 public void Connection_IDbConnection () 260 { 261 OracleConnection connection = new OracleConnection (); 262 263 Assert.IsNull (interface_command.Connection, "#A1"); 264 interface_command.Connection = connection; 265 Assert.AreSame (connection, interface_command.Connection, "#A2"); 266 Assert.AreSame (connection, command.Connection, "#A3"); 267 interface_command.Connection = null; 268 Assert.IsNull (interface_command.Connection, "#A4"); 269 Assert.IsNull (command.Connection, "#A5"); 270 271 try { 272 interface_command.Connection = new SqlConnection (); 273 Assert.Fail ("#B1"); 274 } catch (InvalidCastException ex) { 275 Assert.AreEqual (typeof (InvalidCastException), ex.GetType (), "#B2"); 276 Assert.IsNull (ex.InnerException, "#B3"); 277 Assert.IsNotNull (ex.Message, "#B4"); 278 } 279 } 280 } 281 } 282