uia_tests.cpp: Implement asset_name_test #409
This commit is contained in:
parent
a126520fa3
commit
f72ed2f532
2 changed files with 49 additions and 0 deletions
|
|
@ -501,7 +501,9 @@ const asset_object& database_fixture::create_user_issued_asset( const string& na
|
||||||
creator.common_options.max_supply = GRAPHENE_MAX_SHARE_SUPPLY;
|
creator.common_options.max_supply = GRAPHENE_MAX_SHARE_SUPPLY;
|
||||||
creator.common_options.flags = flags;
|
creator.common_options.flags = flags;
|
||||||
creator.common_options.issuer_permissions = flags;
|
creator.common_options.issuer_permissions = flags;
|
||||||
|
trx.operations.clear();
|
||||||
trx.operations.push_back(std::move(creator));
|
trx.operations.push_back(std::move(creator));
|
||||||
|
set_expiration( db, trx );
|
||||||
trx.validate();
|
trx.validate();
|
||||||
processed_transaction ptx = db.push_transaction(trx, ~0);
|
processed_transaction ptx = db.push_transaction(trx, ~0);
|
||||||
trx.operations.clear();
|
trx.operations.clear();
|
||||||
|
|
|
||||||
|
|
@ -414,5 +414,52 @@ BOOST_AUTO_TEST_CASE( transfer_restricted_test )
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
BOOST_AUTO_TEST_CASE( asset_name_test )
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
ACTORS( (alice)(bob) );
|
||||||
|
|
||||||
|
auto has_asset = [&]( std::string symbol ) -> bool
|
||||||
|
{
|
||||||
|
const auto& assets_by_symbol = db.get_index_type<asset_index>().indices().get<by_symbol>();
|
||||||
|
return assets_by_symbol.find( symbol ) != assets_by_symbol.end();
|
||||||
|
};
|
||||||
|
|
||||||
|
// Alice creates asset "ALPHA"
|
||||||
|
BOOST_CHECK( !has_asset("ALPHA") ); BOOST_CHECK( !has_asset("ALPHA.ONE") );
|
||||||
|
create_user_issued_asset( "ALPHA", alice_id(db), 0 );
|
||||||
|
BOOST_CHECK( has_asset("ALPHA") ); BOOST_CHECK( !has_asset("ALPHA.ONE") );
|
||||||
|
|
||||||
|
// Nobody can create another asset named ALPHA
|
||||||
|
GRAPHENE_REQUIRE_THROW( create_user_issued_asset( "ALPHA", bob_id(db), 0 ), fc::exception );
|
||||||
|
BOOST_CHECK( has_asset("ALPHA") ); BOOST_CHECK( !has_asset("ALPHA.ONE") );
|
||||||
|
GRAPHENE_REQUIRE_THROW( create_user_issued_asset( "ALPHA", alice_id(db), 0 ), fc::exception );
|
||||||
|
BOOST_CHECK( has_asset("ALPHA") ); BOOST_CHECK( !has_asset("ALPHA.ONE") );
|
||||||
|
|
||||||
|
// Bob can't create ALPHA.ONE
|
||||||
|
GRAPHENE_REQUIRE_THROW( create_user_issued_asset( "ALPHA.ONE", bob_id(db), 0 ), fc::exception );
|
||||||
|
BOOST_CHECK( has_asset("ALPHA") ); BOOST_CHECK( !has_asset("ALPHA.ONE") );
|
||||||
|
if( db.head_block_time() <= HARDFORK_409_TIME )
|
||||||
|
{
|
||||||
|
// Alice can't create ALPHA.ONE before hardfork
|
||||||
|
GRAPHENE_REQUIRE_THROW( create_user_issued_asset( "ALPHA.ONE", alice_id(db), 0 ), fc::exception );
|
||||||
|
BOOST_CHECK( has_asset("ALPHA") ); BOOST_CHECK( !has_asset("ALPHA.ONE") );
|
||||||
|
generate_blocks( HARDFORK_409_TIME );
|
||||||
|
generate_block();
|
||||||
|
// Bob can't create ALPHA.ONE after hardfork
|
||||||
|
GRAPHENE_REQUIRE_THROW( create_user_issued_asset( "ALPHA.ONE", bob_id(db), 0 ), fc::exception );
|
||||||
|
BOOST_CHECK( has_asset("ALPHA") ); BOOST_CHECK( !has_asset("ALPHA.ONE") );
|
||||||
|
}
|
||||||
|
// Alice can create it
|
||||||
|
create_user_issued_asset( "ALPHA.ONE", alice_id(db), 0 );
|
||||||
|
BOOST_CHECK( has_asset("ALPHA") ); BOOST_CHECK( has_asset("ALPHA.ONE") );
|
||||||
|
}
|
||||||
|
catch(fc::exception& e)
|
||||||
|
{
|
||||||
|
edump((e.to_detail_string()));
|
||||||
|
throw;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
BOOST_AUTO_TEST_SUITE_END()
|
BOOST_AUTO_TEST_SUITE_END()
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue