/** * Проверяем работу предохранителя в рекурсивном удалении каталогов * * Явно нарушаем условия успешного выполнения метода, ожидаем исключение. При этом удаление не должно быть * выполнено. */ public function test_fuse_removeDir() { $this->expectException(FSException::class); $dirLevel4 = vfsStream::newDirectory('level4')->at($this->root->getChild('level1/level2/level3')); vfsStream::newFile('level4.txt')->withContent('level 4 from [delIt/], but 5 from the root path')->at($dirLevel4); $deepestChild = 'level1/level2/level3/level4/level4.txt'; $this->assertTrue($this->root->hasChild($deepestChild), 'Проверка предохранителя. Структура каталогов и файлов создана'); FS::removeDir($this->rootPath . '/level1', 3); $this->assertTrue($this->root->hasChild($deepestChild), 'Проверка предохранителя. Реальная вложенность больше заданной. Удаление не выполнено'); FS::removeDir($this->rootPath, 5); // от корня вложенность - 5, превышает допустимый максимум $this->assertTrue($this->root->hasChild($deepestChild), 'Проверка предохранителя. Требуемая вложенность больше максимально допустимой. Удаление не выполнено'); }