コード例 #1
0
 /**
  * {@inheritdoc}
  */
 public function copy($path, $newpath)
 {
     $response = $this->client->copy($path, $newpath);
     $responseContent = json_decode((string) $response->getBody());
     $flysystemMetadata = new FlysystemMetadata(FlysystemMetadata::TYPE_FILE, $newpath);
     $this->updateFlysystemMetadataFromResponseContent($flysystemMetadata, $responseContent);
     return $flysystemMetadata->toArray();
 }
コード例 #2
0
 /**
  * @group copy
  */
 public function testCopy()
 {
     $client = $this->getMockBuilder('\\GuzzleHttp\\Client')->getMock();
     $accessToken = '123456789';
     $assertRequestCopy = function ($request) use($accessToken) {
         return $request instanceof Request && $request->getMethod() == 'POST' && $request->getUri()->getHost() == 'api.onedrive.com' && $request->getUri()->getPath() == '/v1.0/drive/root:/source.pdf:/action.copy' && ($request->getHeader('authorization') == ['bearer ' . $accessToken] && $request->getHeader('content-type') == ['application/json'] && $request->getHeader('prefer') == ['respond-async']);
     };
     $responseCopy = new Response(202, ['Location' => 'http://example.org/monitor/some_url']);
     $assertRequestMonitor = function ($request) use($accessToken) {
         return $request instanceof Request && $request->getMethod() == 'GET' && $request->getUri()->getHost() == 'example.org' && $request->getUri()->getPath() == '/monitor/some_url' && $request->getHeader('authorization') == ['bearer ' . $accessToken];
     };
     $responseMonitor = new Response(303);
     $assertRequestMetadata = function ($request) use($accessToken) {
         return $request instanceof Request && $request->getMethod() == 'GET' && $request->getUri()->getHost() == 'api.onedrive.com' && $request->getUri()->getPath() == '/v1.0/drive/root:/folder/destination.pdf' && $request->getHeader('authorization') == ['bearer ' . $accessToken] && (string) $request->getBody() == '';
     };
     $responseMetadata = $this->getResponseWithFileMetadata();
     $client->expects($this->exactly(3))->method('send')->withConsecutive([$this->callback($assertRequestCopy)], [$this->callback($assertRequestMonitor)], [$this->callback($assertRequestMetadata)])->willReturn($responseCopy, $responseMonitor, $responseMetadata);
     $oneDriveClient = new OneDriveClient($accessToken, $client);
     $response = $oneDriveClient->copy('source.pdf', 'folder/destination.pdf');
     $this->assertEquals($responseMetadata, $response);
 }