Exemplo n.º 1
0
 public static function boot()
 {
     parent::boot();
     static::registerDefaultEvents();
     static::creating(function ($model) {
         $model->beforeCreate();
     });
 }
 public function testOrderingOfCallbacks()
 {
     DynamicModel::clearDynamicMethods();
     $machine = with(new StateMachine('DynamicModel'))->setStateAttributeName('status');
     $machine->addState('stopped', ['onExit' => function ($obj) {
         $obj->callback_did_occur = $obj->callback_did_occur . 'Oes';
     }]);
     $machine->addState('running', ['onEnter' => function ($obj) {
         $obj->callback_did_occur = $obj->callback_did_occur . 'Oer';
     }]);
     $machine->addEvent('start', ['before' => function ($obj) {
         $obj->callback_did_occur = $obj->callback_did_occur . 'Bs';
     }, 'after' => function ($obj) {
         $obj->callback_did_occur = $obj->callback_did_occur . 'As';
     }])->transitions('stopped', 'running', ['onTransition' => function ($obj) {
         $obj->callback_did_occur = $obj->callback_did_occur . 'Ot';
     }]);
     $obj = new DynamicModel();
     $obj->status = 'stopped';
     $obj->start();
     $this->assertEquals('BsOesOtOerAs', $obj->callback_did_occur);
 }