1 #include "argument.hpp"
2
3 #include <string>
4 #include <vector>
5
6 #include <gtest/gtest.h>
7
8 namespace phosphor::certs
9 {
10 namespace
11 {
12
TEST(ProcessArguments,OnSuccessClientType)13 TEST(ProcessArguments, OnSuccessClientType)
14 {
15 Arguments arguments;
16 std::vector<const char*> argv = {"binary", "--type", "client",
17 "--endpoint", "abc", "--path",
18 "def", "--unit", "ghi"};
19 EXPECT_EQ(processArguments(argv.size(), argv.data(), arguments), 0);
20 EXPECT_EQ(arguments.typeStr, "client");
21 EXPECT_EQ(arguments.endpoint, "abc");
22 EXPECT_EQ(arguments.path, "def");
23 EXPECT_EQ(arguments.unit, "ghi");
24 }
25
TEST(ProcessArguments,OnSuccessServerType)26 TEST(ProcessArguments, OnSuccessServerType)
27 {
28 Arguments arguments;
29 std::vector<const char*> argv = {"binary", "--type", "server",
30 "--endpoint", "abc", "--path",
31 "def", "--unit", "ghi"};
32 EXPECT_EQ(processArguments(argv.size(), argv.data(), arguments), 0);
33 EXPECT_EQ(arguments.typeStr, "server");
34 EXPECT_EQ(arguments.endpoint, "abc");
35 EXPECT_EQ(arguments.path, "def");
36 EXPECT_EQ(arguments.unit, "ghi");
37 }
38
TEST(ProcessArguments,OnSuccessAuthorityType)39 TEST(ProcessArguments, OnSuccessAuthorityType)
40 {
41 Arguments arguments;
42 std::vector<const char*> argv = {"binary", "--type", "authority",
43 "--endpoint", "abc", "--path",
44 "def", "--unit", "ghi"};
45 EXPECT_NO_THROW(processArguments(argv.size(), argv.data(), arguments));
46 EXPECT_EQ(arguments.typeStr, "authority");
47 EXPECT_EQ(arguments.endpoint, "abc");
48 EXPECT_EQ(arguments.path, "def");
49 EXPECT_EQ(arguments.unit, "ghi");
50 }
51
TEST(ProcessArguments,UnitIsOptional)52 TEST(ProcessArguments, UnitIsOptional)
53 {
54 Arguments arguments;
55 std::vector<const char*> argv = {"binary", "--type", "client", "--endpoint",
56 "abc", "--path", "def"};
57 EXPECT_EQ(processArguments(argv.size(), argv.data(), arguments), 0);
58 EXPECT_EQ(arguments.typeStr, "client");
59 EXPECT_EQ(arguments.endpoint, "abc");
60 EXPECT_EQ(arguments.path, "def");
61 EXPECT_TRUE(arguments.unit.empty());
62 }
63
TEST(ProcessArguments,EmptyUnit)64 TEST(ProcessArguments, EmptyUnit)
65 {
66 Arguments arguments;
67 std::vector<const char*> argv = {"binary", "--type", "client",
68 "--endpoint", "abc", "--path",
69 "def", "--unit", ""};
70 EXPECT_EQ(processArguments(argv.size(), argv.data(), arguments), 0);
71 EXPECT_EQ(arguments.typeStr, "client");
72 EXPECT_EQ(arguments.endpoint, "abc");
73 EXPECT_EQ(arguments.path, "def");
74 EXPECT_TRUE(arguments.unit.empty());
75 }
76
TEST(Type,MissTypeThrows)77 TEST(Type, MissTypeThrows)
78 {
79 Arguments arguments;
80 std::vector<const char*> argv = {"binary", "--endpoint", "abc", "--path",
81 "def", "--unit", "ghi"};
82 EXPECT_NE(processArguments(argv.size(), argv.data(), arguments), 0);
83 }
84
TEST(Type,WrongTypeThrows)85 TEST(Type, WrongTypeThrows)
86 {
87 Arguments arguments;
88 std::vector<const char*> argv = {"binary", "--type", "no-supported",
89 "--endpoint", "abc", "--path",
90 "def", "--unit", "ghi"};
91 EXPECT_NE(processArguments(argv.size(), argv.data(), arguments), 0);
92 }
93
TEST(Endpoint,MissEndpointThrows)94 TEST(Endpoint, MissEndpointThrows)
95 {
96 Arguments arguments;
97 std::vector<const char*> argv = {"binary", "--type", "client", "--path",
98 "def", "--unit", "ghi"};
99 EXPECT_NE(processArguments(argv.size(), argv.data(), arguments), 0);
100 }
101
TEST(Path,MissPathThrows)102 TEST(Path, MissPathThrows)
103 {
104 Arguments arguments;
105 std::vector<const char*> argv = {"binary", "--type", "client", "--endpoint",
106 "abc", "--unit", "ghi"};
107 EXPECT_NE(processArguments(argv.size(), argv.data(), arguments), 0);
108 }
109 } // namespace
110
111 } // namespace phosphor::certs
112