userver: /data/code/userver/libraries/protobuf/tests/datetime_test.cpp Source File
Loading...
Searching...
No Matches
datetime_test.cpp
1#include <gtest/gtest.h>
2
3#include <userver/protobuf/datetime.hpp>
4
5USERVER_NAMESPACE_BEGIN
6
7namespace protobuf::tests {
8
9TEST(DatetimeTest, IsValidDuration) {
10 EXPECT_TRUE(IsValidDuration(kMinDurationSeconds, kMinDurationNanos));
11 EXPECT_TRUE(IsValidDuration(kMaxDurationSeconds, kMaxDurationNanos));
12 EXPECT_TRUE(IsValidDuration(100, 123'456'789));
13 EXPECT_TRUE(IsValidDuration(-100, -123'456'789));
14 EXPECT_TRUE(IsValidDuration(1, 0));
15 EXPECT_TRUE(IsValidDuration(-1, 0));
16 EXPECT_TRUE(IsValidDuration(0, 1));
17 EXPECT_TRUE(IsValidDuration(0, -1));
18 EXPECT_TRUE(IsValidDuration(0, 0));
19
20 EXPECT_FALSE(IsValidDuration(kMinDurationSeconds - 1, 0));
21 EXPECT_FALSE(IsValidDuration(kMaxDurationSeconds + 1, 0));
22 EXPECT_FALSE(IsValidDuration(0, kMinDurationNanos - 1));
23 EXPECT_FALSE(IsValidDuration(0, kMaxDurationNanos + 1));
24 EXPECT_FALSE(IsValidDuration(1, -1));
25 EXPECT_FALSE(IsValidDuration(-1, 1));
26}
27
28TEST(DatetimeTest, IsValidTimestamp) {
29 EXPECT_TRUE(IsValidTimestamp(kMinTimestampSeconds, kMinTimestampNanos));
30 EXPECT_TRUE(IsValidTimestamp(kMaxTimestampSeconds, kMaxTimestampNanos));
31 EXPECT_TRUE(IsValidTimestamp(100, 123'456'789));
32 EXPECT_TRUE(IsValidTimestamp(1, 0));
33 EXPECT_TRUE(IsValidTimestamp(-1, 0));
34 EXPECT_TRUE(IsValidTimestamp(-1, 1));
35 EXPECT_TRUE(IsValidTimestamp(0, 1));
36 EXPECT_TRUE(IsValidTimestamp(0, 0));
37
38 EXPECT_FALSE(IsValidTimestamp(kMinTimestampSeconds - 1, 0));
39 EXPECT_FALSE(IsValidTimestamp(kMaxTimestampSeconds + 1, 0));
40 EXPECT_FALSE(IsValidTimestamp(0, kMinTimestampNanos - 1));
41 EXPECT_FALSE(IsValidTimestamp(0, kMaxTimestampNanos + 1));
42 EXPECT_FALSE(IsValidTimestamp(1, -1));
43 EXPECT_FALSE(IsValidTimestamp(0, -1));
44}
45
46} // namespace protobuf::tests
47
48USERVER_NAMESPACE_END