Разрешает ли vfsStream отсоединять пустой каталог? - PullRequest
2 голосов
/ 24 октября 2011

Мой модульный тест пытается удалить пустой каталог.В тестируемом классе используется 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 Ответ

0 голосов
/ 26 октября 2011

Это ошибка в vfsStream до 0.10.0, которая позволяет unlink() для каталогов.Ошибка исправлена ​​в следующем выпуске 0.11.0, см. https://github.com/mikey179/vfsStream/issues/23. Теперь будет выдано предупреждение в случае применения unlink() к каталогу.

...