summaryrefslogtreecommitdiff
path: root/redfish-core/ut/time_utils_test.cpp
blob: 86174ba9bc9004b03204d948e2ad7fb521c90648 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
#include "utils/time_utils.hpp"

#include <gmock/gmock.h>

TEST(FromDurationTest, PositiveTests)
{
    using redfish::time_utils::fromDurationString;
    using std::chrono::milliseconds;
    EXPECT_EQ(fromDurationString("PT12S"), milliseconds(12000));
    EXPECT_EQ(fromDurationString("PT0.204S"), milliseconds(204));
    EXPECT_EQ(fromDurationString("PT0.2S"), milliseconds(200));
    EXPECT_EQ(fromDurationString("PT50M"), milliseconds(3000000));
    EXPECT_EQ(fromDurationString("PT23H"), milliseconds(82800000));
    EXPECT_EQ(fromDurationString("P51D"), milliseconds(4406400000));
    EXPECT_EQ(fromDurationString("PT2H40M10.1S"), milliseconds(9610100));
    EXPECT_EQ(fromDurationString("P20DT2H40M10.1S"), milliseconds(1737610100));
    EXPECT_EQ(fromDurationString(""), milliseconds(0));
}

TEST(FromDurationTest, NegativeTests)
{
    using redfish::time_utils::fromDurationString;
    EXPECT_EQ(fromDurationString("PTS"), std::nullopt);
    EXPECT_EQ(fromDurationString("P1T"), std::nullopt);
    EXPECT_EQ(fromDurationString("PT100M1000S100"), std::nullopt);
    EXPECT_EQ(fromDurationString("PDTHMS"), std::nullopt);
    EXPECT_EQ(fromDurationString("P99999999999999999DT"), std::nullopt);
    EXPECT_EQ(fromDurationString("PD222T222H222M222.222S"), std::nullopt);
    EXPECT_EQ(fromDurationString("PT99999H9999999999999999999999M99999999999S"),
              std::nullopt);
    EXPECT_EQ(fromDurationString("PT-9H"), std::nullopt);
}
TEST(ToDurationTest, PositiveTests)
{
    using redfish::time_utils::toDurationString;
    using std::chrono::milliseconds;
    EXPECT_EQ(toDurationString(milliseconds(12000)), "PT12.000S");
    EXPECT_EQ(toDurationString(milliseconds(204)), "PT0.204S");
    EXPECT_EQ(toDurationString(milliseconds(200)), "PT0.200S");
    EXPECT_EQ(toDurationString(milliseconds(3000000)), "PT50M");
    EXPECT_EQ(toDurationString(milliseconds(82800000)), "PT23H");
    EXPECT_EQ(toDurationString(milliseconds(4406400000)), "P51DT");
    EXPECT_EQ(toDurationString(milliseconds(9610100)), "PT2H40M10.100S");
    EXPECT_EQ(toDurationString(milliseconds(1737610100)), "P20DT2H40M10.100S");
}

TEST(ToDurationTest, NegativeTests)
{
    using redfish::time_utils::toDurationString;
    using std::chrono::milliseconds;
    EXPECT_EQ(toDurationString(milliseconds(-250)), "");
}