public function testCreateThrowsWhenTheDirectoryCouldNotBeCreated() { if (strncasecmp(PHP_OS, 'WIN', 3) == 0) { $this->markTestSkipped('Windows does not support POSIX permissions.'); return; } $this->markTestSkipped('Is there any sane way to test this?'); return; $newDirectory = DATA_DIR . '/new-directory'; Directory::create($newDirectory, 0444); $this->expectException(PermissionDeniedException::class); Directory::create($newDirectory . '/foobar'); chmod($newDirectory, 0770); rmdir($newDirectory . '/foobar'); rmdir($newDirectory); }
<?php namespace Gitilicious\GitClient; use Gitilicious\GitClient\Cli\Client as CliClient; use Gitilicious\GitClient\Cli\Input\Binary; use Gitilicious\GitClient\FileSystem\Directory; use Gitilicious\GitClient\Git\Author; use Gitilicious\GitClient\Git\Repository; use Gitilicious\GitClient\FileSystem\File; require_once __DIR__ . '/../vendor/autoload.php'; $client = new Client(new CliClient(new Binary('/usr/bin/git'))); $bareRepository = Repository::createBare($client, Directory::create('/var/git/bare'), 'Gitilicious.git'); $workRepository = $bareRepository->clone(Directory::create('/var/git/work'), 'Gitilicious'); $readme = File::create($workRepository->getPath() . '/README.md', "# My awesome repo\n"); $workRepository->add($readme); $workRepository->commit(new Author('Git User', '*****@*****.**'), 'Added readme'); $workRepository->push();