Skip to content

Commit d29894e

Browse files
committed
Assert that DateTimes are actually stored in the DB as requested.
1 parent 730baa3 commit d29894e

File tree

1 file changed

+25
-11
lines changed

1 file changed

+25
-11
lines changed

tests/DateTimeTest.cs

Lines changed: 25 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@ namespace SQLite.Tests
1515
[TestFixture]
1616
public class DateTimeTest
1717
{
18+
const string DefaultSQLiteDateTimeString = "yyyy'-'MM'-'dd'T'HH':'mm':'ss'.'fff";
19+
1820
class TestObj
1921
{
2022
[PrimaryKey, AutoIncrement]
@@ -28,50 +30,56 @@ class TestObj
2830
[Test]
2931
public void AsTicks ()
3032
{
33+
var dateTime = new DateTime (2012, 1, 14, 3, 2, 1, 234);
3134
var db = new TestDb (storeDateTimeAsTicks: true);
32-
TestDateTime (db);
35+
TestDateTime (db, dateTime, dateTime.Ticks.ToString ());
3336
}
3437

3538
[Test]
3639
public void AsStrings ()
3740
{
41+
var dateTime = new DateTime (2012, 1, 14, 3, 2, 1, 234);
3842
var db = new TestDb (storeDateTimeAsTicks: false);
39-
TestDateTime (db);
43+
TestDateTime (db, dateTime, dateTime.ToString (DefaultSQLiteDateTimeString));
4044
}
4145

4246
[TestCase ("o")]
4347
[TestCase ("MMM'-'dd'-'yyyy' 'HH':'mm':'ss'.'fffffff")]
4448
public void AsCustomStrings (string format)
4549
{
50+
var dateTime = new DateTime (2012, 1, 14, 3, 2, 1, 234);
4651
var db = new TestDb (CustomDateTimeString (format));
47-
TestDateTime (db);
52+
TestDateTime (db, dateTime, dateTime.ToString (format));
4853
}
4954

5055
[Test]
5156
public void AsyncAsTicks ()
5257
{
58+
var dateTime = new DateTime (2012, 1, 14, 3, 2, 1, 234);
5359
var db = new SQLiteAsyncConnection (TestPath.GetTempFileName (), true);
54-
TestAsyncDateTime (db);
60+
TestAsyncDateTime (db, dateTime, dateTime.Ticks.ToString ());
5561
}
5662

5763
[Test]
5864
public void AsyncAsString ()
5965
{
66+
var dateTime = new DateTime (2012, 1, 14, 3, 2, 1, 234);
6067
var db = new SQLiteAsyncConnection (TestPath.GetTempFileName (), false);
61-
TestAsyncDateTime (db);
68+
TestAsyncDateTime (db, dateTime, dateTime.ToString (DefaultSQLiteDateTimeString));
6269
}
6370

6471
[TestCase ("o")]
6572
[TestCase ("MMM'-'dd'-'yyyy' 'HH':'mm':'ss'.'fffffff")]
6673
public void AsyncAsCustomStrings (string format)
6774
{
75+
var dateTime = new DateTime (2012, 1, 14, 3, 2, 1, 234);
6876
var db = new SQLiteAsyncConnection (CustomDateTimeString (format));
69-
TestAsyncDateTime (db);
77+
TestAsyncDateTime (db, dateTime, dateTime.ToString (format));
7078
}
7179

72-
SQLiteConnectionString CustomDateTimeString (string dateTimeFormat) => new SQLiteConnectionString (TestPath.GetTempFileName (), false, dateTimeFormat);
80+
SQLiteConnectionString CustomDateTimeString (string dateTimeFormat) => new SQLiteConnectionString (TestPath.GetTempFileName (), SQLiteOpenFlags.Create | SQLiteOpenFlags.ReadWrite, false, dateTimeStringFormat: dateTimeFormat);
7381

74-
void TestAsyncDateTime (SQLiteAsyncConnection db)
82+
void TestAsyncDateTime (SQLiteAsyncConnection db, DateTime dateTime, string expected)
7583
{
7684
db.CreateTableAsync<TestObj> ().Wait ();
7785

@@ -81,14 +89,17 @@ void TestAsyncDateTime (SQLiteAsyncConnection db)
8189
// Ticks
8290
//
8391
o = new TestObj {
84-
ModifiedTime = new DateTime (2012, 1, 14, 3, 2, 1, 234),
92+
ModifiedTime = dateTime,
8593
};
8694
db.InsertAsync (o).Wait ();
8795
o2 = db.GetAsync<TestObj> (o.Id).Result;
8896
Assert.AreEqual (o.ModifiedTime, o2.ModifiedTime);
97+
98+
var stored = db.ExecuteScalarAsync<string> ("SELECT ModifiedTime FROM TestObj;").Result;
99+
Assert.AreEqual (expected, stored);
89100
}
90101

91-
void TestDateTime (TestDb db)
102+
void TestDateTime (TestDb db, DateTime dateTime, string expected)
92103
{
93104
db.CreateTable<TestObj> ();
94105

@@ -98,11 +109,14 @@ void TestDateTime (TestDb db)
98109
// Ticks
99110
//
100111
o = new TestObj {
101-
ModifiedTime = new DateTime (2012, 1, 14, 3, 2, 1, 234),
112+
ModifiedTime = dateTime,
102113
};
103114
db.Insert (o);
104115
o2 = db.Get<TestObj> (o.Id);
105116
Assert.AreEqual (o.ModifiedTime, o2.ModifiedTime);
117+
118+
var stored = db.ExecuteScalar<string> ("SELECT ModifiedTime FROM TestObj;");
119+
Assert.AreEqual (expected, stored);
106120
}
107121

108122
class NullableDateObj

0 commit comments

Comments
 (0)