/** * Create a workbench directory for the package. * * @param \Illuminate\Workbench\Package $package * @param string $path * @return string * * @throws \InvalidArgumentException */ protected function createDirectory(Package $package, $path) { $fullPath = $path . '/' . $package->getFullName(); // If the directory doesn't exist, we will go ahead and create the package // directory in the workbench location. We will use this entire package // name when creating the directory to avoid any potential conflicts. if (!$this->files->isDirectory($fullPath)) { $this->files->makeDirectory($fullPath, 0777, true); return $fullPath; } throw new \InvalidArgumentException("Package exists."); }
/** * composer.json guard */ public function testWriteComposerGuard() { $this->creator->writeSupportFiles($this->package, $this->rootdir->url(), true); $file = $this->rootdir->url() . '/composer.json'; $this->assertFileExists($file); $composer = json_decode(file_get_contents($file)); // check package name $this->assertEquals($this->package->getFullName(), $composer->name, 'Package name check: '); // check authors $this->assertCount(1, $composer->authors, 'Authors check: '); $this->assertEquals($this->package->author, $composer->authors[0]->name, 'Author name check: '); $this->assertEquals($this->package->email, $composer->authors[0]->email, 'Author email check: '); // check autoload $psr0 = $this->package->vendor . '\\' . $this->package->name; $this->objectHasAttribute($psr0, $composer->autoload->{'psr-0'}, 'Autoload - PSR-0 key check: '); $this->assertEquals($composer->autoload->{'psr-0'}->{$psr0}, 'src/', 'Autoload - PSR-0 value check: '); }