@@ -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