Metabor\Statemachine\Process::merge PHP Method

merge() public method

See also: MetaborStd\MergeableInterface::merge()
public merge ( $source )
    public function merge($source)
    {
        $merger = $this->getStateCollectionMerger();
        $merger->merge($source);
    }

Usage Example

 /**
  *
  */
 public function testTriggerEventIfStatusIsChangedAndNewStateHasRegisteredEvent()
 {
     $process = new Process('process_name', new State('initinal'));
     $collection = new StateCollection();
     $helper = new SetupHelper($collection);
     $helper->findOrCreateTransition('initinal', 'second', 'go');
     $helper->findOrCreateTransition('second', 'error', 'error');
     $eventName = 'eventName';
     $helper->findOrCreateTransition('second', 'final', $eventName);
     $process->merge($collection);
     $subject = new \stdClass();
     $statemachine = new Statemachine($subject, $process);
     $statemachine->attach(new OnEnterObserver($eventName));
     $statemachine->triggerEvent('go');
     $this->assertEquals($process->getState('final'), $statemachine->getCurrentState());
 }