/**
  * @since 0.1.0
  */
 public function copy($source, $destination, $overwrite = false, $mode = false)
 {
     if (!$overwrite && $this->exists($destination)) {
         return false;
     }
     $result = self::$mock->copy($source, $destination);
     if ($mode) {
         $this->chmod($destination, $mode);
     }
     return $result;
 }
 /**
  * Test copying a file to a existing destination file.
  *
  * @since 0.1.0
  */
 public function test_copy_file_to_existing_destination_file()
 {
     $this->assertTrue($this->mock->add_file('/test.txt', array('contents' => 'testing')));
     $this->assertTrue($this->mock->exists('/test.txt'));
     $this->assertEquals('testing', $this->mock->get_file_attr('/test.txt', 'contents'));
     $this->assertTrue($this->mock->add_file('/a.txt', array('contents' => 'abc')));
     $this->assertTrue($this->mock->exists('/a.txt'));
     $this->assertEquals('abc', $this->mock->get_file_attr('/a.txt', 'contents'));
     $this->assertTrue($this->mock->copy('/test.txt', '/a.txt'));
     $this->assertTrue($this->mock->exists('/test.txt'));
     $this->assertEquals('testing', $this->mock->get_file_attr('/test.txt', 'contents'));
     $this->assertTrue($this->mock->exists('/a.txt'));
     $this->assertEquals('testing', $this->mock->get_file_attr('/a.txt', 'contents'));
 }