|
17 | 17 |
|
18 | 18 | #include <boost/test/unit_test.hpp>
|
19 | 19 |
|
20 |
| -extern std::map<std::string, std::string> mapArgs; |
21 |
| - |
22 | 20 | BOOST_FIXTURE_TEST_SUITE(util_tests, BasicTestingSetup)
|
23 | 21 |
|
24 | 22 | BOOST_AUTO_TEST_CASE(util_criticalsection)
|
@@ -100,52 +98,67 @@ BOOST_AUTO_TEST_CASE(util_DateTimeStrFormat)
|
100 | 98 | BOOST_CHECK_EQUAL(DateTimeStrFormat("%a, %d %b %Y %H:%M:%S +0000", 1317425777), "Fri, 30 Sep 2011 23:36:17 +0000");
|
101 | 99 | }
|
102 | 100 |
|
| 101 | +class TestArgsManager : public ArgsManager |
| 102 | +{ |
| 103 | +public: |
| 104 | + std::map<std::string, std::string>& GetMapArgs() |
| 105 | + { |
| 106 | + return mapArgs; |
| 107 | + }; |
| 108 | + const std::map<std::string, std::vector<std::string> >& GetMapMultiArgs() |
| 109 | + { |
| 110 | + return mapMultiArgs; |
| 111 | + }; |
| 112 | +}; |
| 113 | + |
103 | 114 | BOOST_AUTO_TEST_CASE(util_ParseParameters)
|
104 | 115 | {
|
| 116 | + TestArgsManager testArgs; |
105 | 117 | const char *argv_test[] = {"-ignored", "-a", "-b", "-ccc=argument", "-ccc=multiple", "f", "-d=e"};
|
106 | 118 |
|
107 |
| - ParseParameters(0, (char**)argv_test); |
108 |
| - BOOST_CHECK(mapArgs.empty() && mapMultiArgs.empty()); |
| 119 | + testArgs.ParseParameters(0, (char**)argv_test); |
| 120 | + BOOST_CHECK(testArgs.GetMapArgs().empty() && testArgs.GetMapMultiArgs().empty()); |
109 | 121 |
|
110 |
| - ParseParameters(1, (char**)argv_test); |
111 |
| - BOOST_CHECK(mapArgs.empty() && mapMultiArgs.empty()); |
| 122 | + testArgs.ParseParameters(1, (char**)argv_test); |
| 123 | + BOOST_CHECK(testArgs.GetMapArgs().empty() && testArgs.GetMapMultiArgs().empty()); |
112 | 124 |
|
113 |
| - ParseParameters(5, (char**)argv_test); |
| 125 | + testArgs.ParseParameters(5, (char**)argv_test); |
114 | 126 | // expectation: -ignored is ignored (program name argument),
|
115 | 127 | // -a, -b and -ccc end up in map, -d ignored because it is after
|
116 | 128 | // a non-option argument (non-GNU option parsing)
|
117 |
| - BOOST_CHECK(mapArgs.size() == 3 && mapMultiArgs.size() == 3); |
118 |
| - BOOST_CHECK(IsArgSet("-a") && IsArgSet("-b") && IsArgSet("-ccc") |
119 |
| - && !IsArgSet("f") && !IsArgSet("-d")); |
120 |
| - BOOST_CHECK(mapMultiArgs.count("-a") && mapMultiArgs.count("-b") && mapMultiArgs.count("-ccc") |
121 |
| - && !mapMultiArgs.count("f") && !mapMultiArgs.count("-d")); |
122 |
| - |
123 |
| - BOOST_CHECK(mapArgs["-a"] == "" && mapArgs["-ccc"] == "multiple"); |
124 |
| - BOOST_CHECK(mapMultiArgs.at("-ccc").size() == 2); |
| 129 | + BOOST_CHECK(testArgs.GetMapArgs().size() == 3 && testArgs.GetMapMultiArgs().size() == 3); |
| 130 | + BOOST_CHECK(testArgs.IsArgSet("-a") && testArgs.IsArgSet("-b") && testArgs.IsArgSet("-ccc") |
| 131 | + && !testArgs.IsArgSet("f") && !testArgs.IsArgSet("-d")); |
| 132 | + BOOST_CHECK(testArgs.GetMapMultiArgs().count("-a") && testArgs.GetMapMultiArgs().count("-b") && testArgs.GetMapMultiArgs().count("-ccc") |
| 133 | + && !testArgs.GetMapMultiArgs().count("f") && !testArgs.GetMapMultiArgs().count("-d")); |
| 134 | + |
| 135 | + BOOST_CHECK(testArgs.GetMapArgs()["-a"] == "" && testArgs.GetMapArgs()["-ccc"] == "multiple"); |
| 136 | + BOOST_CHECK(testArgs.GetArgs("-ccc").size() == 2); |
125 | 137 | }
|
126 | 138 |
|
127 | 139 | BOOST_AUTO_TEST_CASE(util_GetArg)
|
128 | 140 | {
|
129 |
| - mapArgs.clear(); |
130 |
| - mapArgs["strtest1"] = "string..."; |
| 141 | + TestArgsManager testArgs; |
| 142 | + testArgs.GetMapArgs().clear(); |
| 143 | + testArgs.GetMapArgs()["strtest1"] = "string..."; |
131 | 144 | // strtest2 undefined on purpose
|
132 |
| - mapArgs["inttest1"] = "12345"; |
133 |
| - mapArgs["inttest2"] = "81985529216486895"; |
| 145 | + testArgs.GetMapArgs()["inttest1"] = "12345"; |
| 146 | + testArgs.GetMapArgs()["inttest2"] = "81985529216486895"; |
134 | 147 | // inttest3 undefined on purpose
|
135 |
| - mapArgs["booltest1"] = ""; |
| 148 | + testArgs.GetMapArgs()["booltest1"] = ""; |
136 | 149 | // booltest2 undefined on purpose
|
137 |
| - mapArgs["booltest3"] = "0"; |
138 |
| - mapArgs["booltest4"] = "1"; |
139 |
| - |
140 |
| - BOOST_CHECK_EQUAL(GetArg("strtest1", "default"), "string..."); |
141 |
| - BOOST_CHECK_EQUAL(GetArg("strtest2", "default"), "default"); |
142 |
| - BOOST_CHECK_EQUAL(GetArg("inttest1", -1), 12345); |
143 |
| - BOOST_CHECK_EQUAL(GetArg("inttest2", -1), 81985529216486895LL); |
144 |
| - BOOST_CHECK_EQUAL(GetArg("inttest3", -1), -1); |
145 |
| - BOOST_CHECK_EQUAL(GetBoolArg("booltest1", false), true); |
146 |
| - BOOST_CHECK_EQUAL(GetBoolArg("booltest2", false), false); |
147 |
| - BOOST_CHECK_EQUAL(GetBoolArg("booltest3", false), false); |
148 |
| - BOOST_CHECK_EQUAL(GetBoolArg("booltest4", false), true); |
| 150 | + testArgs.GetMapArgs()["booltest3"] = "0"; |
| 151 | + testArgs.GetMapArgs()["booltest4"] = "1"; |
| 152 | + |
| 153 | + BOOST_CHECK_EQUAL(testArgs.GetArg("strtest1", "default"), "string..."); |
| 154 | + BOOST_CHECK_EQUAL(testArgs.GetArg("strtest2", "default"), "default"); |
| 155 | + BOOST_CHECK_EQUAL(testArgs.GetArg("inttest1", -1), 12345); |
| 156 | + BOOST_CHECK_EQUAL(testArgs.GetArg("inttest2", -1), 81985529216486895LL); |
| 157 | + BOOST_CHECK_EQUAL(testArgs.GetArg("inttest3", -1), -1); |
| 158 | + BOOST_CHECK_EQUAL(testArgs.GetBoolArg("booltest1", false), true); |
| 159 | + BOOST_CHECK_EQUAL(testArgs.GetBoolArg("booltest2", false), false); |
| 160 | + BOOST_CHECK_EQUAL(testArgs.GetBoolArg("booltest3", false), false); |
| 161 | + BOOST_CHECK_EQUAL(testArgs.GetBoolArg("booltest4", false), true); |
149 | 162 | }
|
150 | 163 |
|
151 | 164 | BOOST_AUTO_TEST_CASE(util_FormatMoney)
|
|
0 commit comments