Skip to content

Commit b016c05

Browse files
Additional unittests (GTest) for trantor::Date to check fromDbStringL… (#281)
1 parent a9dc497 commit b016c05

File tree

1 file changed

+71
-0
lines changed

1 file changed

+71
-0
lines changed

trantor/unittests/DateUnittest.cc

Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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
}
39110
int main(int argc, char **argv)
40111
{

0 commit comments

Comments
 (0)