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,6 +219,36 @@ TEST_CASE("Empty with implicit value", "[implicit]") | ||
| 219 | REQUIRE(result["implicit"].as<std::string>() == ""); | 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 | TEST_CASE("Parse into a reference", "[reference]") | 252 | TEST_CASE("Parse into a reference", "[reference]") |
| 223 | { | 253 | { |
| 224 | int value = 0; | 254 | int value = 0; |