Разрешает ли vfsStream отсоединить пустой каталог?
Мой юнит тест пытается удалить пустой каталог. В тестируемом классе используется unlink (результат предыдущего теста). Если я пишу тот же код без vfsStream, я не могу удалить пустой каталог.
Модульный тест:
require 'vfsStream/vfsStream.php';
require '../Classes/Recursive/Delete.php';
class Recursive_Delete_Test extends PHPUnit_Framework_TestCase {
// More tests!
public function testShouldRemoveAnEmptyDirectory()
{
vfsStream::setup();
vfsStreamWrapper::getRoot()->addChild(vfsStream::newDirectory('dir'));
$recursiveDelete = new Recursive_Delete(vfsStream::url('root/dir'));
$recursiveDelete->delete();
$this->assertFileNotExists(vfsStream::url('root/dir'));
}
}
Код продукции:
class Recursive_Delete
{
private $_file;
public function __construct($file)
{
$this->_file = $file;
}
public function delete()
{
unlink($this->_file);
}
}
Это ошибка или я что-то упустил? Благодарю.
1 ответ
Это ошибка в vfsStream до 0.10.0, которая позволяет unlink()
по каталогам. Ошибка исправлена в следующем выпуске 0.11.0, см. https://github.com/mikey179/vfsStream/issues/23. Теперь предупреждение будет выдано в случае unlink()
применяется к каталогу.