/**
  * @param Response $response
  * @param string $clazz
  * @return mixed
  * @throws ClassCastException
  */
 protected function computeResponse($response, $clazz)
 {
     if (false === ($response->isContentType(Constants::CONTENT_TYPE_JSON) || $response->isContentType(Constants::CONTENT_TYPE_JSON_NXENTITY))) {
         if (Blob::className !== $clazz) {
             throw new ClassCastException(sprintf('Cannot cast %s as %s', Blob::className, $clazz));
         }
         return Blob::fromHttpResponse($response);
     }
     $body = $response->getBody(true);
     return $this->nuxeoClient->getConverter()->read($body, $clazz);
 }
 public function setX_NXVoidOperation($headerValue = '*')
 {
     $this->client->voidOperation(true);
     return $this;
 }
 public function testLoadBlob()
 {
     $client = new NuxeoClient($this->server->getUrl(), self::LOGIN, self::PASSWORD);
     $this->server->enqueue(array(new Response(200)));
     $client->automation('Blob.AttachOnDocument')->param('document', self::MYFILE_DOCPATH)->input(Blob::fromFile($this->getResource('user.json'), null))->execute(Blob::className);
     $requests = $this->server->getReceivedRequests(true);
     $this->assertCount(1, $requests);
     /** @var EntityEnclosingRequest $request */
     $request = $requests[0];
     $this->assertArrayHasKey('content-type', $request->getHeaders());
     $this->assertStringMatchesFormat('multipart/related;boundary=%s', $request->getHeader('content-type')->__toString());
 }