public function testRecursiveCopy()
{
$tmp = sys_get_temp_dir();
$basePath = $tmp . "/n98_testdir";
$folder1 = $basePath . "/folder1";
$folder2 = $basePath . "/folder2";
$file1 = $folder1 . "/file1.txt";
$file2 = $folder2 . "/file2.txt";
$dest = sys_get_temp_dir() . "/n98_copy_dest";
@mkdir($folder1, 0777, true);
@mkdir($folder2, 0777, true);
touch($file1);
touch($file2);
$this->fileSystem->recursiveCopy($basePath, $dest);
$this->assertFileExists($dest . "/folder1/file1.txt");
$this->assertFileExists($dest . "/folder2/file2.txt");
//cleanup
unlink($file1);
unlink($file2);
rmdir($folder1);
rmdir($folder2);
rmdir($basePath);
unlink($dest . "/folder1/file1.txt");
unlink($dest . "/folder2/file2.txt");
rmdir($dest . "/folder1");
rmdir($dest . "/folder2");
rmdir($dest);
$this->assertFileNotExists($dest . "/folder1/file1.txt");
$this->assertFileNotExists($dest);
is_dir($tmp . '/a') || mkdir($tmp . '/a');
touch($tmp . '/file1.txt');
$this->fileSystem->recursiveCopy($tmp . '/a', $tmp . '/file1.txt');
unlink($tmp . '/file1.txt');
rmdir($tmp . '/a');
}