@@ -27,14 +27,85 @@ TEST(Date, DatabaseStringTest)
27
27
{
28
28
auto now = trantor::Date::now ();
29
29
EXPECT_EQ (now, trantor::Date::fromDbStringLocal (now.toDbStringLocal ()));
30
+ EXPECT_EQ (now, trantor::Date::fromDbString (now.toDbString ()));
30
31
std::string dbString = " 2018-01-01 00:00:00.123" ;
31
32
auto dbDate = trantor::Date::fromDbStringLocal (dbString);
32
33
auto ms = (dbDate.microSecondsSinceEpoch () % 1000000 ) / 1000 ;
33
34
EXPECT_EQ (ms, 123 );
35
+ EXPECT_EQ (dbDate,
36
+ trantor::Date::fromDbStringLocal (dbDate.toDbStringLocal ()));
37
+ EXPECT_EQ (dbDate, trantor::Date::fromDbString (dbDate.toDbString ()));
38
+ dbString = " 2018-01-01 00:00:00.023" ;
39
+ dbDate = trantor::Date::fromDbStringLocal (dbString);
40
+ ms = (dbDate.microSecondsSinceEpoch () % 1000000 ) / 1000 ;
41
+ EXPECT_EQ (ms, 23 );
42
+ EXPECT_EQ (dbDate,
43
+ trantor::Date::fromDbStringLocal (dbDate.toDbStringLocal ()));
44
+ EXPECT_EQ (dbDate, trantor::Date::fromDbString (dbDate.toDbString ()));
45
+ dbString = " 2018-01-01 00:00:00.003" ;
46
+ dbDate = trantor::Date::fromDbStringLocal (dbString);
47
+ ms = (dbDate.microSecondsSinceEpoch () % 1000000 ) / 1000 ;
48
+ EXPECT_EQ (ms, 3 );
49
+ EXPECT_EQ (dbDate,
50
+ trantor::Date::fromDbStringLocal (dbDate.toDbStringLocal ()));
51
+ EXPECT_EQ (dbDate, trantor::Date::fromDbString (dbDate.toDbString ()));
52
+ dbString = " 2018-01-01 00:00:00.000123" ;
53
+ dbDate = trantor::Date::fromDbStringLocal (dbString);
54
+ auto us = (dbDate.microSecondsSinceEpoch () % 1000000 );
55
+ EXPECT_EQ (us, 123 );
56
+ EXPECT_EQ (dbDate,
57
+ trantor::Date::fromDbStringLocal (dbDate.toDbStringLocal ()));
58
+ EXPECT_EQ (dbDate, trantor::Date::fromDbString (dbDate.toDbString ()));
59
+ dbString = " 2018-01-01 00:00:00.000023" ;
60
+ dbDate = trantor::Date::fromDbStringLocal (dbString);
61
+ us = (dbDate.microSecondsSinceEpoch () % 1000000 );
62
+ EXPECT_EQ (us, 23 );
63
+ EXPECT_EQ (dbDate,
64
+ trantor::Date::fromDbStringLocal (dbDate.toDbStringLocal ()));
65
+ EXPECT_EQ (dbDate, trantor::Date::fromDbString (dbDate.toDbString ()));
66
+ dbString = " 2018-01-01 00:00:00.000003" ;
67
+ dbDate = trantor::Date::fromDbStringLocal (dbString);
68
+ us = (dbDate.microSecondsSinceEpoch () % 1000000 );
69
+ EXPECT_EQ (us, 3 );
70
+
34
71
dbString = " 2018-01-01 00:00:00" ;
35
72
dbDate = trantor::Date::fromDbStringLocal (dbString);
36
73
ms = (dbDate.microSecondsSinceEpoch () % 1000000 ) / 1000 ;
37
74
EXPECT_EQ (ms, 0 );
75
+
76
+ dbString = " 2018-01-01 00:00:00" ;
77
+ dbDate = trantor::Date::fromDbStringLocal (dbString);
78
+ auto dbDateGMT = trantor::Date::fromDbString (dbString);
79
+ auto secLocal = (dbDate.microSecondsSinceEpoch () / 1000000 );
80
+ auto secGMT = (dbDateGMT.microSecondsSinceEpoch () / 1000000 );
81
+ // timeZone at least 1 minute (can be >=1 hour, 30 min, 15 min. Error if
82
+ // difference less then minute)
83
+ auto timeZoneOffsetMinutePart = (secLocal - secGMT) % 60 ;
84
+ EXPECT_EQ (timeZoneOffsetMinutePart, 0 );
85
+ dbString = " 2018-01-01 00:00:00.123" ;
86
+ dbDate = trantor::Date::fromDbString (dbString);
87
+ ms = (dbDate.microSecondsSinceEpoch () % 1000000 ) / 1000 ;
88
+ EXPECT_EQ (ms, 123 );
89
+ dbString = " 2018-01-01 00:00:00.023" ;
90
+ dbDate = trantor::Date::fromDbString (dbString);
91
+ ms = (dbDate.microSecondsSinceEpoch () % 1000000 ) / 1000 ;
92
+ EXPECT_EQ (ms, 23 );
93
+ dbString = " 2018-01-01 00:00:00.003" ;
94
+ dbDate = trantor::Date::fromDbString (dbString);
95
+ ms = (dbDate.microSecondsSinceEpoch () % 1000000 ) / 1000 ;
96
+ EXPECT_EQ (ms, 3 );
97
+ dbString = " 2018-01-01 00:00:00.000123" ;
98
+ dbDate = trantor::Date::fromDbString (dbString);
99
+ us = (dbDate.microSecondsSinceEpoch () % 1000000 );
100
+ EXPECT_EQ (us, 123 );
101
+ dbString = " 2018-01-01 00:00:00.000023" ;
102
+ dbDate = trantor::Date::fromDbString (dbString);
103
+ us = (dbDate.microSecondsSinceEpoch () % 1000000 );
104
+ EXPECT_EQ (us, 23 );
105
+ dbString = " 2018-01-01 00:00:00.000003" ;
106
+ dbDate = trantor::Date::fromDbString (dbString);
107
+ us = (dbDate.microSecondsSinceEpoch () % 1000000 );
108
+ EXPECT_EQ (us, 3 );
38
109
}
39
110
int main (int argc, char **argv)
40
111
{
0 commit comments