Index: src/libchcore/Tests/TestsTFileTime.cpp =================================================================== diff -u -N -rc1f7af79a52133c6d4b14944c3370288be7f5af5 -r776c47d61a5a67d5e2541d58013e221c685460ec --- src/libchcore/Tests/TestsTFileTime.cpp (.../TestsTFileTime.cpp) (revision c1f7af79a52133c6d4b14944c3370288be7f5af5) +++ src/libchcore/Tests/TestsTFileTime.cpp (.../TestsTFileTime.cpp) (revision 776c47d61a5a67d5e2541d58013e221c685460ec) @@ -12,3 +12,65 @@ EXPECT_EQ(0, fTime.GetAsFiletime().dwLowDateTime); EXPECT_EQ(0, fTime.GetAsFiletime().dwHighDateTime); } + +TEST(TestsTFileTime, ConstructionFromFILETIME) +{ + FILETIME filetime = { 0x00000034, 0x00000045 }; + + TFileTime fTime(filetime); + EXPECT_EQ(0x0000004500000034, fTime.ToUInt64()); + EXPECT_EQ(0x00000034, fTime.GetAsFiletime().dwLowDateTime); + EXPECT_EQ(0x00000045, fTime.GetAsFiletime().dwHighDateTime); +} + +TEST(TestsTFileTime, AssignmentOperator) +{ + FILETIME filetime1 = { 0x00000034, 0x00000045 }; + FILETIME filetime2 = { 0x00000074, 0x00000085 }; + + TFileTime fTime(filetime1); + fTime = filetime2; + EXPECT_EQ(0x0000008500000074, fTime.ToUInt64()); + EXPECT_EQ(0x00000074, fTime.GetAsFiletime().dwLowDateTime); + EXPECT_EQ(0x00000085, fTime.GetAsFiletime().dwHighDateTime); +} + +TEST(TestsTFileTime, CompareOperator_Default) +{ + TFileTime fTime1; + TFileTime fTime2; + EXPECT_TRUE(fTime1 == fTime2); + EXPECT_FALSE(fTime1 != fTime2); +} + +TEST(TestsTFileTime, CompareOperator_Same) +{ + FILETIME filetime = { 0x00000074, 0x00000085 }; + + TFileTime fTime1(filetime); + TFileTime fTime2(filetime); + EXPECT_TRUE(fTime1 == fTime2); + EXPECT_FALSE(fTime1 != fTime2); +} + +TEST(TestsTFileTime, CompareOperator_Different) +{ + FILETIME filetime1 = { 0x00000034, 0x00000045 }; + FILETIME filetime2 = { 0x00000074, 0x00000085 }; + + TFileTime fTime1(filetime1); + TFileTime fTime2(filetime2); + EXPECT_FALSE(fTime1 == fTime2); + EXPECT_TRUE(fTime1 != fTime2); +} + +TEST(TestsTFileTime, FromToUint64) +{ + FILETIME filetime = { 0x00000034, 0x00000045 }; + unsigned long long ullFiletime = 0x0000004500000034; + + TFileTime fTime; + fTime.FromUInt64(ullFiletime); + EXPECT_EQ(fTime.GetAsFiletime().dwLowDateTime, filetime.dwLowDateTime); + EXPECT_EQ(fTime.GetAsFiletime().dwLowDateTime, filetime.dwLowDateTime); +}