MCPcopy Create free account
hub / github.com/ElementsProject/elements / BOOST_AUTO_TEST_CASE

Function BOOST_AUTO_TEST_CASE

src/test/getarg_tests.cpp:53–154  ·  view source on GitHub ↗

Test behavior of GetArg functions when string, integer, and boolean types are specified in the settings.json file. GetArg functions are convenience functions. The GetSetting method can always be used instead of GetArg methods to retrieve original values, and there's not always an objective answer to what GetArg behavior is best in every case. This test makes sure there's test coverage for whatever

Source from the content-addressed store, hash-verified

51// there's test coverage for whatever the current behavior is, so it's not
52// broken or changed unintentionally.
53BOOST_AUTO_TEST_CASE(setting_args)
54{
55 ArgsManager args;
56 SetupArgs(args, {{"-foo", ArgsManager::ALLOW_ANY}});
57
58 auto set_foo = [&](const util::SettingsValue& value) {
59 args.LockSettings([&](util::Settings& settings) {
60 settings.rw_settings["foo"] = value;
61 });
62 };
63
64 set_foo("str");
65 BOOST_CHECK_EQUAL(args.GetSetting("foo").write(), "\"str\"");
66 BOOST_CHECK_EQUAL(args.GetArg("foo", "default"), "str");
67 BOOST_CHECK_EQUAL(args.GetIntArg("foo", 100), 0);
68 BOOST_CHECK_EQUAL(args.GetBoolArg("foo", true), false);
69 BOOST_CHECK_EQUAL(args.GetBoolArg("foo", false), false);
70
71 set_foo("99");
72 BOOST_CHECK_EQUAL(args.GetSetting("foo").write(), "\"99\"");
73 BOOST_CHECK_EQUAL(args.GetArg("foo", "default"), "99");
74 BOOST_CHECK_EQUAL(args.GetIntArg("foo", 100), 99);
75 BOOST_CHECK_EQUAL(args.GetBoolArg("foo", true), true);
76 BOOST_CHECK_EQUAL(args.GetBoolArg("foo", false), true);
77
78 set_foo("3.25");
79 BOOST_CHECK_EQUAL(args.GetSetting("foo").write(), "\"3.25\"");
80 BOOST_CHECK_EQUAL(args.GetArg("foo", "default"), "3.25");
81 BOOST_CHECK_EQUAL(args.GetIntArg("foo", 100), 3);
82 BOOST_CHECK_EQUAL(args.GetBoolArg("foo", true), true);
83 BOOST_CHECK_EQUAL(args.GetBoolArg("foo", false), true);
84
85 set_foo("0");
86 BOOST_CHECK_EQUAL(args.GetSetting("foo").write(), "\"0\"");
87 BOOST_CHECK_EQUAL(args.GetArg("foo", "default"), "0");
88 BOOST_CHECK_EQUAL(args.GetIntArg("foo", 100), 0);
89 BOOST_CHECK_EQUAL(args.GetBoolArg("foo", true), false);
90 BOOST_CHECK_EQUAL(args.GetBoolArg("foo", false), false);
91
92 set_foo("");
93 BOOST_CHECK_EQUAL(args.GetSetting("foo").write(), "\"\"");
94 BOOST_CHECK_EQUAL(args.GetArg("foo", "default"), "");
95 BOOST_CHECK_EQUAL(args.GetIntArg("foo", 100), 0);
96 BOOST_CHECK_EQUAL(args.GetBoolArg("foo", true), true);
97 BOOST_CHECK_EQUAL(args.GetBoolArg("foo", false), true);
98
99 set_foo(99);
100 BOOST_CHECK_EQUAL(args.GetSetting("foo").write(), "99");
101 BOOST_CHECK_EQUAL(args.GetArg("foo", "default"), "99");
102 BOOST_CHECK_EQUAL(args.GetIntArg("foo", 100), 99);
103 BOOST_CHECK_THROW(args.GetBoolArg("foo", true), std::runtime_error);
104 BOOST_CHECK_THROW(args.GetBoolArg("foo", false), std::runtime_error);
105
106 set_foo(3.25);
107 BOOST_CHECK_EQUAL(args.GetSetting("foo").write(), "3.25");
108 BOOST_CHECK_EQUAL(args.GetArg("foo", "default"), "3.25");
109 BOOST_CHECK_THROW(args.GetIntArg("foo", 100), std::runtime_error);
110 BOOST_CHECK_THROW(args.GetBoolArg("foo", true), std::runtime_error);

Callers

nothing calls this directly

Calls 13

SetupArgsFunction · 0.85
ResetArgsFunction · 0.85
LockSettingsMethod · 0.80
GetSettingMethod · 0.80
GetArgMethod · 0.80
GetIntArgMethod · 0.80
GetBoolArgMethod · 0.80
GetPathArgMethod · 0.80
PushBackCallbackMethod · 0.80
LogArgsMethod · 0.80
DeleteCallbackMethod · 0.80
findMethod · 0.80

Tested by

no test coverage detected