mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Accessors for multiple mappings implemented
This commit is contained in:
parent
33f86b8af3
commit
3b0ca66cd2
@ -925,16 +925,19 @@ BOOST_AUTO_TEST_CASE(complex_accessors)
|
|||||||
" mapping(uint256 => string4) to_string_map;\n"
|
" mapping(uint256 => string4) to_string_map;\n"
|
||||||
" mapping(uint256 => bool) to_bool_map;\n"
|
" mapping(uint256 => bool) to_bool_map;\n"
|
||||||
" mapping(uint256 => uint256) to_uint_map;\n"
|
" mapping(uint256 => uint256) to_uint_map;\n"
|
||||||
|
" mapping(uint256 => mapping(uint256 => uint256)) to_multiple_map;\n"
|
||||||
" function test() {\n"
|
" function test() {\n"
|
||||||
" to_string_map[42] = \"24\";\n"
|
" to_string_map[42] = \"24\";\n"
|
||||||
" to_bool_map[42] = false;\n"
|
" to_bool_map[42] = false;\n"
|
||||||
" to_uint_map[42] = 12;\n"
|
" to_uint_map[42] = 12;\n"
|
||||||
|
" to_multiple_map[42][23] = 31;\n"
|
||||||
" }\n"
|
" }\n"
|
||||||
"}\n";
|
"}\n";
|
||||||
compileAndRun(sourceCode);
|
compileAndRun(sourceCode);
|
||||||
BOOST_CHECK(callContractFunction("to_string_map(uint256)", 42) == encodeArgs("24"));
|
BOOST_CHECK(callContractFunction("to_string_map(uint256)", 42) == encodeArgs("24"));
|
||||||
BOOST_CHECK(callContractFunction("to_bool_map(uint256)", 42) == encodeArgs(false));
|
BOOST_CHECK(callContractFunction("to_bool_map(uint256)", 42) == encodeArgs(false));
|
||||||
BOOST_CHECK(callContractFunction("to_uint_map(uint256)", 42) == encodeArgs(12));
|
BOOST_CHECK(callContractFunction("to_uint_map(uint256)", 42) == encodeArgs(12));
|
||||||
|
BOOST_CHECK(callContractFunction("to_multiple_map(uint256,uint256)", 42, 23) == encodeArgs(31));
|
||||||
}
|
}
|
||||||
|
|
||||||
BOOST_AUTO_TEST_CASE(balance)
|
BOOST_AUTO_TEST_CASE(balance)
|
||||||
|
@ -638,6 +638,7 @@ BOOST_AUTO_TEST_CASE(state_variable_accessors)
|
|||||||
" }\n"
|
" }\n"
|
||||||
"uint256 foo;\n"
|
"uint256 foo;\n"
|
||||||
"mapping(uint=>string4) map;\n"
|
"mapping(uint=>string4) map;\n"
|
||||||
|
"mapping(uint=>mapping(uint=>string4)) multiple_map;\n"
|
||||||
"}\n";
|
"}\n";
|
||||||
|
|
||||||
ASTPointer<SourceUnit> source;
|
ASTPointer<SourceUnit> source;
|
||||||
@ -649,10 +650,20 @@ BOOST_AUTO_TEST_CASE(state_variable_accessors)
|
|||||||
auto returnParams = function->getReturnParameterTypeNames();
|
auto returnParams = function->getReturnParameterTypeNames();
|
||||||
BOOST_CHECK_EQUAL(returnParams.at(0), "uint256");
|
BOOST_CHECK_EQUAL(returnParams.at(0), "uint256");
|
||||||
BOOST_CHECK(function->isConstant());
|
BOOST_CHECK(function->isConstant());
|
||||||
|
|
||||||
function = retrieveFunctionBySignature(contract, "map(uint256)");
|
function = retrieveFunctionBySignature(contract, "map(uint256)");
|
||||||
BOOST_REQUIRE(function && function->hasDeclaration());
|
BOOST_REQUIRE(function && function->hasDeclaration());
|
||||||
auto Params = function->getParameterTypeNames();
|
auto params = function->getParameterTypeNames();
|
||||||
BOOST_CHECK_EQUAL(returnParams.at(0), "uint256");
|
BOOST_CHECK_EQUAL(params.at(0), "uint256");
|
||||||
|
returnParams = function->getReturnParameterTypeNames();
|
||||||
|
BOOST_CHECK_EQUAL(returnParams.at(0), "string4");
|
||||||
|
BOOST_CHECK(function->isConstant());
|
||||||
|
|
||||||
|
function = retrieveFunctionBySignature(contract, "multiple_map(uint256,uint256)");
|
||||||
|
BOOST_REQUIRE(function && function->hasDeclaration());
|
||||||
|
params = function->getParameterTypeNames();
|
||||||
|
BOOST_CHECK_EQUAL(params.at(0), "uint256");
|
||||||
|
BOOST_CHECK_EQUAL(params.at(1), "uint256");
|
||||||
returnParams = function->getReturnParameterTypeNames();
|
returnParams = function->getReturnParameterTypeNames();
|
||||||
BOOST_CHECK_EQUAL(returnParams.at(0), "string4");
|
BOOST_CHECK_EQUAL(returnParams.at(0), "string4");
|
||||||
BOOST_CHECK(function->isConstant());
|
BOOST_CHECK(function->isConstant());
|
||||||
|
Loading…
Reference in New Issue
Block a user