Symfony\Component\Filesystem\Tests\FilesystemTest::testMirrorCopiesFilesAndDirectoriesRecursively PHP Method

testMirrorCopiesFilesAndDirectoriesRecursively() public method

    public function testMirrorCopiesFilesAndDirectoriesRecursively()
    {
        $sourcePath = $this->workspace . DIRECTORY_SEPARATOR . 'source' . DIRECTORY_SEPARATOR;
        $directory = $sourcePath . 'directory' . DIRECTORY_SEPARATOR;
        $file1 = $directory . 'file1';
        $file2 = $sourcePath . 'file2';
        mkdir($sourcePath);
        mkdir($directory);
        file_put_contents($file1, 'FILE1');
        file_put_contents($file2, 'FILE2');
        $targetPath = $this->workspace . DIRECTORY_SEPARATOR . 'target' . DIRECTORY_SEPARATOR;
        $this->filesystem->mirror($sourcePath, $targetPath);
        $this->assertTrue(is_dir($targetPath));
        $this->assertTrue(is_dir($targetPath . 'directory'));
        $this->assertFileEquals($file1, $targetPath . 'directory' . DIRECTORY_SEPARATOR . 'file1');
        $this->assertFileEquals($file2, $targetPath . 'file2');
        $this->filesystem->remove($file1);
        $this->filesystem->mirror($sourcePath, $targetPath, null, array('delete' => false));
        $this->assertTrue($this->filesystem->exists($targetPath . 'directory' . DIRECTORY_SEPARATOR . 'file1'));
        $this->filesystem->mirror($sourcePath, $targetPath, null, array('delete' => true));
        $this->assertFalse($this->filesystem->exists($targetPath . 'directory' . DIRECTORY_SEPARATOR . 'file1'));
        file_put_contents($file1, 'FILE1');
        $this->filesystem->mirror($sourcePath, $targetPath, null, array('delete' => true));
        $this->assertTrue($this->filesystem->exists($targetPath . 'directory' . DIRECTORY_SEPARATOR . 'file1'));
        $this->filesystem->remove($directory);
        $this->filesystem->mirror($sourcePath, $targetPath, null, array('delete' => true));
        $this->assertFalse($this->filesystem->exists($targetPath . 'directory'));
        $this->assertFalse($this->filesystem->exists($targetPath . 'directory' . DIRECTORY_SEPARATOR . 'file1'));
    }
FilesystemTest