public function testCanCallMakeDirectoryWithAnExistingFolder() { $file = new LocalFile(static::$dir . 'no_dir_file'); static::assertTrue(file_exists($file->getDirectory())); $retFile = $this->maker->makeDirectory($file); static::assertSame($retFile, $file); }
public function testWhenCreateDirReturnsFalseAnExceptionIsthrown() { $fileSystem = m::mock(FilesystemInterface::class); $directory = new FileNode($fileSystem, 'random/path'); $fileSystem->shouldReceive('createDir')->with($directory->getDirectory(), ['visibility' => 'public'])->andReturn(false); $this->expectException(MakedirectoryFailedException::class); $maker = new MakeDirectory(); $maker->makeDirectory($directory); }
/** * @param string $rootDir * @param int $numFiles * * @return FileNodeCollectionInterface */ private function createCollection($rootDir, $numFiles) { $mkDir = new MakeDirectory(); $collection = new FileNodeCollection(); for ($i = 1; $i <= $numFiles; $i++) { $file = new LocalFile(static::$dir . $rootDir . 'part_' . $i); $mkDir->makeDirectory($file); $file->put("File {$i} Line 1\nFile {$i} Line 2\nFile {$i} Line 3\n"); $collection->add($file); } return $collection; }
/** * @param FileNodeCollectionInterface $files * @param FileNodeInterface $target * @param string $cmd * @param bool $keepOld * * @return FileNodeInterface * @throws \Graze\DataFile\Modify\Exception\MakeDirectoryFailedException */ private function runCommand(FileNodeCollectionInterface $files, FileNodeInterface $target, $cmd, $keepOld = true) { if ($target instanceof FileNode) { $maker = new MakeDirectory(); $maker->makeDirectory($target); } $process = $this->getProcess($cmd); $process->run(); if (!$process->isSuccessful()) { throw new ProcessFailedException($process); } if (!$keepOld) { $this->log(LogLevel::DEBUG, "Deleting old files in collection {$files}"); $files->map(function (LocalFile $item) { if ($item->exists()) { $item->delete(); } $count = iterator_count(new DirectoryIterator($item->getDirectory())); if ($count == 2) { rmdir($item->getDirectory()); } }); } return $target; }