Example #1
0
 /**
  * Test remove()
  *
  * @return void
  */
 public function testRemove()
 {
     $getAllResponse = new Response(200, ['Content-Type' => 'application/json'], file_get_contents(__DIR__ . '/../../assets/DirectoryTest_getAll.json'));
     $deleteResponse = new Response(200, ['Content-Type' => 'text/plain']);
     $mockedClient = $this->getMockBuilder('\\Seafile\\Client\\Http\\Client')->getMock();
     $mockedClient->method('getConfig')->willReturn('http://example.com/');
     $expectUri = 'http://example.com/repos/some-crazy-id/file/?p=test_dir';
     $expectParams = ['headers' => ['Accept' => "application/json"]];
     // @todo: Test more thoroughly. For example make sure request() gets called with POST twice (a, then b)
     $mockedClient->expects(self::any())->method('request')->with(self::logicalOr(self::equalTo('GET'), self::equalTo('DELETE')))->will(self::returnCallback(function ($method, $uri, $params) use($getAllResponse, $deleteResponse, $expectUri, $expectParams) {
         if ($method === 'GET') {
             return $getAllResponse;
         }
         if ($expectUri === $uri && $expectParams === $params) {
             return $deleteResponse;
         }
         return new Response(500);
     }));
     /**
      * @var Client $mockedClient
      */
     $fileResource = new File($mockedClient);
     $lib = new Library();
     $lib->id = 'some-crazy-id';
     self::assertTrue($fileResource->remove($lib, 'test_dir'));
 }