Aktualizr
C++ SOTA Client
types_test.cc
1 #include <gtest/gtest.h>
2 
3 #include "libaktualizr/types.h"
4 
5 TimeStamp now("2017-01-01T01:00:00Z");
6 
7 /* Parse Uptane timestamps. */
8 TEST(Types, TimeStampParsing) {
9  TimeStamp t_old("2038-01-19T02:00:00Z");
10  TimeStamp t_new("2038-01-19T03:14:06Z");
11 
12  TimeStamp t_invalid;
13 
14  EXPECT_LT(t_old, t_new);
15  EXPECT_GT(t_new, t_old);
16  EXPECT_FALSE(t_invalid < t_old);
17  EXPECT_FALSE(t_old < t_invalid);
18  EXPECT_FALSE(t_invalid < t_invalid);
19 }
20 
21 /* Throw an exception if an Uptane timestamp is invalid. */
22 TEST(Types, TimeStampParsingInvalid) { EXPECT_THROW(TimeStamp("2038-01-19T0"), TimeStamp::InvalidTimeStamp); }
23 
24 /* Get current time. */
25 TEST(Types, TimeStampNow) {
26  TimeStamp t_past("1982-12-13T02:00:00Z");
27  TimeStamp t_future("2038-01-19T03:14:06Z");
28  TimeStamp t_now(TimeStamp::Now());
29 
30  EXPECT_LT(t_past, t_now);
31  EXPECT_LT(t_now, t_future);
32 }
33 
34 TEST(Types, ResultCode) {
35  data::ResultCode ok_res{data::ResultCode::Numeric::kOk};
36  EXPECT_EQ(ok_res.num_code, data::ResultCode::Numeric::kOk);
37  EXPECT_EQ(ok_res.toString(), "OK");
38  std::string repr = ok_res.toRepr();
39  EXPECT_EQ(repr, "\"OK\":0");
40  EXPECT_EQ(data::ResultCode::fromRepr(repr), ok_res);
41 
42  // legacy format
43  EXPECT_EQ(data::ResultCode::fromRepr("OK:0"), ok_res);
44 
45  // !
46  EXPECT_NE(ok_res, data::ResultCode(data::ResultCode::Numeric::kOk, "OK2"));
48  EXPECT_EQ(data::ResultCode::fromRepr("OK"), data::ResultCode(data::ResultCode::Numeric::kUnknown, "OK"));
49 }
50 
51 #ifndef __NO_MAIN__
52 int main(int argc, char **argv) {
53  ::testing::InitGoogleTest(&argc, argv);
54  return RUN_ALL_TESTS();
55 }
56 #endif
data::ResultCode
Definition: types.h:219
data::ResultCode::Numeric::kGeneralError
@ kGeneralError
Other error.
types.h
TimeStamp::InvalidTimeStamp
Definition: types.h:204
TimeStamp
Definition: types.h:188