Fixes after Fabian review. Added tests for non proposal delete operations.
Added logic for checking of sport and event existence before its updating.
This commit is contained in:
parent
afaaa950a2
commit
3295953127
5 changed files with 48 additions and 6 deletions
|
|
@ -101,6 +101,10 @@ void_result event_group_update_evaluator::do_apply(const event_group_update_oper
|
||||||
void_result event_group_delete_evaluator::do_evaluate(const event_group_delete_operation& op)
|
void_result event_group_delete_evaluator::do_evaluate(const event_group_delete_operation& op)
|
||||||
{ try {
|
{ try {
|
||||||
FC_ASSERT(trx_state->_is_proposed_trx);
|
FC_ASSERT(trx_state->_is_proposed_trx);
|
||||||
|
|
||||||
|
//check for event group existence
|
||||||
|
_event_group = &op.event_group_id(db());
|
||||||
|
|
||||||
return void_result();
|
return void_result();
|
||||||
} FC_CAPTURE_AND_RETHROW( (op) ) }
|
} FC_CAPTURE_AND_RETHROW( (op) ) }
|
||||||
|
|
||||||
|
|
@ -108,10 +112,8 @@ void_result event_group_delete_evaluator::do_apply(const event_group_delete_oper
|
||||||
{ try {
|
{ try {
|
||||||
database& _db = db();
|
database& _db = db();
|
||||||
|
|
||||||
const auto& event_group = _db.get(op.event_group_id);
|
_event_group->cancel_events(_db);
|
||||||
event_group.cancel_events(_db);
|
_db.remove(*_event_group);
|
||||||
|
|
||||||
_db.remove(event_group);
|
|
||||||
return void_result();
|
return void_result();
|
||||||
} FC_CAPTURE_AND_RETHROW( (op) ) }
|
} FC_CAPTURE_AND_RETHROW( (op) ) }
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -29,6 +29,8 @@
|
||||||
|
|
||||||
namespace graphene { namespace chain {
|
namespace graphene { namespace chain {
|
||||||
|
|
||||||
|
class event_group_object;
|
||||||
|
|
||||||
class event_group_create_evaluator : public evaluator<event_group_create_evaluator>
|
class event_group_create_evaluator : public evaluator<event_group_create_evaluator>
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
|
@ -60,5 +62,8 @@ namespace graphene { namespace chain {
|
||||||
|
|
||||||
void_result do_evaluate( const event_group_delete_operation& o );
|
void_result do_evaluate( const event_group_delete_operation& o );
|
||||||
void_result do_apply( const event_group_delete_operation& o );
|
void_result do_apply( const event_group_delete_operation& o );
|
||||||
|
|
||||||
|
private:
|
||||||
|
const event_group_object* _event_group = nullptr;
|
||||||
};
|
};
|
||||||
} } // graphene::chain
|
} } // graphene::chain
|
||||||
|
|
|
||||||
|
|
@ -29,6 +29,8 @@
|
||||||
|
|
||||||
namespace graphene { namespace chain {
|
namespace graphene { namespace chain {
|
||||||
|
|
||||||
|
class sport_object;
|
||||||
|
|
||||||
class sport_create_evaluator : public evaluator<sport_create_evaluator>
|
class sport_create_evaluator : public evaluator<sport_create_evaluator>
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
|
@ -54,6 +56,9 @@ namespace graphene { namespace chain {
|
||||||
|
|
||||||
void_result do_evaluate( const sport_delete_operation& o );
|
void_result do_evaluate( const sport_delete_operation& o );
|
||||||
void_result do_apply( const sport_delete_operation& o );
|
void_result do_apply( const sport_delete_operation& o );
|
||||||
|
|
||||||
|
private:
|
||||||
|
const sport_object* _sport = nullptr;
|
||||||
};
|
};
|
||||||
|
|
||||||
} } // graphene::chain
|
} } // graphene::chain
|
||||||
|
|
|
||||||
|
|
@ -75,6 +75,10 @@ void_result sport_update_evaluator::do_apply(const sport_update_operation& op)
|
||||||
void_result sport_delete_evaluator::do_evaluate( const sport_delete_operation& op )
|
void_result sport_delete_evaluator::do_evaluate( const sport_delete_operation& op )
|
||||||
{ try {
|
{ try {
|
||||||
FC_ASSERT(trx_state->_is_proposed_trx);
|
FC_ASSERT(trx_state->_is_proposed_trx);
|
||||||
|
|
||||||
|
//check for sport existence
|
||||||
|
_sport = &op.sport_id(db());
|
||||||
|
|
||||||
return void_result();
|
return void_result();
|
||||||
} FC_CAPTURE_AND_RETHROW( (op) ) }
|
} FC_CAPTURE_AND_RETHROW( (op) ) }
|
||||||
|
|
||||||
|
|
@ -91,7 +95,6 @@ void_result sport_delete_evaluator::do_apply( const sport_delete_operation& op )
|
||||||
{
|
{
|
||||||
event_group_it->cancel_events(_db);
|
event_group_it->cancel_events(_db);
|
||||||
event_groups_to_remove.push_back(&*event_group_it);
|
event_groups_to_remove.push_back(&*event_group_it);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
for (auto event_group: event_groups_to_remove)
|
for (auto event_group: event_groups_to_remove)
|
||||||
|
|
@ -99,7 +102,7 @@ void_result sport_delete_evaluator::do_apply( const sport_delete_operation& op )
|
||||||
_db.remove(*event_group);
|
_db.remove(*event_group);
|
||||||
}
|
}
|
||||||
|
|
||||||
_db.remove(_db.get(op.sport_id));
|
_db.remove(*_sport);
|
||||||
|
|
||||||
return void_result();
|
return void_result();
|
||||||
} FC_CAPTURE_AND_RETHROW( (op) ) }
|
} FC_CAPTURE_AND_RETHROW( (op) ) }
|
||||||
|
|
|
||||||
|
|
@ -1547,6 +1547,19 @@ BOOST_AUTO_TEST_CASE(sport_delete_test)
|
||||||
} FC_LOG_AND_RETHROW()
|
} FC_LOG_AND_RETHROW()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
BOOST_AUTO_TEST_CASE(sport_delete_test_not_proposal)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
CREATE_ICE_HOCKEY_BETTING_MARKET(false, 0);
|
||||||
|
|
||||||
|
sport_delete_operation sport_delete_op;
|
||||||
|
sport_delete_op.sport_id = ice_hockey.id;
|
||||||
|
|
||||||
|
BOOST_CHECK_THROW(force_operation_by_witnesses(sport_delete_op), fc::exception);
|
||||||
|
} FC_LOG_AND_RETHROW()
|
||||||
|
}
|
||||||
|
|
||||||
BOOST_AUTO_TEST_CASE(event_group_update_test)
|
BOOST_AUTO_TEST_CASE(event_group_update_test)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
|
|
@ -1646,6 +1659,20 @@ BOOST_AUTO_TEST_CASE(event_group_delete_test)
|
||||||
} FC_LOG_AND_RETHROW()
|
} FC_LOG_AND_RETHROW()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
BOOST_AUTO_TEST_CASE(event_group_delete_test_not_proposal)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
CREATE_ICE_HOCKEY_BETTING_MARKET(false, 0);
|
||||||
|
|
||||||
|
event_group_delete_operation event_group_delete_op;
|
||||||
|
event_group_delete_op.event_group_id = nhl.id;
|
||||||
|
|
||||||
|
BOOST_CHECK_THROW(force_operation_by_witnesses(event_group_delete_op), fc::exception);
|
||||||
|
} FC_LOG_AND_RETHROW()
|
||||||
|
}
|
||||||
|
|
||||||
BOOST_AUTO_TEST_CASE(event_update_test)
|
BOOST_AUTO_TEST_CASE(event_update_test)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue