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 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 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 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 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 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 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 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 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 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