1 message in com.mysql.lists.dotnetConnector/NET commit: r116 - branches...| From | Sent On | Attachments |
|---|---|---|
| rbur...@mysql.com | 29 Jul 2005 14:31 |
| Subject: | Connector/NET commit: r116 - branches/1.0/TestSuite![]() |
|---|---|
| From: | rbur...@mysql.com (rbur...@mysql.com) |
| Date: | 07/29/2005 02:31:11 PM |
| List: | com.mysql.lists.dotnet |
Modified: branches/1.0/TestSuite/DateTimeTests.cs Log: Removed reference to DataSetTest Added several new unit tests
Modified: branches/1.0/TestSuite/DateTimeTests.cs =================================================================== --- branches/1.0/TestSuite/DateTimeTests.cs 2005-07-29 19:40:48 UTC (rev 115) +++ branches/1.0/TestSuite/DateTimeTests.cs 2005-07-29 21:31:32 UTC (rev 116) @@ -166,21 +166,24 @@ MySqlDataAdapter da = new MySqlDataAdapter("SELECT id, dt FROM Test", c); MySqlCommandBuilder cb = new MySqlCommandBuilder(da);
- DataSetTest dst = new DataSetTest(); - da.Fill(dst, "DateTest"); + DataTable dt = new DataTable(); + dt.Columns.Add(new DataColumn("id", typeof(int))); + dt.Columns.Add(new DataColumn("dt", typeof(DateTime)));
+ da.Fill(dt); + DateTime now = DateTime.Now; - DataSetTest.DateTestRow row = dst.DateTest.NewDateTestRow(); - row.id = 1; - row.dt = now; - dst.DateTest.Rows.Add( row ); - da.Update( dst, "DateTest" ); + DataRow row = dt.NewRow(); + row["id"] = 1; + row["dt"] = now; + dt.Rows.Add(row); + da.Update(dt);
- dst.DateTest.Clear(); - da.Fill( dst.DateTest ); + dt.Clear(); + da.Fill(dt);
- Assert.AreEqual( 1, dst.DateTest.Rows.Count ); - Assert.AreEqual( now.Date, ((DateTime)dst.DateTest[0]["dt"]).Date ); + Assert.AreEqual(1, dt.Rows.Count); + Assert.AreEqual(now.Date, ((DateTime)dt.Rows[0]["dt"]).Date ); } catch (Exception ex) { @@ -253,7 +256,70 @@ } }
+ /// <summary>
+ /// Bug #8929 Timestamp values with a date > 10/29/9997 cause problems
+ /// </summary>
+ [Test]
+ public void LargeDateTime()
+ {
+ MySqlCommand cmd = new MySqlCommand("INSERT INTO Test (id, dt)
VALUES(?id,?dt)", conn);
+ cmd.Parameters.Add(new MySqlParameter("?id", 1));
+ cmd.Parameters.Add(new MySqlParameter("?dt", DateTime.Parse("9997-10-29")));
+ cmd.ExecuteNonQuery();
+ cmd.Parameters[0].Value = 2;
+ cmd.Parameters[1].Value = DateTime.Parse("9997-10-30");
+ cmd.ExecuteNonQuery();
+ cmd.Parameters[0].Value = 3;
+ cmd.Parameters[1].Value = DateTime.Parse("9999-12-31");
+ cmd.ExecuteNonQuery();
+ cmd.CommandText = "SELECT id,dt FROM Test";
+ using (MySqlDataReader reader = cmd.ExecuteReader())
+ {
+ Assert.IsTrue(reader.Read());
+ Assert.AreEqual(DateTime.Parse("9997-10-29").Date,
reader.GetDateTime(1).Date);
+ Assert.IsTrue(reader.Read());
+ Assert.AreEqual(DateTime.Parse("9997-10-30").Date,
reader.GetDateTime(1).Date);
+ Assert.IsTrue(reader.Read());
+ Assert.AreEqual(DateTime.Parse("9999-12-31").Date,
reader.GetDateTime(1).Date);
+ }
+ }
+
+ [Test]
+ public void DefaultTimestamp()
+ {
+ execSQL("DROP TABLE IF EXISTS test");
+ execSQL("CREATE TABLE test (id INT, dt TIMESTAMP NOT NULL default
CURRENT_TIMESTAMP)");
+
+ MySqlDataAdapter da = new MySqlDataAdapter("SELECT * FROM test", conn);
+ DataSet ds = new DataSet();
+ da.FillSchema(ds, SchemaType.Source, "myTable");
+ da.Fill(ds, "myTable");
+ ds.Tables["myTable"].Columns["dt"].DefaultValue = "Now()";
+
+ DataRow row = ds.Tables["myTable"].NewRow();
+ row["id"] = 1;
+ ds.Tables["myTable"].Rows.Add(row);
+ }
+
+ [Test]
+ public void UsingDatesAsStrings()
+ {
+ MySqlCommand cmd = new MySqlCommand("INSERT INTO test (dt) VALUES (?dt)",
conn);
+ cmd.Parameters.Add("?dt", MySqlDbType.Date);
+ cmd.Parameters[0].Value = "2005-03-04";
+ cmd.ExecuteNonQuery();
+
+ MySqlDataAdapter da = new MySqlDataAdapter("SELECT * FROM test", conn);
+ DataTable dt = new DataTable();
+ da.Fill(dt);
+ Assert.AreEqual(1, dt.Rows.Count);
+ DateTime date = (DateTime)dt.Rows[0]["dt"];
+ Assert.AreEqual(2005, date.Year);
+ Assert.AreEqual(3, date.Month);
+ Assert.AreEqual(4, date.Day);
+ }
+
}
}




