public function __construct(Transaction $transaction, Exception $previous = null) { $this->transaction = $transaction; $message = $previous ? $previous->getMessage() : 'Unknown error'; $status = $previous ? $previous->getCode() : 0; if ($error = $transaction->getError()) { $message = $error; } if ($transaction->getResponse() && ($statusCode = $transaction->getResponse()->getStatusCode())) { $status = $statusCode; } parent::__construct($message, $status, $previous); }
/** * @param RequestInterface $request * @return $this * @throws HttpException */ protected function sendViaMock($request) { $transaction = null; try { $responseMock = $this->mockRegistry->find($request); if (empty($responseMock)) { throw new Exception(sprintf('Mock for "%s" has not been found in registry', $request->getUri())); } $responseBody = $responseMock->getResponse($request); $transaction = new Transaction($request, $responseBody); if ($transaction->isOK()) { return $transaction; } else { throw new Exception('Response has unsuccessful status'); } } catch (Exception $e) { // The following means that request failed completely if (empty($transaction)) { $transaction = new Transaction($request); } throw new HttpException($transaction, $e); } }
/** * @expectedException \Exception * @expectedExceptionMessage JSON Error: Result is empty after parsing */ public function testGetJsonWithEmptyJSON() { $r = new Transaction(null, "content-type: application/json\n\nnull", 200); $r->getJson(); }