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); }