Metabor\Statemachine\Observer\OnEnterObserver::update PHP Метод

update() публичный Метод

См. также: SplObserver::update()
public update ( SplSubject $stateMachine )
$stateMachine SplSubject
    public function update(\SplSubject $stateMachine)
    {
        if ($stateMachine instanceof StatemachineInterface && $stateMachine->getCurrentState()->hasEvent($this->eventName)) {
            $stateMachine->triggerEvent($this->eventName, $this->getStateMachineContext($stateMachine));
        }
    }

Usage Example

Пример #1
0
 /**
  *
  */
 public function testContextIsPassedToOnEnterEvent()
 {
     $context = new \ArrayObject(array('someContext'));
     $onEnterObserver = new OnEnterObserver('someEvent');
     $state = $this->getMockForAbstractClass('\\MetaborStd\\Statemachine\\StateInterface');
     $state->method('hasEvent')->with($this->equalTo('someEvent'))->willReturn(true);
     $stateMachine = $this->getMockBuilder('Metabor\\Statemachine\\Statemachine')->disableOriginalConstructor()->setMethods(array('getCurrentState', 'getCurrentContext', 'triggerEvent'))->getMock();
     $stateMachine->method('getCurrentState')->willReturn($state);
     $stateMachine->method('getCurrentContext')->willReturn($context);
     $stateMachine->expects($this->once())->method('triggerEvent')->with($this->equalTo('someEvent'), $this->equalTo($context));
     $onEnterObserver->update($stateMachine);
 }