/**
  * @param TestResult $result
  * @param $resultCode
  *
  * @return Step
  */
 protected function createStep(TestResult $result, $resultCode)
 {
     $step = new Step();
     $step->setResult($result);
     $step->setResultCode($resultCode);
     return $step;
 }
 /**
  * @param Node\Step  $step
  * @param TestResult $result
  */
 protected function processStep(Node\Step $step, TestResult $result)
 {
     // Pended
     if (is_a($result, Result\UndefinedStepResult::class)) {
         $this->pendingSteps[] = $step;
         return;
     }
     // Skipped
     if (is_a($result, Result\SkippedStepResult::class)) {
         $step->setDefinition($result->getStepDefinition());
         $this->skippedSteps[] = $step;
         return;
     }
     // Failed or passed
     if (is_a($result, Result\ExecutedStepResult::class)) {
         $step->setDefinition($result->getStepDefinition());
         $exception = $result->getException();
         if ($exception) {
             $step->setException($exception->getMessage());
             $this->failedSteps[] = $step;
         } else {
             $this->passedSteps[] = $step;
         }
         return;
     }
 }
 /**
  * @param Node\Step $step
  *
  * @return array
  */
 protected function processStep(Node\Step $step)
 {
     $result = ['keyword' => $step->getKeyword(), 'name' => $step->getName(), 'line' => $step->getLine(), 'match' => $step->getMatch(), 'result' => $step->getProcessedResult()];
     if (count($step->getEmbeddings())) {
         $result['embeddings'] = $step->getEmbeddings();
     }
     return $result;
 }