ParaTest\Logging\LogInterpreter::flattenCases PHP Method

flattenCases() public method

Flattens all cases into their respective suites
public flattenCases ( ) : array
return array $suites a collection of suites and their cases
    public function flattenCases()
    {
        $dict = array();
        foreach ($this->getCases() as $case) {
            if (!isset($dict[$case->file])) {
                $dict[$case->file] = new TestSuite($case->class, 0, 0, 0, 0, 0);
            }
            $dict[$case->file]->cases[] = $case;
            $dict[$case->file]->tests += 1;
            $dict[$case->file]->assertions += $case->assertions;
            $dict[$case->file]->failures += sizeof($case->failures);
            $dict[$case->file]->errors += sizeof($case->errors);
            $dict[$case->file]->time += $case->time;
            $dict[$case->file]->file = $case->file;
        }
        return array_values($dict);
    }

Usage Example

Example #1
0
 /**
  * Returns the xml structure the writer
  * will use
  *
  * @return string
  */
 public function getXml()
 {
     $suites = $this->interpreter->flattenCases();
     $root = $this->getSuiteRoot($suites);
     foreach ($suites as $suite) {
         $snode = $this->appendSuite($root, $suite);
         foreach ($suite->cases as $case) {
             $cnode = $this->appendCase($snode, $case);
         }
     }
     return $this->document->saveXML();
 }