/** * @dataProvider errorRequestsProvider */ public function testGetErrorRequests(array $logs, $expected) { $this->logAdapter->expects($this->once())->method('getLogs')->willReturn($logs); $this->requestFormatter->expects($this->atMost(count($logs)))->method('format'); $this->responseFormatter->expects($this->atMost(count($logs)))->method('format'); $response = $this->getMockBuilder('Symfony\\Component\\HttpFoundation\\Response')->getMock(); $request = $this->getMockBuilder('Symfony\\Component\\HttpFoundation\\Request')->getMock(); $this->dataCollector->collect($request, $response); $this->assertCount($expected, $this->dataCollector->getErrorRequests()); }
/** * @dataProvider logsProvider * @SuppressWarnings(PHPMD.UnusedFormalParameter) */ public function testClearLogs(array $input, array $expected) { $this->assertCount(0, $this->logAdapter->getLogs()); foreach ($input as $data) { call_user_func_array([$this->logAdapter, 'log'], $data); } $this->assertCount(count($input), $this->logAdapter->getLogs()); $this->logAdapter->clearLogs(); $this->assertCount(0, $this->logAdapter->getLogs()); }
/** * {@inheritdoc} */ public function collect(Request $request, Response $response, \Exception $exception = null) { foreach ($this->logAdapter->getLogs() as $log) { $requestId = spl_object_hash($log['extras']['request']); if (isset($this->data['requests'][$requestId])) { continue; } /** @var RequestInterface $guzzleRequest */ $guzzleRequest = $log['extras']['request']; /** @var ResponseInterface $guzzleResponse */ $guzzleResponse = $log['extras']['response']; $datum['message'] = $log['message']; $datum['time'] = $log['extras']['time']; $datum['request'] = $this->requestFormatter->format($guzzleRequest); $datum['response'] = $this->responseFormatter->format($guzzleRequest, $guzzleResponse); $datum['is_error'] = $this->isError($guzzleResponse); $datum['status_code'] = $guzzleResponse->getStatusCode(); $datum['method'] = $guzzleRequest->getMethod(); $this->data['requests'][$requestId] = $datum; } }