function CopyTest::testExistingError
Tests that copying over an existing file fails when instructed to do so.
@covers ::copy
      
    
File
- 
              core/modules/ file/ tests/ src/ Kernel/ CopyTest.php, line 156 
Class
- CopyTest
- Tests the file copy function.
Namespace
Drupal\Tests\file\KernelCode
public function testExistingError() : void {
  $contents = $this->randomMachineName(10);
  $source = $this->createFile();
  $target = $this->createFile(NULL, $contents);
  $this->assertDifferentFile($source, $target);
  // Clone the object so we don't have to worry about the function changing
  // our reference copy.
  try {
    $result = $this->fileRepository
      ->copy(clone $source, $target->getFileUri(), FileExists::Error);
    $this->fail('expected FileExistsException');
  } catch (FileExistsException $e) {
    $this->assertStringContainsString("could not be copied because a file by that name already exists in the destination directory", $e->getMessage());
  }
  // Check the contents were not changed.
  $this->assertEquals($contents, file_get_contents($target->getFileUri()), 'Contents of file were not altered.');
  // Check that the correct hooks were called.
  $this->assertFileHooksCalled([]);
  $this->assertFileUnchanged($source, File::load($source->id()));
  $this->assertFileUnchanged($target, File::load($target->id()));
}Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.
