git / moonbite-core / src/test/ref_tests.cpp · raw
// Copyright (c) 2020 The Bitcoin Core developers// Distributed under the MIT software license, see the accompanying// file COPYING or http://www.opensource.org/licenses/mit-license.php.#include <util/ref.h>#include <boost/test/unit_test.hpp>BOOST_AUTO_TEST_SUITE(ref_tests)BOOST_AUTO_TEST_CASE(ref_test){ util::Ref ref; BOOST_CHECK(!ref.Has<int>()); BOOST_CHECK_THROW(ref.Get<int>(), NonFatalCheckError); int value = 5; ref.Set(value); BOOST_CHECK(ref.Has<int>()); BOOST_CHECK_EQUAL(ref.Get<int>(), 5); ++ref.Get<int>(); BOOST_CHECK_EQUAL(ref.Get<int>(), 6); BOOST_CHECK_EQUAL(value, 6); ++value; BOOST_CHECK_EQUAL(value, 7); BOOST_CHECK_EQUAL(ref.Get<int>(), 7); BOOST_CHECK(!ref.Has<bool>()); BOOST_CHECK_THROW(ref.Get<bool>(), NonFatalCheckError); ref.Clear(); BOOST_CHECK(!ref.Has<int>()); BOOST_CHECK_THROW(ref.Get<int>(), NonFatalCheckError);}BOOST_AUTO_TEST_SUITE_END()