Squashed 'src/univalue/' changes from 07947ff2da..51d3ab34ba

51d3ab34ba Merge #10: Add pushKV(key, boolean) function (replaces #5)
129bad96d5 [tests] test pushKV for boolean values
b3c44c947f Pushing boolean value to univalue correctly

git-subtree-dir: src/univalue
git-subtree-split: 51d3ab34ba2857f0d03dc07250cb4a2b5e712e67
This commit is contained in:
MarcoFalke 2018-02-10 09:55:26 -05:00
parent 88411e98e5
commit a570098021
2 changed files with 17 additions and 1 deletions

View File

@ -130,6 +130,10 @@ public:
UniValue tmpVal(val_); UniValue tmpVal(val_);
return pushKV(key, tmpVal); return pushKV(key, tmpVal);
} }
bool pushKV(const std::string& key, bool val_) {
UniValue tmpVal((bool)val_);
return pushKV(key, tmpVal);
}
bool pushKV(const std::string& key, int val_) { bool pushKV(const std::string& key, int val_) {
UniValue tmpVal((int64_t)val_); UniValue tmpVal((int64_t)val_);
return pushKV(key, tmpVal); return pushKV(key, tmpVal);

View File

@ -261,6 +261,12 @@ BOOST_AUTO_TEST_CASE(univalue_object)
strKey = "temperature"; strKey = "temperature";
BOOST_CHECK(obj.pushKV(strKey, (double) 90.012)); BOOST_CHECK(obj.pushKV(strKey, (double) 90.012));
strKey = "moon";
BOOST_CHECK(obj.pushKV(strKey, true));
strKey = "spoon";
BOOST_CHECK(obj.pushKV(strKey, false));
UniValue obj2(UniValue::VOBJ); UniValue obj2(UniValue::VOBJ);
BOOST_CHECK(obj2.pushKV("cat1", 9000)); BOOST_CHECK(obj2.pushKV("cat1", 9000));
BOOST_CHECK(obj2.pushKV("cat2", 12345)); BOOST_CHECK(obj2.pushKV("cat2", 12345));
@ -268,7 +274,7 @@ BOOST_AUTO_TEST_CASE(univalue_object)
BOOST_CHECK(obj.pushKVs(obj2)); BOOST_CHECK(obj.pushKVs(obj2));
BOOST_CHECK_EQUAL(obj.empty(), false); BOOST_CHECK_EQUAL(obj.empty(), false);
BOOST_CHECK_EQUAL(obj.size(), 9); BOOST_CHECK_EQUAL(obj.size(), 11);
BOOST_CHECK_EQUAL(obj["age"].getValStr(), "100"); BOOST_CHECK_EQUAL(obj["age"].getValStr(), "100");
BOOST_CHECK_EQUAL(obj["first"].getValStr(), "John"); BOOST_CHECK_EQUAL(obj["first"].getValStr(), "John");
@ -277,6 +283,8 @@ BOOST_AUTO_TEST_CASE(univalue_object)
BOOST_CHECK_EQUAL(obj["time"].getValStr(), "3600"); BOOST_CHECK_EQUAL(obj["time"].getValStr(), "3600");
BOOST_CHECK_EQUAL(obj["calories"].getValStr(), "12"); BOOST_CHECK_EQUAL(obj["calories"].getValStr(), "12");
BOOST_CHECK_EQUAL(obj["temperature"].getValStr(), "90.012"); BOOST_CHECK_EQUAL(obj["temperature"].getValStr(), "90.012");
BOOST_CHECK_EQUAL(obj["moon"].getValStr(), "1");
BOOST_CHECK_EQUAL(obj["spoon"].getValStr(), "");
BOOST_CHECK_EQUAL(obj["cat1"].getValStr(), "9000"); BOOST_CHECK_EQUAL(obj["cat1"].getValStr(), "9000");
BOOST_CHECK_EQUAL(obj["cat2"].getValStr(), "12345"); BOOST_CHECK_EQUAL(obj["cat2"].getValStr(), "12345");
@ -289,6 +297,8 @@ BOOST_AUTO_TEST_CASE(univalue_object)
BOOST_CHECK(obj.exists("time")); BOOST_CHECK(obj.exists("time"));
BOOST_CHECK(obj.exists("calories")); BOOST_CHECK(obj.exists("calories"));
BOOST_CHECK(obj.exists("temperature")); BOOST_CHECK(obj.exists("temperature"));
BOOST_CHECK(obj.exists("moon"));
BOOST_CHECK(obj.exists("spoon"));
BOOST_CHECK(obj.exists("cat1")); BOOST_CHECK(obj.exists("cat1"));
BOOST_CHECK(obj.exists("cat2")); BOOST_CHECK(obj.exists("cat2"));
@ -302,6 +312,8 @@ BOOST_AUTO_TEST_CASE(univalue_object)
objTypes["time"] = UniValue::VNUM; objTypes["time"] = UniValue::VNUM;
objTypes["calories"] = UniValue::VNUM; objTypes["calories"] = UniValue::VNUM;
objTypes["temperature"] = UniValue::VNUM; objTypes["temperature"] = UniValue::VNUM;
objTypes["moon"] = UniValue::VBOOL;
objTypes["spoon"] = UniValue::VBOOL;
objTypes["cat1"] = UniValue::VNUM; objTypes["cat1"] = UniValue::VNUM;
objTypes["cat2"] = UniValue::VNUM; objTypes["cat2"] = UniValue::VNUM;
BOOST_CHECK(obj.checkObject(objTypes)); BOOST_CHECK(obj.checkObject(objTypes));