public function testIsSuccessful()
 {
     $request = new RequestFailure($this->createMock(RequestInterface::class), '', '', [], []);
     $cgiResult = new CgiResult([$request]);
     $this->assertFalse($cgiResult->isSuccessful());
     $cgiResult = new CgiResult([new Success($this->createMock(RequestInterface::class))]);
     $this->assertTrue($cgiResult->isSuccessful());
     $cgiResult->add($request);
     $this->assertFalse($cgiResult->isSuccessful());
 }
 /**
  * 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->getResults(), function (ResultInterface $result) {
         return $result instanceof FailureInterface;
     });
     $output = '';
     if (count($results)) {
         $output .= $renderer->center("Some requests to your solution produced incorrect output!\n");
     }
     foreach ($results as $key => $request) {
         $output .= $renderer->lineBreak();
         $output .= "\n";
         $output .= $renderer->style(sprintf('Request %d', $key + 1), ['bold', 'underline', 'blue']);
         $output .= ' ' . $renderer->style(' FAILED ', ['bg_red', 'bold']) . "\n\n";
         $output .= "Request Details:\n\n";
         $output .= $this->requestRenderer->renderRequest($request->getRequest()) . "\n";
         $output .= $renderer->renderResult($request) . "\n";
     }
     return $output;
 }