1 // SqliteParameterUnitTests.cs - NUnit Test Cases for Mono.Data.Sqlite.SqliteParameter
3 // Author(s): Thomas Zoechling <thomas.zoechling@gmx.at>
10 using Mono.Data.Sqlite;
11 using NUnit.Framework;
13 namespace MonoTests.Mono.Data.Sqlite
16 public class SqliteParameterUnitTests
18 readonly static string _uri = "SqliteTest.db";
19 readonly static string _connectionString = "URI=file://" + _uri + ", version=3";
20 static SqliteConnection _conn = new SqliteConnection (_connectionString);
22 public SqliteParameterUnitTests()
27 [Category ("NotWorking")]
29 public void InsertRandomValuesWithParameter()
31 SqliteParameter textP = new SqliteParameter();
32 textP.ParameterName = "textP";
33 textP.SourceColumn = "t";
35 SqliteParameter floatP = new SqliteParameter();
36 floatP.ParameterName = "floatP";
37 floatP.SourceColumn = "nu";
39 SqliteParameter integerP = new SqliteParameter();
40 integerP.ParameterName ="integerP";
41 integerP.SourceColumn = "i";
43 SqliteParameter blobP = new SqliteParameter();
44 blobP.ParameterName = "blobP";
45 blobP.SourceColumn = "b";
47 Random random = new Random();
48 StringBuilder builder = new StringBuilder();
49 for (int k=0; k < random.Next(0,100); k++)
51 builder.Append((char)random.Next(65536));
54 SqliteCommand insertCmd = new SqliteCommand("DELETE FROM t1; INSERT INTO t1 (t, f, i, b ) VALUES(:textP,:floatP,:integerP,:blobP)",_conn);
56 insertCmd.Parameters.Add(textP);
57 insertCmd.Parameters.Add(floatP);
58 insertCmd.Parameters.Add(blobP);
59 insertCmd.Parameters.Add(integerP);
61 textP.Value=builder.ToString();
62 floatP.Value=Convert.ToInt64(random.Next(999));
63 integerP.Value=random.Next(999);
64 blobP.Value=System.Text.Encoding.UTF8.GetBytes("\u05D0\u05D1\u05D2" + builder.ToString());
66 SqliteCommand selectCmd = new SqliteCommand("SELECT * from t1", _conn);
71 int res = insertCmd.ExecuteNonQuery();
72 Assert.AreEqual(res,1);
74 using (IDataReader reader = selectCmd.ExecuteReader()) {
75 Assert.AreEqual(reader.Read(), true);
76 Assert.AreEqual(reader["t"], textP.Value);
77 Assert.AreEqual(reader["f"], floatP.Value);
78 Assert.AreEqual(reader["i"], integerP.Value);
81 if (blobP.Value is byte[])
82 compareValue = System.Text.Encoding.UTF8.GetString ((byte[])blobP.Value);
84 compareValue = blobP.Value;
85 Assert.AreEqual(reader["b"], compareValue);
86 Assert.AreEqual(reader.Read(), false);