public function test_before_destroy_returned_false_halts_execution() { VenueCB::$before_destroy = array('before_destroy_halt_execution'); ActiveRecord\Table::clear_cache('VenueCB'); $table = ActiveRecord\Table::load('VenueCB'); $i_ran = false; $table->callback->register('before_destroy', function ($model) use(&$i_ran) { $i_ran = true; }); $table->callback->register('after_destroy', function ($model) use(&$i_ran) { $i_ran = true; }); $v = VenueCB::find(1); $ret = $v->delete(); $this->assert_false($i_ran); $this->assert_false($ret); $this->assert_true(strpos(ActiveRecord\Table::load('VenueCB')->last_sql, 'DELETE') === false); }