for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
namespace Paraunit\TestResult;
use Paraunit\Parser\JSONLogFetcher;
use Paraunit\TestResult\Interfaces\PrintableTestResultInterface;
/**
* Class TestResultFactory
* @package Paraunit\TestResult
*/
class TestResultFactory
{
* @param \stdClass $log
* @return PrintableTestResultInterface
public function createFromLog(\stdClass $log)
if (property_exists($log, 'status') && $log->status === JSONLogFetcher::LOG_ENDING_STATUS) {
return new TestResultWithAbnormalTermination(
$log->test,
'Abnormal termination -- complete test output:'
);
}
if (! property_exists($log, 'message')) {
return new MuteTestResult();
if (property_exists($log, 'trace')) {
$result = new FullTestResult($log->test, $log->message);
$this->addTraceToResult($result, $log);
return $result;
return new TestResultWithMessage($log->test, $log->message);
* @param FullTestResult $result
private function addTraceToResult(FullTestResult $result, \stdClass $log)
foreach ($log->trace as $traceStep) {
$result->addTraceStep(new TraceStep($traceStep->file, $traceStep->line));