diff --git a/libraries/chain/sport_evaluator.cpp b/libraries/chain/sport_evaluator.cpp index af7373aa..b9d6287d 100644 --- a/libraries/chain/sport_evaluator.cpp +++ b/libraries/chain/sport_evaluator.cpp @@ -57,7 +57,7 @@ void_result sport_update_evaluator::do_evaluate(const sport_update_operation& op return void_result(); } FC_CAPTURE_AND_RETHROW( (op) ) } - void_result sport_update_evaluator::do_apply(const sport_update_operation& op) +void_result sport_update_evaluator::do_apply(const sport_update_operation& op) { try { database& _db = db(); _db.modify( @@ -71,10 +71,17 @@ void_result sport_update_evaluator::do_evaluate(const sport_update_operation& op } FC_CAPTURE_AND_RETHROW( (op) ) } -void_result sport_delete_evaluator::do_evaluate( const sport_delete_operation& o ) -{} +void_result sport_delete_evaluator::do_evaluate( const sport_delete_operation& op ) +{ try { + FC_ASSERT(trx_state->_is_proposed_trx); + return void_result(); +} FC_CAPTURE_AND_RETHROW( (op) ) } -void_result sport_delete_evaluator::do_apply( const sport_delete_operation& o ) -{} +void_result sport_delete_evaluator::do_apply( const sport_delete_operation& op ) +{ try { + database& _db = db(); + _db.remove(_db.get(op.sport_id)); + return void_result(); +} FC_CAPTURE_AND_RETHROW( (op) ) } } } // graphene::chain diff --git a/tests/betting/betting_tests.cpp b/tests/betting/betting_tests.cpp index 4b587977..bf27aec3 100644 --- a/tests/betting/betting_tests.cpp +++ b/tests/betting/betting_tests.cpp @@ -1143,7 +1143,7 @@ BOOST_AUTO_TEST_CASE(delayed_bets_test) // test live betting // bob's bet will still be delayed, so the active order book will only contain alice's bet first_bet_in_market = bet_odds_idx.lower_bound(std::make_tuple(capitals_win_market.id)); last_bet_in_market = bet_odds_idx.upper_bound(std::make_tuple(capitals_win_market.id)); - edump((std::distance(first_bet_in_market, last_bet_in_market))); +// edump((std::distance(first_bet_in_market, last_bet_in_market))); BOOST_CHECK(std::distance(first_bet_in_market, last_bet_in_market) == 1); for (const auto& bet : boost::make_iterator_range(first_bet_in_market, last_bet_in_market)) edump((bet)); @@ -1527,6 +1527,18 @@ BOOST_AUTO_TEST_CASE(sport_update_test) } FC_LOG_AND_RETHROW() } +BOOST_AUTO_TEST_CASE(sport_delete_test) +{ + try + { + ACTORS( (alice) ); + CREATE_ICE_HOCKEY_BETTING_MARKET(false, 0); + delete_sport(ice_hockey.id); + const auto& sport_by_id = db.get_index_type().indices().get(); + BOOST_CHECK(sport_by_id.end() == sport_by_id.find(ice_hockey.id)); + } FC_LOG_AND_RETHROW() +} + BOOST_AUTO_TEST_CASE(event_group_update_test) { try diff --git a/tests/common/database_fixture.cpp b/tests/common/database_fixture.cpp index 28c44564..3b82eef9 100644 --- a/tests/common/database_fixture.cpp +++ b/tests/common/database_fixture.cpp @@ -1300,6 +1300,13 @@ void database_fixture::update_sport(sport_id_type sport_id, internationalized_st process_operation_by_witnesses(sport_update_op); } FC_CAPTURE_AND_RETHROW( (sport_id)(name) ) } +void database_fixture::delete_sport(sport_id_type sport_id) +{ try { + sport_delete_operation sport_delete_op; + sport_delete_op.sport_id = sport_id; + process_operation_by_witnesses(sport_delete_op); +} FC_CAPTURE_AND_RETHROW( (sport_id) ) } + const event_group_object& database_fixture::create_event_group(internationalized_string_type name, sport_id_type sport_id) { try { event_group_create_operation event_group_create_op; @@ -1310,7 +1317,6 @@ const event_group_object& database_fixture::create_event_group(internationalized return *event_group_index.rbegin(); } FC_CAPTURE_AND_RETHROW( (name) ) } - void database_fixture::update_event_group(event_group_id_type event_group_id, fc::optional sport_id, fc::optional name) diff --git a/tests/common/database_fixture.hpp b/tests/common/database_fixture.hpp index a3aa3eec..90a051a2 100644 --- a/tests/common/database_fixture.hpp +++ b/tests/common/database_fixture.hpp @@ -304,6 +304,7 @@ struct database_fixture { void set_is_proposed_trx(operation op); const sport_object& create_sport(internationalized_string_type name); void update_sport(sport_id_type sport_id, internationalized_string_type name); + void delete_sport(sport_id_type sport_id); const event_group_object& create_event_group(internationalized_string_type name, sport_id_type sport_id); void update_event_group(event_group_id_type event_group_id, fc::optional sport_id,