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)), "");
}
|