| 1234567891011121314151617181920212223242526272829303132333435363738 |
- //
- // argument_test.cpp
- // program_args-test
- //
- // Created by Sam Jaffe on 2/7/21.
- //
- #include "program_args/arguments.h"
- #include "xcode_gtest_helper.h"
- using testing::ElementsAre;
- using testing::Eq;
- template <typename T, size_t N> static T parse(char const * const (&argv)[N]) {
- return T(N, argv);
- }
- struct ArgumentTest : program::Arguments<ArgumentTest> {
- using program::Arguments<ArgumentTest>::Arguments;
- std::string arg0 = argument(0, "arg0");
- };
- TEST(ArgumentTest, ThrowsIfMissingArg) {
- EXPECT_THROW(parse<ArgumentTest>({""}), program::IllegalPositionError);
- }
- TEST(ArgumentTest, ProcessesArgument) {
- auto const options = parse<ArgumentTest>({"", "value"});
- EXPECT_THAT(options.arg0, Eq("value"));
- }
- TEST(ArgumentTest, HasNoIssueWithOverflowArg) {
- auto const options = parse<ArgumentTest>({"", "value", "extra"});
- EXPECT_THAT(options.arg0, Eq("value"));
- EXPECT_THAT(options.args(), ElementsAre("extra"));
- }
|