| 282 | }; |
| 283 | |
| 284 | void CheckValue(unsigned int flags, const char* arg, const Expect& expect) |
| 285 | { |
| 286 | TestArgsManager test; |
| 287 | test.SetupArgs({{"-value", flags}}); |
| 288 | const char* argv[] = {"ignored", arg}; |
| 289 | std::string error; |
| 290 | bool success = test.ParseParameters(arg ? 2 : 1, (char**)argv, error); |
| 291 | |
| 292 | BOOST_CHECK_EQUAL(test.GetSetting("-value").write(), expect.setting.write()); |
| 293 | auto settings_list = test.GetSettingsList("-value"); |
| 294 | if (expect.setting.isNull() || expect.setting.isFalse()) { |
| 295 | BOOST_CHECK_EQUAL(settings_list.size(), 0U); |
| 296 | } else { |
| 297 | BOOST_CHECK_EQUAL(settings_list.size(), 1U); |
| 298 | BOOST_CHECK_EQUAL(settings_list[0].write(), expect.setting.write()); |
| 299 | } |
| 300 | |
| 301 | if (expect.error) { |
| 302 | BOOST_CHECK(!success); |
| 303 | BOOST_CHECK_NE(error.find(expect.error), std::string::npos); |
| 304 | } else { |
| 305 | BOOST_CHECK(success); |
| 306 | BOOST_CHECK_EQUAL(error, ""); |
| 307 | } |
| 308 | |
| 309 | if (expect.default_string) { |
| 310 | BOOST_CHECK_EQUAL(test.GetArg("-value", "zzzzz"), "zzzzz"); |
| 311 | } else if (expect.string_value) { |
| 312 | BOOST_CHECK_EQUAL(test.GetArg("-value", "zzzzz"), expect.string_value); |
| 313 | } else { |
| 314 | BOOST_CHECK(!success); |
| 315 | } |
| 316 | |
| 317 | if (expect.default_int) { |
| 318 | BOOST_CHECK_EQUAL(test.GetIntArg("-value", 99999), 99999); |
| 319 | } else if (expect.int_value) { |
| 320 | BOOST_CHECK_EQUAL(test.GetIntArg("-value", 99999), *expect.int_value); |
| 321 | } else { |
| 322 | BOOST_CHECK(!success); |
| 323 | } |
| 324 | |
| 325 | if (expect.default_bool) { |
| 326 | BOOST_CHECK_EQUAL(test.GetBoolArg("-value", false), false); |
| 327 | BOOST_CHECK_EQUAL(test.GetBoolArg("-value", true), true); |
| 328 | } else if (expect.bool_value) { |
| 329 | BOOST_CHECK_EQUAL(test.GetBoolArg("-value", false), *expect.bool_value); |
| 330 | BOOST_CHECK_EQUAL(test.GetBoolArg("-value", true), *expect.bool_value); |
| 331 | } else { |
| 332 | BOOST_CHECK(!success); |
| 333 | } |
| 334 | |
| 335 | if (expect.list_value) { |
| 336 | auto l = test.GetArgs("-value"); |
| 337 | BOOST_CHECK_EQUAL_COLLECTIONS(l.begin(), l.end(), expect.list_value->begin(), expect.list_value->end()); |
| 338 | } else { |
| 339 | BOOST_CHECK(!success); |
| 340 | } |
| 341 | } |
nothing calls this directly
no test coverage detected