@@ -27,14 +27,85 @@ TEST(Date, DatabaseStringTest)
2727{
2828 auto now = trantor::Date::now ();
2929 EXPECT_EQ (now, trantor::Date::fromDbStringLocal (now.toDbStringLocal ()));
30+ EXPECT_EQ (now, trantor::Date::fromDbString (now.toDbString ()));
3031 std::string dbString = " 2018-01-01 00:00:00.123" ;
3132 auto dbDate = trantor::Date::fromDbStringLocal (dbString);
3233 auto ms = (dbDate.microSecondsSinceEpoch () % 1000000 ) / 1000 ;
3334 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+
3471 dbString = " 2018-01-01 00:00:00" ;
3572 dbDate = trantor::Date::fromDbStringLocal (dbString);
3673 ms = (dbDate.microSecondsSinceEpoch () % 1000000 ) / 1000 ;
3774 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 );
38109}
39110int main (int argc, char **argv)
40111{
0 commit comments