public function testGetTimeout() { $date = new \DateTime(); $event = $this->getMockBuilder('\\StateMachine\\EventInterface')->disableOriginalConstructor()->getMock(); $event->expects($this->any())->method('getName')->willReturn(Process::ON_TIME_OUT); $event->expects($this->any())->method('timeoutAt')->willReturn($date); $this->state->expects($this->any())->method('__toString')->willReturn('stateName'); $this->state->expects($this->any())->method('getName')->willReturn('stateName'); $this->state->expects($this->any())->method('getEvent')->willReturn($event); $this->payload->expects($this->any())->method('getState')->willReturn('stateName'); $this->payload->expects($this->any())->method('getIdentifier')->willReturn('identifier'); $process = new Process('processName', '\\stdClass', 'stateName', [$this->state]); $timeout = $process->getTimeout($this->payload, $date); $this->assertInstanceOf('\\StateMachine\\PayloadTimeout', $timeout); $this->assertEquals('stateName', $timeout->getState()); $this->assertEquals(Process::ON_TIME_OUT, $timeout->getEvent()); $this->assertEquals('identifier', $timeout->getIdentifier()); $this->assertEquals($date, $timeout->getExecutionDate()); }