uia_tests.cpp: Implement asset_name_test #409

This commit is contained in:
theoreticalbts 2015-10-31 14:50:11 -04:00
parent a126520fa3
commit f72ed2f532
2 changed files with 49 additions and 0 deletions

View file

@ -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.flags = flags;
creator.common_options.issuer_permissions = flags;
trx.operations.clear();
trx.operations.push_back(std::move(creator));
set_expiration( db, trx );
trx.validate();
processed_transaction ptx = db.push_transaction(trx, ~0);
trx.operations.clear();

View file

@ -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()