From c798f40643cbad4cb53ded10b2e677bc4d599748 Mon Sep 17 00:00:00 2001 From: gladcow Date: Tue, 22 Oct 2019 13:17:47 +0300 Subject: [PATCH] refactor select_top_fifteen_sons test --- tests/cli/son.cpp | 807 ++++++---------------------------------------- 1 file changed, 99 insertions(+), 708 deletions(-) diff --git a/tests/cli/son.cpp b/tests/cli/son.cpp index ee9655a7..80843d70 100644 --- a/tests/cli/son.cpp +++ b/tests/cli/son.cpp @@ -24,9 +24,67 @@ #include "cli_fixture.hpp" #include +#include #include +class son_test_helper +{ + cli_fixture& fixture_; + +public: + son_test_helper(cli_fixture& fixture): + fixture_(fixture) + { + fixture_.init_nathan(); + } + + void create_son(const std::string& account_name, const std::string& son_url, + bool generate_maintenance = true) + { + graphene::wallet::brain_key_info bki; + signed_transaction create_tx; + signed_transaction transfer_tx; + signed_transaction upgrade_tx; + account_object son_account; + son_object son_obj; + + // create son account + bki = fixture_.con.wallet_api_ptr->suggest_brain_key(); + BOOST_CHECK(!bki.brain_priv_key.empty()); + create_tx = fixture_.con.wallet_api_ptr->create_account_with_brain_key( + bki.brain_priv_key, account_name, "nathan", "nathan", true + ); + // save the private key for this new account in the wallet file + BOOST_CHECK(fixture_.con.wallet_api_ptr->import_key(account_name, bki.wif_priv_key)); + fixture_.con.wallet_api_ptr->save_wallet_file(fixture_.con.wallet_filename); + + // attempt to give son account some CORE tokens + BOOST_TEST_MESSAGE("Transferring CORE tokens from Nathan to son account"); + transfer_tx = fixture_.con.wallet_api_ptr->transfer( + "nathan", account_name, "15000", "1.3.0", "Here are some CORE token for your new account", true + ); + + BOOST_CHECK(fixture_.generate_block()); + + // upgrade son account + BOOST_TEST_MESSAGE("Upgrading son account to LTM"); + upgrade_tx = fixture_.con.wallet_api_ptr->upgrade_account(account_name, true); + son_account = fixture_.con.wallet_api_ptr->get_account(account_name); + + // verify that the upgrade was successful + BOOST_CHECK(son_account.is_lifetime_member()); + + BOOST_CHECK(fixture_.generate_block()); + + create_tx = fixture_.con.wallet_api_ptr->create_son(account_name, son_url, true); + + if (generate_maintenance) + BOOST_CHECK(fixture_.generate_maintenance_block()); + } + +}; + /////////////////////// // SON CLI /////////////////////// @@ -291,7 +349,7 @@ BOOST_FIXTURE_TEST_CASE( select_top_fifteen_sons, cli_fixture ) BOOST_TEST_MESSAGE("SON cli wallet tests begin"); try { - INVOKE(upgrade_nathan_account); + son_test_helper sth(*this); graphene::wallet::brain_key_info bki; signed_transaction create_tx; @@ -302,725 +360,58 @@ BOOST_FIXTURE_TEST_CASE( select_top_fifteen_sons, cli_fixture ) son_object son_obj; global_property_object gpo; - // create sonaccount01 - bki = con.wallet_api_ptr->suggest_brain_key(); - BOOST_CHECK(!bki.brain_priv_key.empty()); - create_tx = con.wallet_api_ptr->create_account_with_brain_key( - bki.brain_priv_key, "sonaccount01", "nathan", "nathan", true - ); - // save the private key for this new account in the wallet file - BOOST_CHECK(con.wallet_api_ptr->import_key("sonaccount01", bki.wif_priv_key)); - con.wallet_api_ptr->save_wallet_file(con.wallet_filename); - - // attempt to give sonaccount01 some CORE tokens - BOOST_TEST_MESSAGE("Transferring CORE tokens from Nathan to sonaccount01"); - transfer_tx = con.wallet_api_ptr->transfer( - "nathan", "sonaccount01", "15000", "1.3.0", "Here are some CORE token for your new account", true - ); - - acc_before_upgrade = con.wallet_api_ptr->get_account("sonaccount01"); - BOOST_CHECK(generate_block(app1)); - - // upgrade sonaccount01 - BOOST_TEST_MESSAGE("Upgrading sonaccount01 to LTM"); - upgrade_tx = con.wallet_api_ptr->upgrade_account("sonaccount01", true); - acc_after_upgrade = con.wallet_api_ptr->get_account("sonaccount01"); - - // verify that the upgrade was successful - BOOST_CHECK_PREDICATE( - std::not_equal_to(), - (acc_before_upgrade.membership_expiration_date.sec_since_epoch()) - (acc_after_upgrade.membership_expiration_date.sec_since_epoch()) - ); - BOOST_CHECK(acc_after_upgrade.is_lifetime_member()); - - BOOST_CHECK(generate_block(app1)); - - - // create sonaccount02 - bki = con.wallet_api_ptr->suggest_brain_key(); - BOOST_CHECK(!bki.brain_priv_key.empty()); - create_tx = con.wallet_api_ptr->create_account_with_brain_key( - bki.brain_priv_key, "sonaccount02", "nathan", "nathan", true - ); - // save the private key for this new account in the wallet file - BOOST_CHECK(con.wallet_api_ptr->import_key("sonaccount02", bki.wif_priv_key)); - con.wallet_api_ptr->save_wallet_file(con.wallet_filename); - - // attempt to give sonaccount02 some CORE tokens - BOOST_TEST_MESSAGE("Transferring CORE tokens from Nathan to sonaccount02"); - transfer_tx = con.wallet_api_ptr->transfer( - "nathan", "sonaccount02", "15000", "1.3.0", "Here are some CORE token for your new account", true - ); - - acc_before_upgrade = con.wallet_api_ptr->get_account("sonaccount02"); - BOOST_CHECK(generate_block(app1)); - - // upgrade sonaccount02 - BOOST_TEST_MESSAGE("Upgrading sonaccount02 to LTM"); - upgrade_tx = con.wallet_api_ptr->upgrade_account("sonaccount02", true); - acc_after_upgrade = con.wallet_api_ptr->get_account("sonaccount02"); - - // verify that the upgrade was successful - BOOST_CHECK_PREDICATE( - std::not_equal_to(), - (acc_before_upgrade.membership_expiration_date.sec_since_epoch()) - (acc_after_upgrade.membership_expiration_date.sec_since_epoch()) - ); - BOOST_CHECK(acc_after_upgrade.is_lifetime_member()); - - BOOST_CHECK(generate_block(app1)); - - - - // create sonaccount03 - bki = con.wallet_api_ptr->suggest_brain_key(); - BOOST_CHECK(!bki.brain_priv_key.empty()); - create_tx = con.wallet_api_ptr->create_account_with_brain_key( - bki.brain_priv_key, "sonaccount03", "nathan", "nathan", true - ); - // save the private key for this new account in the wallet file - BOOST_CHECK(con.wallet_api_ptr->import_key("sonaccount03", bki.wif_priv_key)); - con.wallet_api_ptr->save_wallet_file(con.wallet_filename); - - // attempt to give sonaccount03 some CORE tokens - BOOST_TEST_MESSAGE("Transferring CORE tokens from Nathan to sonaccount03"); - transfer_tx = con.wallet_api_ptr->transfer( - "nathan", "sonaccount03", "15000", "1.3.0", "Here are some CORE token for your new account", true - ); - - acc_before_upgrade = con.wallet_api_ptr->get_account("sonaccount03"); - BOOST_CHECK(generate_block(app1)); - - // upgrade sonaccount03 - BOOST_TEST_MESSAGE("Upgrading sonaccount03 to LTM"); - upgrade_tx = con.wallet_api_ptr->upgrade_account("sonaccount03", true); - acc_after_upgrade = con.wallet_api_ptr->get_account("sonaccount03"); - - // verify that the upgrade was successful - BOOST_CHECK_PREDICATE( - std::not_equal_to(), - (acc_before_upgrade.membership_expiration_date.sec_since_epoch()) - (acc_after_upgrade.membership_expiration_date.sec_since_epoch()) - ); - BOOST_CHECK(acc_after_upgrade.is_lifetime_member()); - - BOOST_CHECK(generate_block(app1)); - - - - // create sonaccount04 - bki = con.wallet_api_ptr->suggest_brain_key(); - BOOST_CHECK(!bki.brain_priv_key.empty()); - create_tx = con.wallet_api_ptr->create_account_with_brain_key( - bki.brain_priv_key, "sonaccount04", "nathan", "nathan", true - ); - // save the private key for this new account in the wallet file - BOOST_CHECK(con.wallet_api_ptr->import_key("sonaccount04", bki.wif_priv_key)); - con.wallet_api_ptr->save_wallet_file(con.wallet_filename); - - // attempt to give sonaccount04 some CORE tokens - BOOST_TEST_MESSAGE("Transferring CORE tokens from Nathan to sonaccount04"); - transfer_tx = con.wallet_api_ptr->transfer( - "nathan", "sonaccount04", "15000", "1.3.0", "Here are some CORE token for your new account", true - ); - - acc_before_upgrade = con.wallet_api_ptr->get_account("sonaccount04"); - BOOST_CHECK(generate_block(app1)); - - // upgrade sonaccount04 - BOOST_TEST_MESSAGE("Upgrading sonaccount04 to LTM"); - upgrade_tx = con.wallet_api_ptr->upgrade_account("sonaccount04", true); - acc_after_upgrade = con.wallet_api_ptr->get_account("sonaccount04"); - - // verify that the upgrade was successful - BOOST_CHECK_PREDICATE( - std::not_equal_to(), - (acc_before_upgrade.membership_expiration_date.sec_since_epoch()) - (acc_after_upgrade.membership_expiration_date.sec_since_epoch()) - ); - BOOST_CHECK(acc_after_upgrade.is_lifetime_member()); - - BOOST_CHECK(generate_block(app1)); - - - - // create sonaccount05 - bki = con.wallet_api_ptr->suggest_brain_key(); - BOOST_CHECK(!bki.brain_priv_key.empty()); - create_tx = con.wallet_api_ptr->create_account_with_brain_key( - bki.brain_priv_key, "sonaccount05", "nathan", "nathan", true - ); - // save the private key for this new account in the wallet file - BOOST_CHECK(con.wallet_api_ptr->import_key("sonaccount05", bki.wif_priv_key)); - con.wallet_api_ptr->save_wallet_file(con.wallet_filename); - - // attempt to give sonaccount05 some CORE tokens - BOOST_TEST_MESSAGE("Transferring CORE tokens from Nathan to sonaccount05"); - transfer_tx = con.wallet_api_ptr->transfer( - "nathan", "sonaccount05", "15000", "1.3.0", "Here are some CORE token for your new account", true - ); - - acc_before_upgrade = con.wallet_api_ptr->get_account("sonaccount05"); - BOOST_CHECK(generate_block(app1)); - - // upgrade sonaccount05 - BOOST_TEST_MESSAGE("Upgrading sonaccount05 to LTM"); - upgrade_tx = con.wallet_api_ptr->upgrade_account("sonaccount05", true); - acc_after_upgrade = con.wallet_api_ptr->get_account("sonaccount05"); - - // verify that the upgrade was successful - BOOST_CHECK_PREDICATE( - std::not_equal_to(), - (acc_before_upgrade.membership_expiration_date.sec_since_epoch()) - (acc_after_upgrade.membership_expiration_date.sec_since_epoch()) - ); - BOOST_CHECK(acc_after_upgrade.is_lifetime_member()); - - BOOST_CHECK(generate_block(app1)); - - - - // create sonaccount06 - bki = con.wallet_api_ptr->suggest_brain_key(); - BOOST_CHECK(!bki.brain_priv_key.empty()); - create_tx = con.wallet_api_ptr->create_account_with_brain_key( - bki.brain_priv_key, "sonaccount06", "nathan", "nathan", true - ); - // save the private key for this new account in the wallet file - BOOST_CHECK(con.wallet_api_ptr->import_key("sonaccount06", bki.wif_priv_key)); - con.wallet_api_ptr->save_wallet_file(con.wallet_filename); - - // attempt to give sonaccount06 some CORE tokens - BOOST_TEST_MESSAGE("Transferring CORE tokens from Nathan to sonaccount06"); - transfer_tx = con.wallet_api_ptr->transfer( - "nathan", "sonaccount06", "15000", "1.3.0", "Here are some CORE token for your new account", true - ); - - acc_before_upgrade = con.wallet_api_ptr->get_account("sonaccount06"); - BOOST_CHECK(generate_block(app1)); - - // upgrade sonaccount06 - BOOST_TEST_MESSAGE("Upgrading sonaccount06 to LTM"); - upgrade_tx = con.wallet_api_ptr->upgrade_account("sonaccount06", true); - acc_after_upgrade = con.wallet_api_ptr->get_account("sonaccount06"); - - // verify that the upgrade was successful - BOOST_CHECK_PREDICATE( - std::not_equal_to(), - (acc_before_upgrade.membership_expiration_date.sec_since_epoch()) - (acc_after_upgrade.membership_expiration_date.sec_since_epoch()) - ); - BOOST_CHECK(acc_after_upgrade.is_lifetime_member()); - - BOOST_CHECK(generate_block(app1)); - - - - // create sonaccount07 - bki = con.wallet_api_ptr->suggest_brain_key(); - BOOST_CHECK(!bki.brain_priv_key.empty()); - create_tx = con.wallet_api_ptr->create_account_with_brain_key( - bki.brain_priv_key, "sonaccount07", "nathan", "nathan", true - ); - // save the private key for this new account in the wallet file - BOOST_CHECK(con.wallet_api_ptr->import_key("sonaccount07", bki.wif_priv_key)); - con.wallet_api_ptr->save_wallet_file(con.wallet_filename); - - // attempt to give sonaccount07 some CORE tokens - BOOST_TEST_MESSAGE("Transferring CORE tokens from Nathan to sonaccount07"); - transfer_tx = con.wallet_api_ptr->transfer( - "nathan", "sonaccount07", "15000", "1.3.0", "Here are some CORE token for your new account", true - ); - - acc_before_upgrade = con.wallet_api_ptr->get_account("sonaccount07"); - BOOST_CHECK(generate_block(app1)); - - // upgrade sonaccount07 - BOOST_TEST_MESSAGE("Upgrading sonaccount07 to LTM"); - upgrade_tx = con.wallet_api_ptr->upgrade_account("sonaccount07", true); - acc_after_upgrade = con.wallet_api_ptr->get_account("sonaccount07"); - - // verify that the upgrade was successful - BOOST_CHECK_PREDICATE( - std::not_equal_to(), - (acc_before_upgrade.membership_expiration_date.sec_since_epoch()) - (acc_after_upgrade.membership_expiration_date.sec_since_epoch()) - ); - BOOST_CHECK(acc_after_upgrade.is_lifetime_member()); - - BOOST_CHECK(generate_block(app1)); - - - - // create sonaccount08 - bki = con.wallet_api_ptr->suggest_brain_key(); - BOOST_CHECK(!bki.brain_priv_key.empty()); - create_tx = con.wallet_api_ptr->create_account_with_brain_key( - bki.brain_priv_key, "sonaccount08", "nathan", "nathan", true - ); - // save the private key for this new account in the wallet file - BOOST_CHECK(con.wallet_api_ptr->import_key("sonaccount08", bki.wif_priv_key)); - con.wallet_api_ptr->save_wallet_file(con.wallet_filename); - - // attempt to give sonaccount08 some CORE tokens - BOOST_TEST_MESSAGE("Transferring CORE tokens from Nathan to sonaccount08"); - transfer_tx = con.wallet_api_ptr->transfer( - "nathan", "sonaccount08", "15000", "1.3.0", "Here are some CORE token for your new account", true - ); - - acc_before_upgrade = con.wallet_api_ptr->get_account("sonaccount08"); - BOOST_CHECK(generate_block(app1)); - - // upgrade sonaccount08 - BOOST_TEST_MESSAGE("Upgrading sonaccount08 to LTM"); - upgrade_tx = con.wallet_api_ptr->upgrade_account("sonaccount08", true); - acc_after_upgrade = con.wallet_api_ptr->get_account("sonaccount08"); - - // verify that the upgrade was successful - BOOST_CHECK_PREDICATE( - std::not_equal_to(), - (acc_before_upgrade.membership_expiration_date.sec_since_epoch()) - (acc_after_upgrade.membership_expiration_date.sec_since_epoch()) - ); - BOOST_CHECK(acc_after_upgrade.is_lifetime_member()); - - BOOST_CHECK(generate_block(app1)); - - - - // create sonaccount09 - bki = con.wallet_api_ptr->suggest_brain_key(); - BOOST_CHECK(!bki.brain_priv_key.empty()); - create_tx = con.wallet_api_ptr->create_account_with_brain_key( - bki.brain_priv_key, "sonaccount09", "nathan", "nathan", true - ); - // save the private key for this new account in the wallet file - BOOST_CHECK(con.wallet_api_ptr->import_key("sonaccount09", bki.wif_priv_key)); - con.wallet_api_ptr->save_wallet_file(con.wallet_filename); - - // attempt to give sonaccount09 some CORE tokens - BOOST_TEST_MESSAGE("Transferring CORE tokens from Nathan to sonaccount09"); - transfer_tx = con.wallet_api_ptr->transfer( - "nathan", "sonaccount09", "15000", "1.3.0", "Here are some CORE token for your new account", true - ); - - acc_before_upgrade = con.wallet_api_ptr->get_account("sonaccount09"); - BOOST_CHECK(generate_block(app1)); - - // upgrade sonaccount09 - BOOST_TEST_MESSAGE("Upgrading sonaccount09 to LTM"); - upgrade_tx = con.wallet_api_ptr->upgrade_account("sonaccount09", true); - acc_after_upgrade = con.wallet_api_ptr->get_account("sonaccount09"); - - // verify that the upgrade was successful - BOOST_CHECK_PREDICATE( - std::not_equal_to(), - (acc_before_upgrade.membership_expiration_date.sec_since_epoch()) - (acc_after_upgrade.membership_expiration_date.sec_since_epoch()) - ); - BOOST_CHECK(acc_after_upgrade.is_lifetime_member()); - - BOOST_CHECK(generate_block(app1)); - - - - // create sonaccount10 - bki = con.wallet_api_ptr->suggest_brain_key(); - BOOST_CHECK(!bki.brain_priv_key.empty()); - create_tx = con.wallet_api_ptr->create_account_with_brain_key( - bki.brain_priv_key, "sonaccount10", "nathan", "nathan", true - ); - // save the private key for this new account in the wallet file - BOOST_CHECK(con.wallet_api_ptr->import_key("sonaccount10", bki.wif_priv_key)); - con.wallet_api_ptr->save_wallet_file(con.wallet_filename); - - // attempt to give sonaccount10 some CORE tokens - BOOST_TEST_MESSAGE("Transferring CORE tokens from Nathan to sonaccount10"); - transfer_tx = con.wallet_api_ptr->transfer( - "nathan", "sonaccount10", "15000", "1.3.0", "Here are some CORE token for your new account", true - ); - - acc_before_upgrade = con.wallet_api_ptr->get_account("sonaccount10"); - BOOST_CHECK(generate_block(app1)); - - // upgrade sonaccount10 - BOOST_TEST_MESSAGE("Upgrading sonaccount10 to LTM"); - upgrade_tx = con.wallet_api_ptr->upgrade_account("sonaccount10", true); - acc_after_upgrade = con.wallet_api_ptr->get_account("sonaccount10"); - - // verify that the upgrade was successful - BOOST_CHECK_PREDICATE( - std::not_equal_to(), - (acc_before_upgrade.membership_expiration_date.sec_since_epoch()) - (acc_after_upgrade.membership_expiration_date.sec_since_epoch()) - ); - BOOST_CHECK(acc_after_upgrade.is_lifetime_member()); - - BOOST_CHECK(generate_block(app1)); - - - - // create sonaccount11 - bki = con.wallet_api_ptr->suggest_brain_key(); - BOOST_CHECK(!bki.brain_priv_key.empty()); - create_tx = con.wallet_api_ptr->create_account_with_brain_key( - bki.brain_priv_key, "sonaccount11", "nathan", "nathan", true - ); - // save the private key for this new account in the wallet file - BOOST_CHECK(con.wallet_api_ptr->import_key("sonaccount11", bki.wif_priv_key)); - con.wallet_api_ptr->save_wallet_file(con.wallet_filename); - - // attempt to give sonaccount11 some CORE tokens - BOOST_TEST_MESSAGE("Transferring CORE tokens from Nathan to sonaccount11"); - transfer_tx = con.wallet_api_ptr->transfer( - "nathan", "sonaccount11", "15000", "1.3.0", "Here are some CORE token for your new account", true - ); - - acc_before_upgrade = con.wallet_api_ptr->get_account("sonaccount11"); - BOOST_CHECK(generate_block(app1)); - - // upgrade sonaccount11 - BOOST_TEST_MESSAGE("Upgrading sonaccount11 to LTM"); - upgrade_tx = con.wallet_api_ptr->upgrade_account("sonaccount11", true); - acc_after_upgrade = con.wallet_api_ptr->get_account("sonaccount11"); - - // verify that the upgrade was successful - BOOST_CHECK_PREDICATE( - std::not_equal_to(), - (acc_before_upgrade.membership_expiration_date.sec_since_epoch()) - (acc_after_upgrade.membership_expiration_date.sec_since_epoch()) - ); - BOOST_CHECK(acc_after_upgrade.is_lifetime_member()); - - BOOST_CHECK(generate_block(app1)); - - - - // create sonaccount12 - bki = con.wallet_api_ptr->suggest_brain_key(); - BOOST_CHECK(!bki.brain_priv_key.empty()); - create_tx = con.wallet_api_ptr->create_account_with_brain_key( - bki.brain_priv_key, "sonaccount12", "nathan", "nathan", true - ); - // save the private key for this new account in the wallet file - BOOST_CHECK(con.wallet_api_ptr->import_key("sonaccount12", bki.wif_priv_key)); - con.wallet_api_ptr->save_wallet_file(con.wallet_filename); - - // attempt to give sonaccount12 some CORE tokens - BOOST_TEST_MESSAGE("Transferring CORE tokens from Nathan to sonaccount12"); - transfer_tx = con.wallet_api_ptr->transfer( - "nathan", "sonaccount12", "15000", "1.3.0", "Here are some CORE token for your new account", true - ); - - acc_before_upgrade = con.wallet_api_ptr->get_account("sonaccount12"); - BOOST_CHECK(generate_block(app1)); - - // upgrade sonaccount12 - BOOST_TEST_MESSAGE("Upgrading sonaccount12 to LTM"); - upgrade_tx = con.wallet_api_ptr->upgrade_account("sonaccount12", true); - acc_after_upgrade = con.wallet_api_ptr->get_account("sonaccount12"); - - // verify that the upgrade was successful - BOOST_CHECK_PREDICATE( - std::not_equal_to(), - (acc_before_upgrade.membership_expiration_date.sec_since_epoch()) - (acc_after_upgrade.membership_expiration_date.sec_since_epoch()) - ); - BOOST_CHECK(acc_after_upgrade.is_lifetime_member()); - - BOOST_CHECK(generate_block(app1)); - - - - // create sonaccount13 - bki = con.wallet_api_ptr->suggest_brain_key(); - BOOST_CHECK(!bki.brain_priv_key.empty()); - create_tx = con.wallet_api_ptr->create_account_with_brain_key( - bki.brain_priv_key, "sonaccount13", "nathan", "nathan", true - ); - // save the private key for this new account in the wallet file - BOOST_CHECK(con.wallet_api_ptr->import_key("sonaccount13", bki.wif_priv_key)); - con.wallet_api_ptr->save_wallet_file(con.wallet_filename); - - // attempt to give sonaccount13 some CORE tokens - BOOST_TEST_MESSAGE("Transferring CORE tokens from Nathan to sonaccount13"); - transfer_tx = con.wallet_api_ptr->transfer( - "nathan", "sonaccount13", "15000", "1.3.0", "Here are some CORE token for your new account", true - ); - - acc_before_upgrade = con.wallet_api_ptr->get_account("sonaccount13"); - BOOST_CHECK(generate_block(app1)); - - // upgrade sonaccount13 - BOOST_TEST_MESSAGE("Upgrading sonaccount13 to LTM"); - upgrade_tx = con.wallet_api_ptr->upgrade_account("sonaccount13", true); - acc_after_upgrade = con.wallet_api_ptr->get_account("sonaccount13"); - - // verify that the upgrade was successful - BOOST_CHECK_PREDICATE( - std::not_equal_to(), - (acc_before_upgrade.membership_expiration_date.sec_since_epoch()) - (acc_after_upgrade.membership_expiration_date.sec_since_epoch()) - ); - BOOST_CHECK(acc_after_upgrade.is_lifetime_member()); - - BOOST_CHECK(generate_block(app1)); - - - - // create sonaccount14 - bki = con.wallet_api_ptr->suggest_brain_key(); - BOOST_CHECK(!bki.brain_priv_key.empty()); - create_tx = con.wallet_api_ptr->create_account_with_brain_key( - bki.brain_priv_key, "sonaccount14", "nathan", "nathan", true - ); - // save the private key for this new account in the wallet file - BOOST_CHECK(con.wallet_api_ptr->import_key("sonaccount14", bki.wif_priv_key)); - con.wallet_api_ptr->save_wallet_file(con.wallet_filename); - - // attempt to give sonaccount14 some CORE tokens - BOOST_TEST_MESSAGE("Transferring CORE tokens from Nathan to sonaccount14"); - transfer_tx = con.wallet_api_ptr->transfer( - "nathan", "sonaccount14", "15000", "1.3.0", "Here are some CORE token for your new account", true - ); - - acc_before_upgrade = con.wallet_api_ptr->get_account("sonaccount14"); - BOOST_CHECK(generate_block(app1)); - - // upgrade sonaccount14 - BOOST_TEST_MESSAGE("Upgrading sonaccount14 to LTM"); - upgrade_tx = con.wallet_api_ptr->upgrade_account("sonaccount14", true); - acc_after_upgrade = con.wallet_api_ptr->get_account("sonaccount14"); - - // verify that the upgrade was successful - BOOST_CHECK_PREDICATE( - std::not_equal_to(), - (acc_before_upgrade.membership_expiration_date.sec_since_epoch()) - (acc_after_upgrade.membership_expiration_date.sec_since_epoch()) - ); - BOOST_CHECK(acc_after_upgrade.is_lifetime_member()); - - BOOST_CHECK(generate_block(app1)); - - - - // create sonaccount15 - bki = con.wallet_api_ptr->suggest_brain_key(); - BOOST_CHECK(!bki.brain_priv_key.empty()); - create_tx = con.wallet_api_ptr->create_account_with_brain_key( - bki.brain_priv_key, "sonaccount15", "nathan", "nathan", true - ); - // save the private key for this new account in the wallet file - BOOST_CHECK(con.wallet_api_ptr->import_key("sonaccount15", bki.wif_priv_key)); - con.wallet_api_ptr->save_wallet_file(con.wallet_filename); - - // attempt to give sonaccount15 some CORE tokens - BOOST_TEST_MESSAGE("Transferring CORE tokens from Nathan to sonaccount15"); - transfer_tx = con.wallet_api_ptr->transfer( - "nathan", "sonaccount15", "15000", "1.3.0", "Here are some CORE token for your new account", true - ); - - acc_before_upgrade = con.wallet_api_ptr->get_account("sonaccount15"); - BOOST_CHECK(generate_block(app1)); - - // upgrade sonaccount15 - BOOST_TEST_MESSAGE("Upgrading sonaccount15 to LTM"); - upgrade_tx = con.wallet_api_ptr->upgrade_account("sonaccount15", true); - acc_after_upgrade = con.wallet_api_ptr->get_account("sonaccount15"); - - // verify that the upgrade was successful - BOOST_CHECK_PREDICATE( - std::not_equal_to(), - (acc_before_upgrade.membership_expiration_date.sec_since_epoch()) - (acc_after_upgrade.membership_expiration_date.sec_since_epoch()) - ); - BOOST_CHECK(acc_after_upgrade.is_lifetime_member()); - - BOOST_CHECK(generate_block(app1)); - - - - // create sonaccount16 - bki = con.wallet_api_ptr->suggest_brain_key(); - BOOST_CHECK(!bki.brain_priv_key.empty()); - create_tx = con.wallet_api_ptr->create_account_with_brain_key( - bki.brain_priv_key, "sonaccount16", "nathan", "nathan", true - ); - // save the private key for this new account in the wallet file - BOOST_CHECK(con.wallet_api_ptr->import_key("sonaccount16", bki.wif_priv_key)); - con.wallet_api_ptr->save_wallet_file(con.wallet_filename); - - // attempt to give sonaccount16 some CORE tokens - BOOST_TEST_MESSAGE("Transferring CORE tokens from Nathan to sonaccount16"); - transfer_tx = con.wallet_api_ptr->transfer( - "nathan", "sonaccount16", "15000", "1.3.0", "Here are some CORE token for your new account", true - ); - - acc_before_upgrade = con.wallet_api_ptr->get_account("sonaccount16"); - BOOST_CHECK(generate_block(app1)); - - // upgrade sonaccount16 - BOOST_TEST_MESSAGE("Upgrading sonaccount16 to LTM"); - upgrade_tx = con.wallet_api_ptr->upgrade_account("sonaccount16", true); - acc_after_upgrade = con.wallet_api_ptr->get_account("sonaccount16"); - - // verify that the upgrade was successful - BOOST_CHECK_PREDICATE( - std::not_equal_to(), - (acc_before_upgrade.membership_expiration_date.sec_since_epoch()) - (acc_after_upgrade.membership_expiration_date.sec_since_epoch()) - ); - BOOST_CHECK(acc_after_upgrade.is_lifetime_member()); - - BOOST_CHECK(generate_block(app1)); - - - - // create 16 SONs - BOOST_TEST_MESSAGE("Creating 16 SONs"); - create_tx = con.wallet_api_ptr->create_son("sonaccount01", "http://son01", "true"); - create_tx = con.wallet_api_ptr->create_son("sonaccount02", "http://son02", "true"); - create_tx = con.wallet_api_ptr->create_son("sonaccount03", "http://son03", "true"); - create_tx = con.wallet_api_ptr->create_son("sonaccount04", "http://son04", "true"); - create_tx = con.wallet_api_ptr->create_son("sonaccount05", "http://son05", "true"); - create_tx = con.wallet_api_ptr->create_son("sonaccount06", "http://son06", "true"); - create_tx = con.wallet_api_ptr->create_son("sonaccount07", "http://son07", "true"); - create_tx = con.wallet_api_ptr->create_son("sonaccount08", "http://son08", "true"); - create_tx = con.wallet_api_ptr->create_son("sonaccount09", "http://son09", "true"); - create_tx = con.wallet_api_ptr->create_son("sonaccount10", "http://son10", "true"); - create_tx = con.wallet_api_ptr->create_son("sonaccount11", "http://son11", "true"); - create_tx = con.wallet_api_ptr->create_son("sonaccount12", "http://son12", "true"); - create_tx = con.wallet_api_ptr->create_son("sonaccount13", "http://son13", "true"); - create_tx = con.wallet_api_ptr->create_son("sonaccount14", "http://son14", "true"); - create_tx = con.wallet_api_ptr->create_son("sonaccount15", "http://son15", "true"); - create_tx = con.wallet_api_ptr->create_son("sonaccount16", "http://son16", "true"); - BOOST_CHECK(generate_maintenance_block(app1)); - - son_obj = con.wallet_api_ptr->get_son("sonaccount01"); - BOOST_CHECK(son_obj.son_account == con.wallet_api_ptr->get_account_id("sonaccount01")); - BOOST_CHECK_EQUAL(son_obj.url, "http://son01"); - son_obj = con.wallet_api_ptr->get_son("sonaccount02"); - BOOST_CHECK(son_obj.son_account == con.wallet_api_ptr->get_account_id("sonaccount02")); - BOOST_CHECK_EQUAL(son_obj.url, "http://son02"); - son_obj = con.wallet_api_ptr->get_son("sonaccount03"); - BOOST_CHECK(son_obj.son_account == con.wallet_api_ptr->get_account_id("sonaccount03")); - BOOST_CHECK_EQUAL(son_obj.url, "http://son03"); - son_obj = con.wallet_api_ptr->get_son("sonaccount04"); - BOOST_CHECK(son_obj.son_account == con.wallet_api_ptr->get_account_id("sonaccount04")); - BOOST_CHECK_EQUAL(son_obj.url, "http://son04"); - son_obj = con.wallet_api_ptr->get_son("sonaccount05"); - BOOST_CHECK(son_obj.son_account == con.wallet_api_ptr->get_account_id("sonaccount05")); - BOOST_CHECK_EQUAL(son_obj.url, "http://son05"); - son_obj = con.wallet_api_ptr->get_son("sonaccount06"); - BOOST_CHECK(son_obj.son_account == con.wallet_api_ptr->get_account_id("sonaccount06")); - BOOST_CHECK_EQUAL(son_obj.url, "http://son06"); - son_obj = con.wallet_api_ptr->get_son("sonaccount07"); - BOOST_CHECK(son_obj.son_account == con.wallet_api_ptr->get_account_id("sonaccount07")); - BOOST_CHECK_EQUAL(son_obj.url, "http://son07"); - son_obj = con.wallet_api_ptr->get_son("sonaccount08"); - BOOST_CHECK(son_obj.son_account == con.wallet_api_ptr->get_account_id("sonaccount08")); - BOOST_CHECK_EQUAL(son_obj.url, "http://son08"); - son_obj = con.wallet_api_ptr->get_son("sonaccount09"); - BOOST_CHECK(son_obj.son_account == con.wallet_api_ptr->get_account_id("sonaccount09")); - BOOST_CHECK_EQUAL(son_obj.url, "http://son09"); - son_obj = con.wallet_api_ptr->get_son("sonaccount10"); - BOOST_CHECK(son_obj.son_account == con.wallet_api_ptr->get_account_id("sonaccount10")); - BOOST_CHECK_EQUAL(son_obj.url, "http://son10"); - son_obj = con.wallet_api_ptr->get_son("sonaccount11"); - BOOST_CHECK(son_obj.son_account == con.wallet_api_ptr->get_account_id("sonaccount11")); - BOOST_CHECK_EQUAL(son_obj.url, "http://son11"); - son_obj = con.wallet_api_ptr->get_son("sonaccount12"); - BOOST_CHECK(son_obj.son_account == con.wallet_api_ptr->get_account_id("sonaccount12")); - BOOST_CHECK_EQUAL(son_obj.url, "http://son12"); - son_obj = con.wallet_api_ptr->get_son("sonaccount13"); - BOOST_CHECK(son_obj.son_account == con.wallet_api_ptr->get_account_id("sonaccount13")); - BOOST_CHECK_EQUAL(son_obj.url, "http://son13"); - son_obj = con.wallet_api_ptr->get_son("sonaccount14"); - BOOST_CHECK(son_obj.son_account == con.wallet_api_ptr->get_account_id("sonaccount14")); - BOOST_CHECK_EQUAL(son_obj.url, "http://son14"); - son_obj = con.wallet_api_ptr->get_son("sonaccount15"); - BOOST_CHECK(son_obj.son_account == con.wallet_api_ptr->get_account_id("sonaccount15")); - BOOST_CHECK_EQUAL(son_obj.url, "http://son15"); - son_obj = con.wallet_api_ptr->get_son("sonaccount16"); - BOOST_CHECK(son_obj.son_account == con.wallet_api_ptr->get_account_id("sonaccount16")); - BOOST_CHECK_EQUAL(son_obj.url, "http://son16"); - - + gpo = con.wallet_api_ptr->get_global_properties(); + unsigned int son_number = gpo.parameters.maximum_son_count; + + // create son accounts + for(unsigned int i = 0; i < son_number + 1; i++) + { + sth.create_son("sonaccount" + fc::to_pretty_string(i), + "http://son" + fc::to_pretty_string(i), false); + } + BOOST_CHECK(generate_maintenance_block()); BOOST_TEST_MESSAGE("Voting for SONs"); - vote_tx = con.wallet_api_ptr->vote_for_son("sonaccount01", "sonaccount01", true, true); - vote_tx = con.wallet_api_ptr->vote_for_son("sonaccount02", "sonaccount02", true, true); - vote_tx = con.wallet_api_ptr->vote_for_son("sonaccount03", "sonaccount03", true, true); - vote_tx = con.wallet_api_ptr->vote_for_son("sonaccount04", "sonaccount04", true, true); - vote_tx = con.wallet_api_ptr->vote_for_son("sonaccount05", "sonaccount05", true, true); - vote_tx = con.wallet_api_ptr->vote_for_son("sonaccount06", "sonaccount06", true, true); - vote_tx = con.wallet_api_ptr->vote_for_son("sonaccount07", "sonaccount07", true, true); - vote_tx = con.wallet_api_ptr->vote_for_son("sonaccount08", "sonaccount08", true, true); - vote_tx = con.wallet_api_ptr->vote_for_son("sonaccount09", "sonaccount09", true, true); - vote_tx = con.wallet_api_ptr->vote_for_son("sonaccount10", "sonaccount10", true, true); - vote_tx = con.wallet_api_ptr->vote_for_son("sonaccount11", "sonaccount11", true, true); - vote_tx = con.wallet_api_ptr->vote_for_son("sonaccount12", "sonaccount12", true, true); - vote_tx = con.wallet_api_ptr->vote_for_son("sonaccount13", "sonaccount13", true, true); - vote_tx = con.wallet_api_ptr->vote_for_son("sonaccount14", "sonaccount14", true, true); - vote_tx = con.wallet_api_ptr->vote_for_son("sonaccount15", "sonaccount15", true, true); - vote_tx = con.wallet_api_ptr->vote_for_son("sonaccount16", "sonaccount16", true, true); - BOOST_CHECK(generate_maintenance_block(app1)); - vote_tx = con.wallet_api_ptr->vote_for_son("sonaccount01", "sonaccount02", true, true); - vote_tx = con.wallet_api_ptr->vote_for_son("sonaccount02", "sonaccount03", true, true); - vote_tx = con.wallet_api_ptr->vote_for_son("sonaccount03", "sonaccount04", true, true); - vote_tx = con.wallet_api_ptr->vote_for_son("sonaccount04", "sonaccount05", true, true); - vote_tx = con.wallet_api_ptr->vote_for_son("sonaccount05", "sonaccount06", true, true); - vote_tx = con.wallet_api_ptr->vote_for_son("sonaccount06", "sonaccount07", true, true); - vote_tx = con.wallet_api_ptr->vote_for_son("sonaccount07", "sonaccount08", true, true); - vote_tx = con.wallet_api_ptr->vote_for_son("sonaccount08", "sonaccount09", true, true); - vote_tx = con.wallet_api_ptr->vote_for_son("sonaccount09", "sonaccount10", true, true); - vote_tx = con.wallet_api_ptr->vote_for_son("sonaccount10", "sonaccount11", true, true); - vote_tx = con.wallet_api_ptr->vote_for_son("sonaccount11", "sonaccount12", true, true); - vote_tx = con.wallet_api_ptr->vote_for_son("sonaccount12", "sonaccount13", true, true); - vote_tx = con.wallet_api_ptr->vote_for_son("sonaccount13", "sonaccount14", true, true); - vote_tx = con.wallet_api_ptr->vote_for_son("sonaccount14", "sonaccount15", true, true); - vote_tx = con.wallet_api_ptr->vote_for_son("sonaccount15", "sonaccount16", true, true); + for(unsigned int i = 0; i < son_number + 1; i++) + { + std::string name = "sonaccount" + fc::to_pretty_string(i); + vote_tx = con.wallet_api_ptr->vote_for_son(name, name, true, true); + } + BOOST_CHECK(generate_maintenance_block()); + + for(unsigned int i = 0; i < son_number; i++) + { + std::string name1 = "sonaccount" + fc::to_pretty_string(i); + std::string name2 = "sonaccount" + fc::to_pretty_string(i + 1); + vote_tx = con.wallet_api_ptr->vote_for_son(name1, name2, true, true); + } gpo = con.wallet_api_ptr->get_global_properties(); BOOST_TEST_MESSAGE("gpo: " << gpo.active_sons.size()); - BOOST_CHECK(generate_maintenance_block(app1)); + BOOST_CHECK(generate_maintenance_block()); gpo = con.wallet_api_ptr->get_global_properties(); BOOST_TEST_MESSAGE("gpo: " << gpo.active_sons.size()); - vote_tx = con.wallet_api_ptr->vote_for_son("sonaccount03", "sonaccount01", true, true); - vote_tx = con.wallet_api_ptr->vote_for_son("sonaccount04", "sonaccount02", true, true); - vote_tx = con.wallet_api_ptr->vote_for_son("sonaccount05", "sonaccount03", true, true); - vote_tx = con.wallet_api_ptr->vote_for_son("sonaccount06", "sonaccount04", true, true); - vote_tx = con.wallet_api_ptr->vote_for_son("sonaccount07", "sonaccount05", true, true); - vote_tx = con.wallet_api_ptr->vote_for_son("sonaccount08", "sonaccount06", true, true); - vote_tx = con.wallet_api_ptr->vote_for_son("sonaccount09", "sonaccount07", true, true); - vote_tx = con.wallet_api_ptr->vote_for_son("sonaccount10", "sonaccount08", true, true); - vote_tx = con.wallet_api_ptr->vote_for_son("sonaccount11", "sonaccount09", true, true); - vote_tx = con.wallet_api_ptr->vote_for_son("sonaccount12", "sonaccount10", true, true); - vote_tx = con.wallet_api_ptr->vote_for_son("sonaccount13", "sonaccount11", true, true); - vote_tx = con.wallet_api_ptr->vote_for_son("sonaccount14", "sonaccount12", true, true); - vote_tx = con.wallet_api_ptr->vote_for_son("sonaccount15", "sonaccount13", true, true); - vote_tx = con.wallet_api_ptr->vote_for_son("sonaccount16", "sonaccount14", true, true); + + for(unsigned int i = 0; i < son_number - 1; i++) + { + std::string name1 = "sonaccount" + fc::to_pretty_string(i + 2); + std::string name2 = "sonaccount" + fc::to_pretty_string(i); + vote_tx = con.wallet_api_ptr->vote_for_son(name1, name2, true, true); + } gpo = con.wallet_api_ptr->get_global_properties(); BOOST_TEST_MESSAGE("gpo: " << gpo.active_sons.size()); - BOOST_CHECK(generate_maintenance_block(app1)); + BOOST_CHECK(generate_maintenance_block()); gpo = con.wallet_api_ptr->get_global_properties(); BOOST_TEST_MESSAGE("gpo: " << gpo.active_sons.size()); - vote_tx = con.wallet_api_ptr->vote_for_son("sonaccount04", "sonaccount01", true, true); - vote_tx = con.wallet_api_ptr->vote_for_son("sonaccount05", "sonaccount02", true, true); - vote_tx = con.wallet_api_ptr->vote_for_son("sonaccount06", "sonaccount03", true, true); - vote_tx = con.wallet_api_ptr->vote_for_son("sonaccount07", "sonaccount04", true, true); - vote_tx = con.wallet_api_ptr->vote_for_son("sonaccount08", "sonaccount05", true, true); - vote_tx = con.wallet_api_ptr->vote_for_son("sonaccount09", "sonaccount06", true, true); - vote_tx = con.wallet_api_ptr->vote_for_son("sonaccount10", "sonaccount07", true, true); - vote_tx = con.wallet_api_ptr->vote_for_son("sonaccount11", "sonaccount08", true, true); - vote_tx = con.wallet_api_ptr->vote_for_son("sonaccount12", "sonaccount09", true, true); - vote_tx = con.wallet_api_ptr->vote_for_son("sonaccount13", "sonaccount10", true, true); - vote_tx = con.wallet_api_ptr->vote_for_son("sonaccount14", "sonaccount11", true, true); - vote_tx = con.wallet_api_ptr->vote_for_son("sonaccount15", "sonaccount12", true, true); - vote_tx = con.wallet_api_ptr->vote_for_son("sonaccount16", "sonaccount13", true, true); + + for(unsigned int i = 0; i < son_number - 2; i++) + { + std::string name1 = "sonaccount" + fc::to_pretty_string(i + 3); + std::string name2 = "sonaccount" + fc::to_pretty_string(i); + vote_tx = con.wallet_api_ptr->vote_for_son(name1, name2, true, true); + } gpo = con.wallet_api_ptr->get_global_properties(); BOOST_TEST_MESSAGE("gpo: " << gpo.active_sons.size()); - BOOST_CHECK(generate_maintenance_block(app1)); + BOOST_CHECK(generate_maintenance_block()); BOOST_CHECK(gpo.active_sons.size() == 15);