| #include "argument.hpp" |
| |
| #include <string> |
| #include <vector> |
| |
| #include <gtest/gtest.h> |
| |
| namespace phosphor::certs |
| { |
| namespace |
| { |
| |
| TEST(ProcessArguments, OnSuccessClientType) |
| { |
| Arguments arguments; |
| std::vector<const char*> argv = {"binary", "--type", "client", |
| "--endpoint", "abc", "--path", |
| "def", "--unit", "ghi"}; |
| EXPECT_EQ(processArguments(argv.size(), argv.data(), arguments), 0); |
| EXPECT_EQ(arguments.typeStr, "client"); |
| EXPECT_EQ(arguments.endpoint, "abc"); |
| EXPECT_EQ(arguments.path, "def"); |
| EXPECT_EQ(arguments.unit, "ghi"); |
| } |
| |
| TEST(ProcessArguments, OnSuccessServerType) |
| { |
| Arguments arguments; |
| std::vector<const char*> argv = {"binary", "--type", "server", |
| "--endpoint", "abc", "--path", |
| "def", "--unit", "ghi"}; |
| EXPECT_EQ(processArguments(argv.size(), argv.data(), arguments), 0); |
| EXPECT_EQ(arguments.typeStr, "server"); |
| EXPECT_EQ(arguments.endpoint, "abc"); |
| EXPECT_EQ(arguments.path, "def"); |
| EXPECT_EQ(arguments.unit, "ghi"); |
| } |
| |
| TEST(ProcessArguments, OnSuccessAuthorityType) |
| { |
| Arguments arguments; |
| std::vector<const char*> argv = {"binary", "--type", "authority", |
| "--endpoint", "abc", "--path", |
| "def", "--unit", "ghi"}; |
| EXPECT_NO_THROW(processArguments(argv.size(), argv.data(), arguments)); |
| EXPECT_EQ(arguments.typeStr, "authority"); |
| EXPECT_EQ(arguments.endpoint, "abc"); |
| EXPECT_EQ(arguments.path, "def"); |
| EXPECT_EQ(arguments.unit, "ghi"); |
| } |
| |
| TEST(ProcessArguments, UnitIsOptional) |
| { |
| Arguments arguments; |
| std::vector<const char*> argv = {"binary", "--type", "client", "--endpoint", |
| "abc", "--path", "def"}; |
| EXPECT_EQ(processArguments(argv.size(), argv.data(), arguments), 0); |
| EXPECT_EQ(arguments.typeStr, "client"); |
| EXPECT_EQ(arguments.endpoint, "abc"); |
| EXPECT_EQ(arguments.path, "def"); |
| EXPECT_TRUE(arguments.unit.empty()); |
| } |
| |
| TEST(ProcessArguments, EmptyUnit) |
| { |
| Arguments arguments; |
| std::vector<const char*> argv = {"binary", "--type", "client", |
| "--endpoint", "abc", "--path", |
| "def", "--unit", ""}; |
| EXPECT_EQ(processArguments(argv.size(), argv.data(), arguments), 0); |
| EXPECT_EQ(arguments.typeStr, "client"); |
| EXPECT_EQ(arguments.endpoint, "abc"); |
| EXPECT_EQ(arguments.path, "def"); |
| EXPECT_TRUE(arguments.unit.empty()); |
| } |
| |
| TEST(Type, MissTypeThrows) |
| { |
| Arguments arguments; |
| std::vector<const char*> argv = {"binary", "--endpoint", "abc", "--path", |
| "def", "--unit", "ghi"}; |
| EXPECT_NE(processArguments(argv.size(), argv.data(), arguments), 0); |
| } |
| |
| TEST(Type, WrongTypeThrows) |
| { |
| Arguments arguments; |
| std::vector<const char*> argv = {"binary", "--type", "no-supported", |
| "--endpoint", "abc", "--path", |
| "def", "--unit", "ghi"}; |
| EXPECT_NE(processArguments(argv.size(), argv.data(), arguments), 0); |
| } |
| |
| TEST(Endpoint, MissEndpointThrows) |
| { |
| Arguments arguments; |
| std::vector<const char*> argv = {"binary", "--type", "client", "--path", |
| "def", "--unit", "ghi"}; |
| EXPECT_NE(processArguments(argv.size(), argv.data(), arguments), 0); |
| } |
| |
| TEST(Path, MissPathThrows) |
| { |
| Arguments arguments; |
| std::vector<const char*> argv = {"binary", "--type", "client", "--endpoint", |
| "abc", "--unit", "ghi"}; |
| EXPECT_NE(processArguments(argv.size(), argv.data(), arguments), 0); |
| } |
| } // namespace |
| |
| } // namespace phosphor::certs |