Ejemplo n.º 1
0
 public function test_before_save_returned_false_halts_execution()
 {
     VenueCB::$before_update = array('before_update_halt_execution');
     ActiveRecord\Table::clear_cache('VenueCB');
     $table = ActiveRecord\Table::load('VenueCB');
     $i_ran = false;
     $i_should_have_ran = false;
     $table->callback->register('before_save', function ($model) use(&$i_should_have_ran) {
         $i_should_have_ran = true;
     });
     $table->callback->register('before_update', function ($model) use(&$i_ran) {
         $i_ran = true;
     });
     $table->callback->register('after_save', function ($model) use(&$i_ran) {
         $i_ran = true;
     });
     $v = VenueCB::find(1);
     $v->name .= 'test';
     $ret = $v->save();
     $this->assert_true($i_should_have_ran);
     $this->assert_false($i_ran);
     $this->assert_false($ret);
     $this->assert_true(strpos(ActiveRecord\Table::load('VenueCB')->last_sql, 'UPDATE') === false);
 }