public function testIncompleteSecondBuild()
 {
     $this->setExpectedException(VerificationError::CLASS, 'Required state machine name is missing. Make sure to call setStateMachineName.');
     $states = [new State('editing', StateInterface::TYPE_INITIAL), new State('published', StateInterface::TYPE_FINAL)];
     $transiton = new Transition('editing', 'published');
     $builder = new StateMachineBuilder();
     $state_machine = $builder->setStateMachineName(self::MACHINE_NAME)->addStates($states)->addTransition($transiton, 'promote')->build();
     $builder->build();
 }
 /**
  * Verifies the builder's current state and builds a state machine off of it.
  *
  * @return Workflux\StateMachine\StateMachineInterface
  */
 public function build()
 {
     $state_machine_definition = $this->resolveStateMachineDefinition();
     $this->setStateMachineName($state_machine_definition['name']);
     if (isset($state_machine_definition['class'])) {
         $this->setStateMachineClass($state_machine_definition['class']);
     }
     foreach ($state_machine_definition['states'] as $state_name => $state_definition) {
         $this->addState($this->createState($state_definition));
         $this->addEventTransitions($state_definition);
         $this->addSequentialTransitions($state_definition);
     }
     return parent::build();
 }