/** * Render the details of each failed request including the mismatching headers and body. * * @param ResultsRenderer $renderer * @return string */ public function render(ResultsRenderer $renderer) { $results = array_filter($this->result->getIterator()->getArrayCopy(), function (ResultInterface $result) { return $result instanceof FailureInterface; }); $output = ''; foreach ($results as $key => $request) { $output .= "\n"; $output .= $renderer->style(sprintf("Request %02d\n\n", $key + 1), ['bold', 'underline', 'green']); if (!$request instanceof CgiOutRequestFailure) { $output .= $renderer->renderResult($request); $output .= $renderer->lineBreak(); continue; } if ($request->headersDifferent()) { $output .= sprintf(" %s %s\n %s %s\n", $renderer->style("ACTUAL HEADERS:", ['bold', 'yellow']), $this->headers($request->getActualHeaders(), $renderer), $renderer->style("EXPECTED HEADERS:", ['bold', 'yellow']), $this->headers($request->getExpectedHeaders(), $renderer, false)); } if ($request->bodyDifferent()) { if ($request->headersAndBodyDifferent()) { $output .= $renderer->style(" * * * * * * * * *\n\n", ['green', 'bold']); } $output .= sprintf(" %s %s\n\n %s %s\n", $renderer->style("ACTUAL CONTENT:", ['bold', 'yellow']), $renderer->style(sprintf('"%s"', $request->getActualOutput()), 'red'), $renderer->style("EXPECTED CONTENT:", ['bold', 'yellow']), $renderer->style(sprintf('"%s"', $request->getExpectedOutput()), 'default')); } $output .= $renderer->lineBreak(); } return $output . "\n"; }
public function testIsSuccessful() { $request = new CgiOutRequestFailure($this->getMock(RequestInterface::class), '', '', [], []); $cgiOutResult = new CgiOutResult('Some Check', [$request]); $this->assertFalse($cgiOutResult->isSuccessful()); $cgiOutResult = new CgiOutResult('Some Check', [new Success('Successful Check')]); $this->assertTrue($cgiOutResult->isSuccessful()); $cgiOutResult->add($request); $this->assertFalse($cgiOutResult->isSuccessful()); }