Changeset View
Changeset View
Standalone View
Standalone View
src/univalue/test/object.cpp
// Copyright (c) 2014 BitPay Inc. | // Copyright (c) 2014 BitPay Inc. | ||||
// Copyright (c) 2014-2016 The Bitcoin Core developers | // Copyright (c) 2014-2016 The Bitcoin Core developers | ||||
// Distributed under the MIT software license, see the accompanying | // Distributed under the MIT software license, see the accompanying | ||||
// file COPYING or http://www.opensource.org/licenses/mit-license.php. | // file COPYING or https://opensource.org/licenses/mit-license.php. | ||||
#include <stdint.h> | #include <stdint.h> | ||||
#include <vector> | #include <vector> | ||||
#include <string> | #include <string> | ||||
#include <map> | #include <map> | ||||
#include <cassert> | #include <cassert> | ||||
#include <stdexcept> | #include <stdexcept> | ||||
#include <univalue.h> | #include <univalue.h> | ||||
▲ Show 20 Lines • Show All 242 Lines • ▼ Show 20 Lines | BOOST_AUTO_TEST_CASE(univalue_object) | ||||
BOOST_CHECK(obj.pushKV(strKey, (uint64_t) 3600)); | BOOST_CHECK(obj.pushKV(strKey, (uint64_t) 3600)); | ||||
strKey = "calories"; | strKey = "calories"; | ||||
BOOST_CHECK(obj.pushKV(strKey, (int) 12)); | BOOST_CHECK(obj.pushKV(strKey, (int) 12)); | ||||
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)); | ||||
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"); | ||||
BOOST_CHECK_EQUAL(obj["last"].getValStr(), "Smith"); | BOOST_CHECK_EQUAL(obj["last"].getValStr(), "Smith"); | ||||
BOOST_CHECK_EQUAL(obj["distance"].getValStr(), "25"); | BOOST_CHECK_EQUAL(obj["distance"].getValStr(), "25"); | ||||
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"); | ||||
BOOST_CHECK_EQUAL(obj["nyuknyuknyuk"].getValStr(), ""); | BOOST_CHECK_EQUAL(obj["nyuknyuknyuk"].getValStr(), ""); | ||||
BOOST_CHECK(obj.exists("age")); | BOOST_CHECK(obj.exists("age")); | ||||
BOOST_CHECK(obj.exists("first")); | BOOST_CHECK(obj.exists("first")); | ||||
BOOST_CHECK(obj.exists("last")); | BOOST_CHECK(obj.exists("last")); | ||||
BOOST_CHECK(obj.exists("distance")); | BOOST_CHECK(obj.exists("distance")); | ||||
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")); | ||||
BOOST_CHECK(!obj.exists("nyuknyuknyuk")); | BOOST_CHECK(!obj.exists("nyuknyuknyuk")); | ||||
std::map<std::string, UniValue::VType> objTypes; | std::map<std::string, UniValue::VType> objTypes; | ||||
objTypes["age"] = UniValue::VNUM; | objTypes["age"] = UniValue::VNUM; | ||||
objTypes["first"] = UniValue::VSTR; | objTypes["first"] = UniValue::VSTR; | ||||
objTypes["last"] = UniValue::VSTR; | objTypes["last"] = UniValue::VSTR; | ||||
objTypes["distance"] = UniValue::VNUM; | objTypes["distance"] = UniValue::VNUM; | ||||
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)); | ||||
objTypes["cat2"] = UniValue::VSTR; | objTypes["cat2"] = UniValue::VSTR; | ||||
BOOST_CHECK(!obj.checkObject(objTypes)); | BOOST_CHECK(!obj.checkObject(objTypes)); | ||||
obj.clear(); | obj.clear(); | ||||
▲ Show 20 Lines • Show All 84 Lines • Show Last 20 Lines |