/**
  * @return array
  */
 public function generateFile_dataProvider()
 {
     $sm = new StateMachine(new EventDispatcher());
     $sm->addTransition(new StateMachine\Transition\GenericTransition('foo'), new StateMachine\State('test'), new StateMachine\State('test2'));
     $sm->addTransition(new StateMachine\Transition\GenericTransition('foo2'), new StateMachine\State('test2'), new StateMachine\State('test'));
     $sm2 = new StateMachine(new EventDispatcher());
     $sm2->addTransition(new StateMachine\Transition\GenericTransition('foo'), new StateMachine\State('test'), new StateMachine\State('test2'));
     $sm2->addTransition(new StateMachine\Transition\GenericTransition('foo2'), new StateMachine\State('test2'), new StateMachine\State('test3'));
     $sm2->addTransition(new StateMachine\Transition\GenericTransition('foo2'), new StateMachine\State('test'), new StateMachine\State('test3'));
     return array(array($sm), array($sm), array($this->initOrderStateMachine()));
 }
Пример #2
0
 /**
  * @param StateMachine $stateMachine
  * @return string
  */
 public function generateDotFileData(StateMachine $stateMachine)
 {
     $this->nodeLabels = array();
     $this->nodeIndex = 'a';
     $return = "digraph {\n\t\t\t\r\n";
     $states = $stateMachine->getStates();
     $object = new DummyStateObject();
     foreach ($states as $state) {
         $object->setState($state);
         $nextStates = $stateMachine->getNextStates($object);
         foreach ($nextStates as $nextState) {
             $transitionName = $stateMachine->getTransitionName($state, $nextState);
             $return .= $this->getNodeIndex($state->getName()) . ' -> ' . $this->getNodeIndex($nextState->getName()) . ' [label="' . $transitionName . '"]' . ";\r\n";
         }
     }
     $return .= "\r\n";
     foreach ($this->nodeLabels as $nodeIndex => $nodeLabel) {
         $return .= '"' . $nodeIndex . '" [label="' . $nodeLabel . '"]' . "\r\n";
     }
     $return .= "\r\n";
     $return .= '}';
     return $return;
 }