Example #1
0
 /**
  * @expectedException \OpenCloud\Common\Error\BadResponseError
  */
 public function test_it_throws_exception_when_error()
 {
     $e = new BadResponseError();
     $e->setRequest(new Request('HEAD', 'foo'));
     $e->setResponse(new Response(500));
     $this->client->request('HEAD', 'foo', ['headers' => []])->shouldBeCalled()->willThrow($e);
     $this->assertFalse($this->service->containerExists('foo'));
 }
Example #2
0
 /**
  * Helper method responsible for constructing and returning {@see BadResponseError} exceptions.
  *
  * @param RequestInterface  $request  The faulty request
  * @param ResponseInterface $response The error-filled response
  *
  * @return BadResponseError
  */
 public function httpError(RequestInterface $request, ResponseInterface $response) : BadResponseError
 {
     $message = $this->header('HTTP Error');
     $message .= sprintf("The remote server returned a \"%d %s\" error for the following transaction:\n\n", $response->getStatusCode(), $response->getReasonPhrase());
     $message .= $this->header('Request');
     $message .= trim($this->str($request)) . PHP_EOL . PHP_EOL;
     $message .= $this->header('Response');
     $message .= trim($this->str($response)) . PHP_EOL . PHP_EOL;
     $message .= $this->header('Further information');
     $message .= $this->getStatusCodeMessage($response->getStatusCode());
     $message .= "Visit http://docs.php-opencloud.com/en/latest/http-codes for more information about debugging " . "HTTP status codes, or file a support issue on https://github.com/php-opencloud/openstack/issues.";
     $e = new BadResponseError($message);
     $e->setRequest($request);
     $e->setResponse($response);
     return $e;
 }
 public function test_it_chunks_according_to_provided_segment_size()
 {
     /** @var \GuzzleHttp\Psr7\Stream $stream */
     $stream = \GuzzleHttp\Psr7\stream_for(implode('', range('A', 'Z')));
     $data = ['name' => 'object', 'stream' => $stream, 'segmentSize' => 10, 'segmentPrefix' => 'objectPrefix', 'segmentContainer' => 'segments'];
     // check container creation
     $e = new BadResponseError();
     $e->setRequest(new Request('HEAD', 'segments'));
     $e->setResponse(new Response(404));
     $this->client->request('HEAD', 'segments', ['headers' => []])->shouldBeCalled()->willThrow($e);
     $this->setupMock('PUT', 'segments', null, [], new Response(201));
     $this->setupMock('PUT', 'segments/objectPrefix/1', $stream->read(10), [], new Response(201));
     $this->setupMock('PUT', 'segments/objectPrefix/2', $stream->read(10), [], new Response(201));
     $this->setupMock('PUT', 'segments/objectPrefix/3', $stream->read(10), [], new Response(201));
     $this->setupMock('PUT', 'test/object', null, ['X-Object-Manifest' => 'segments/objectPrefix'], new Response(201));
     $stream->rewind();
     $this->container->createLargeObject($data);
 }