Commit 65beaeb2e926d7fb363ecfba006315437813fc8b

Authored by Jarryd Beck
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;
... ...