public function test_before_create_returned_false_halts_execution() { VenueCB::$before_create = array('before_create_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_create', function ($model) use(&$i_ran) { $i_ran = true; }); $table->callback->register('after_create', function ($model) use(&$i_ran) { $i_ran = true; }); $v = VenueCB::find(1); $v->id = null; VenueCB::create($v->attributes()); $this->assert_true($i_should_have_ran); $this->assert_false($i_ran); $this->assert_true(strpos(ActiveRecord\Table::load('VenueCB')->last_sql, 'INSERT') === false); }
public function testBeforeCreateReturnedFalseHaltsExecution() { VenueCB::$beforeCreate = array('beforeCreateHaltExecution'); ActiveRecord\Table::clearCache('VenueCB'); $table = ActiveRecord\Table::load('VenueCB'); $iRan = false; $iShouldHaveRan = false; $table->callback->register('beforeSave', function ($model) use(&$iShouldHaveRan) { $iShouldHaveRan = true; }); $table->callback->register('beforeCreate', function ($model) use(&$iRan) { $iRan = true; }); $table->callback->register('afterCreate', function ($model) use(&$iRan) { $iRan = true; }); $v = VenueCB::find(1); $v->id = null; VenueCB::create($v->attributes()); $this->assertTrue($iShouldHaveRan); $this->assertFalse($iRan); $this->assertTrue(strpos(ActiveRecord\Table::load('VenueCB')->lastSql, 'INSERT') === false); }