mirror of
https://github.com/ElementsProject/elements.git
synced 2026-08-17 13:07:54 +02:00
46 lines
2.2 KiB
C++
46 lines
2.2 KiB
C++
// Copyright (c) 2017-2017 The Elements Core developers
|
|
// Distributed under the MIT software license, see the accompanying
|
|
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
|
|
|
#include "assetsdir.h"
|
|
#include "chainparams.h"
|
|
|
|
#include "test/test_bitcoin.h"
|
|
|
|
#include <boost/test/unit_test.hpp>
|
|
|
|
BOOST_FIXTURE_TEST_SUITE(assetsdir_tests, BasicTestingSetup)
|
|
|
|
BOOST_AUTO_TEST_CASE(assetsdirTests)
|
|
{
|
|
CAssetsDir tAssetsDir;
|
|
const std::string defaultPeggedLabel = "bitcoin";
|
|
const std::string defaultPeggedAssetHex = "09f663de96be771f50cab5ded00256ffe63773e2eaa9a604092951cc3d7c6621";
|
|
const CAsset defaultPeggedAsset = Params().GetConsensus().pegged_asset;
|
|
const std::string exampleAssetHex = "fa821b0be5e1387adbcb69dbb3ad33edb5e470831c7c938c4e7b344edbe8bb11";
|
|
const CAsset exampleAsset = CAsset(uint256S(exampleAssetHex));
|
|
const std::vector<std::string> protectedLabels = {"*", defaultPeggedLabel, "bitcoin", "Bitcoin", "btc"};
|
|
|
|
for (std:: string protectedLabel : protectedLabels) {
|
|
std::vector<std::string> assetsToInitProtected = {exampleAssetHex + ":" + protectedLabel};
|
|
BOOST_CHECK_THROW(tAssetsDir.InitFromStrings(assetsToInitProtected), std::runtime_error);
|
|
}
|
|
|
|
const std::vector<std::string> exAssetsToInit = {exampleAssetHex + ":other"};
|
|
tAssetsDir.InitFromStrings(exAssetsToInit);
|
|
|
|
BOOST_CHECK(exampleAsset == tAssetsDir.GetAsset("other"));
|
|
BOOST_CHECK_EQUAL("other", tAssetsDir.GetLabel(exampleAsset));
|
|
// "bitcoin" is hardcoded for python tests
|
|
BOOST_CHECK(defaultPeggedAsset == tAssetsDir.GetAsset(defaultPeggedLabel));
|
|
BOOST_CHECK_EQUAL(defaultPeggedLabel, tAssetsDir.GetLabel(defaultPeggedAsset));
|
|
BOOST_CHECK(defaultPeggedAsset == tAssetsDir.GetAsset(tAssetsDir.GetLabel(CAsset(uint256S(defaultPeggedAssetHex)))));
|
|
|
|
const std::vector<std::string> assetsToInitRepeatedHex = {exampleAssetHex + ":other", exampleAssetHex + ":other2"};
|
|
BOOST_CHECK_THROW(tAssetsDir.InitFromStrings(assetsToInitRepeatedHex), std::runtime_error);
|
|
|
|
const std::vector<std::string> assetsToInitRepeatedLabel = {exampleAssetHex + ":other", defaultPeggedAssetHex + ":other"};
|
|
BOOST_CHECK_THROW(tAssetsDir.InitFromStrings(assetsToInitRepeatedLabel), std::runtime_error);
|
|
}
|
|
|
|
BOOST_AUTO_TEST_SUITE_END()
|