Commit 65beaeb2e926d7fb363ecfba006315437813fc8b
1 parent
acbce8e3
test that fails
Showing
1 changed file
with
30 additions
and
0 deletions
test/options.cpp
| ... | ... | @@ -219,6 +219,36 @@ TEST_CASE("Empty with implicit value", "[implicit]") |
| 219 | 219 | REQUIRE(result["implicit"].as<std::string>() == ""); |
| 220 | 220 | } |
| 221 | 221 | |
| 222 | +TEST_CASE("Default values", "[default]") | |
| 223 | +{ | |
| 224 | + cxxopts::Options options("defaults", "has defaults"); | |
| 225 | + options.add_options() | |
| 226 | + ("default", "Has implicit", cxxopts::value<int>() | |
| 227 | + ->default_value("42")); | |
| 228 | + | |
| 229 | + SECTION("Sets defaults") { | |
| 230 | + Argv av({"implicit"}); | |
| 231 | + | |
| 232 | + char** argv = av.argv(); | |
| 233 | + auto argc = av.argc(); | |
| 234 | + | |
| 235 | + auto result = options.parse(argc, argv); | |
| 236 | + CHECK(result.count("default") == 1); | |
| 237 | + CHECK(result["default"].as<int>() == 42); | |
| 238 | + } | |
| 239 | + | |
| 240 | + SECTION("When values provided") { | |
| 241 | + Argv av({"implicit", "default", "5"}); | |
| 242 | + | |
| 243 | + char** argv = av.argv(); | |
| 244 | + auto argc = av.argc(); | |
| 245 | + | |
| 246 | + auto result = options.parse(argc, argv); | |
| 247 | + CHECK(result.count("default") == 1); | |
| 248 | + CHECK(result["default"].as<int>() == 5); | |
| 249 | + } | |
| 250 | +} | |
| 251 | + | |
| 222 | 252 | TEST_CASE("Parse into a reference", "[reference]") |
| 223 | 253 | { |
| 224 | 254 | int value = 0; | ... | ... |