|
|
@@ -152,7 +152,7 @@ TEST(LongOptionRepeatTest, RepeatingArgumentsAppends) {
|
|
|
struct LongOptionRepeatWithDefaultTest
|
|
|
: program::Arguments<LongOptionRepeatWithDefaultTest> {
|
|
|
using Arguments::Arguments;
|
|
|
-
|
|
|
+
|
|
|
std::vector<int> port = option("port") = 8080;
|
|
|
std::vector<int> default_ports = option("default_ports") = {80, 443};
|
|
|
};
|
|
|
@@ -187,7 +187,8 @@ TEST(DeferOptionTest, CapturesUpdateToDependent) {
|
|
|
}
|
|
|
|
|
|
TEST(DeferOptionTest, SettingActualArgWillOverwrite) {
|
|
|
- auto const options = parse<DeferOptionTest>({"", "--path", "/var/log", "--log", "test.log"});
|
|
|
+ auto const options =
|
|
|
+ parse<DeferOptionTest>({"", "--path", "/var/log", "--log", "test.log"});
|
|
|
EXPECT_THAT(options.log.string(), "test.log");
|
|
|
}
|
|
|
|
|
|
@@ -197,10 +198,35 @@ struct ShortOptionTest : program::Arguments<ShortOptionTest> {
|
|
|
};
|
|
|
|
|
|
TEST(ShortOptionTest, DoesNotAllowDoubleDash) {
|
|
|
- EXPECT_THROW(parse<ShortOptionTest>({"", "--n", "5"}), program::NotAnArgumentError);
|
|
|
+ EXPECT_THROW(parse<ShortOptionTest>({"", "--n", "5"}),
|
|
|
+ program::NotAnArgumentError);
|
|
|
}
|
|
|
|
|
|
TEST(ShortOptionTest, CanConstructWithOnlyAbbrev) {
|
|
|
auto const options = parse<ShortOptionTest>({"", "-n", "5"});
|
|
|
EXPECT_THAT(options.arg, 5);
|
|
|
}
|
|
|
+
|
|
|
+struct GeneratedDefaultTest : program::Arguments<GeneratedDefaultTest> {
|
|
|
+ using Arguments::Arguments;
|
|
|
+ std::string pwd = option('C');
|
|
|
+ std::string git_dir = option("git-dir") = PROGRAM_DEFER(pwd + "/.git");
|
|
|
+ int arg = option('n') = []() { return 7; };
|
|
|
+};
|
|
|
+
|
|
|
+TEST(GeneratedDefaultTest, DefaultCanComeFromFunction) {
|
|
|
+ auto const options = parse<GeneratedDefaultTest>({""});
|
|
|
+ EXPECT_THAT(options.arg, 7);
|
|
|
+}
|
|
|
+
|
|
|
+TEST(GeneratedDefaultTest, CanSetValue) {
|
|
|
+ auto const options = parse<GeneratedDefaultTest>({"", "-n", "5"});
|
|
|
+ EXPECT_THAT(options.arg, 5);
|
|
|
+}
|
|
|
+
|
|
|
+TEST(GeneratedDefaultTest, CanReferenceThis) {
|
|
|
+ auto const options =
|
|
|
+ parse<GeneratedDefaultTest>({"", "-C", "/opt/local/bin"});
|
|
|
+ EXPECT_THAT(options.pwd, "/opt/local/bin");
|
|
|
+ EXPECT_THAT(options.git_dir, "/opt/local/bin/.git");
|
|
|
+}
|