Skip to content

Commit

Permalink
Merge pull request dogecoin#50 from luke-jr/pushKV_bool
Browse files Browse the repository at this point in the history
Add pushKV(key, boolean) function
  • Loading branch information
jgarzik authored Mar 11, 2018
2 parents 81faab2 + 72392fb commit 1dc113d
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 1 deletion.
4 changes: 4 additions & 0 deletions include/univalue.h
Original file line number Diff line number Diff line change
Expand Up @@ -130,6 +130,10 @@ class UniValue {
UniValue tmpVal(val_);
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_) {
UniValue tmpVal((int64_t)val_);
return pushKV(key, tmpVal);
Expand Down
14 changes: 13 additions & 1 deletion test/object.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -260,14 +260,20 @@ BOOST_AUTO_TEST_CASE(univalue_object)
strKey = "temperature";
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);
BOOST_CHECK(obj2.pushKV("cat1", 9000));
BOOST_CHECK(obj2.pushKV("cat2", 12345));

BOOST_CHECK(obj.pushKVs(obj2));

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["first"].getValStr(), "John");
Expand All @@ -276,6 +282,8 @@ BOOST_AUTO_TEST_CASE(univalue_object)
BOOST_CHECK_EQUAL(obj["time"].getValStr(), "3600");
BOOST_CHECK_EQUAL(obj["calories"].getValStr(), "12");
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["cat2"].getValStr(), "12345");

Expand All @@ -288,6 +296,8 @@ BOOST_AUTO_TEST_CASE(univalue_object)
BOOST_CHECK(obj.exists("time"));
BOOST_CHECK(obj.exists("calories"));
BOOST_CHECK(obj.exists("temperature"));
BOOST_CHECK(obj.exists("moon"));
BOOST_CHECK(obj.exists("spoon"));
BOOST_CHECK(obj.exists("cat1"));
BOOST_CHECK(obj.exists("cat2"));

Expand All @@ -301,6 +311,8 @@ BOOST_AUTO_TEST_CASE(univalue_object)
objTypes["time"] = UniValue::VNUM;
objTypes["calories"] = UniValue::VNUM;
objTypes["temperature"] = UniValue::VNUM;
objTypes["moon"] = UniValue::VBOOL;
objTypes["spoon"] = UniValue::VBOOL;
objTypes["cat1"] = UniValue::VNUM;
objTypes["cat2"] = UniValue::VNUM;
BOOST_CHECK(obj.checkObject(objTypes));
Expand Down

0 comments on commit 1dc113d

Please sign in to comment.