diff --git a/bin/dmg b/bin/dmg index e6b1042..466e1fa 100644 --- a/bin/dmg +++ b/bin/dmg @@ -2,6 +2,7 @@ addCommands([ - new GenerateDrupal7Command($finder, $testNameConverter), + new GenerateDrupal7Command($finder, $moduleNameConverter, $testNameConverter), ]); $app->run(); diff --git a/src/Command/GenerateDrupal7Command.php b/src/Command/GenerateDrupal7Command.php index bd6fab3..2e7ddb8 100644 --- a/src/Command/GenerateDrupal7Command.php +++ b/src/Command/GenerateDrupal7Command.php @@ -3,6 +3,7 @@ namespace Opdavies\DrupalModuleGenerator\Command; use Opdavies\DrupalModuleGenerator\Exception\CannotCreateModuleException; +use Opdavies\DrupalModuleGenerator\Service\ModuleNameConverter; use Opdavies\DrupalModuleGenerator\Service\TestNameConverter; use Symfony\Component\Console\Command\Command; use Symfony\Component\Console\Input\InputArgument; @@ -17,6 +18,7 @@ use Tightenco\Collect\Support\Collection; class GenerateDrupal7Command extends Command { private $moduleName; + private $machineName; private $testName; /** @var Filesystem */ @@ -28,17 +30,22 @@ class GenerateDrupal7Command extends Command /** @var SymfonyStyle $io */ private $io; + /** @var ModuleNameConverter */ + private $moduleNameConverter; + /** @var TestNameConverter */ private $testNameConverter; public function __construct( Finder $finder, + ModuleNameConverter $moduleNameConverter, TestNameConverter $testNameConverter, string $name = null ) { parent::__construct($name); $this->finder = $finder; + $this->moduleNameConverter = $moduleNameConverter; $this->testNameConverter = $testNameConverter; } @@ -64,8 +71,9 @@ class GenerateDrupal7Command extends Command { $this->io = new SymfonyStyle($input, $output); - $this->moduleName = $input->getArgument('module-name'); - $this->testName = $this->testNameConverter->__invoke($this->moduleName); + $this->machineName = $input->getArgument('module-name'); + $this->moduleName = $this->moduleNameConverter->__invoke($this->machineName); + $this->testName = $this->testNameConverter->__invoke($this->machineName); $this ->ensureDirectoryDoesNotExist() @@ -80,7 +88,7 @@ class GenerateDrupal7Command extends Command */ private function ensureDirectoryDoesNotExist() { - if (is_dir($this->moduleName)) { + if (is_dir($this->machineName)) { throw CannotCreateModuleException::directoryAlreadyExists(); } @@ -89,7 +97,7 @@ class GenerateDrupal7Command extends Command private function createModuleDirectory() { - mkdir($this->moduleName); + mkdir($this->machineName); return $this; } @@ -101,10 +109,10 @@ class GenerateDrupal7Command extends Command /** @var SplFileInfo $file */ foreach ($this->finder->in('fixtures/drupal7_module')->files() as $file) { - $filename = "{$this->moduleName}.{$file->getExtension()}"; + $filename = "{$this->machineName}.{$file->getExtension()}"; if ($file->getRelativePath()) { - mkdir("{$this->moduleName}/{$file->getRelativePath()}", 0777, $recursive = true); + mkdir("{$this->machineName}/{$file->getRelativePath()}", 0777, $recursive = true); $filename = "{$this->testName}.php"; $filename = "{$file->getRelativePath()}/{$filename}"; @@ -112,7 +120,7 @@ class GenerateDrupal7Command extends Command $contents = $this->updateFileContents($file->getContents()); - file_put_contents("{$this->moduleName}/{$filename}", $contents); + file_put_contents("{$this->machineName}/{$filename}", $contents); $createdFiles->push($filename); } diff --git a/src/Service/ModuleNameConverter.php b/src/Service/ModuleNameConverter.php new file mode 100644 index 0000000..18fb9e6 --- /dev/null +++ b/src/Service/ModuleNameConverter.php @@ -0,0 +1,17 @@ +expectExceptionObject(CannotCreateModuleException::directoryAlreadyExists()); $finder = new Finder(); + $moduleNameConverter = new ModuleNameConverter(); $testNameConverter = new TestNameConverter(); - $command = new GenerateDrupal7Command($finder, $testNameConverter); + $command = new GenerateDrupal7Command($finder, $moduleNameConverter, $testNameConverter); $commandTester = new CommandTester($command); $commandTester->execute([ @@ -37,8 +39,9 @@ class GenerateDrupal7ModuleCommandTest extends TestCase public function it_creates_a_new_module_directory() { $finder = new Finder(); + $moduleNameConverter = new ModuleNameConverter(); $testNameConverter = new TestNameConverter(); - $command = new GenerateDrupal7Command($finder, $testNameConverter); + $command = new GenerateDrupal7Command($finder, $moduleNameConverter, $testNameConverter); $commandTester = new CommandTester($command); $commandTester->execute([ @@ -52,8 +55,9 @@ class GenerateDrupal7ModuleCommandTest extends TestCase public function it_generates_an_info_file() { $finder = new Finder(); + $moduleNameConverter = new ModuleNameConverter(); $testNameConverter = new TestNameConverter(); - $command = new GenerateDrupal7Command($finder, $testNameConverter); + $command = new GenerateDrupal7Command($finder, $moduleNameConverter, $testNameConverter); $commandTester = new CommandTester($command); $commandTester->execute([ @@ -64,16 +68,17 @@ class GenerateDrupal7ModuleCommandTest extends TestCase $contents = file_get_contents('test_module/test_module.info'); - $this->assertStringContainsString('name = test_module', $contents); - $this->assertStringContainsString('description = The description for test_module.', $contents); + $this->assertStringContainsString('name = Test Module', $contents); + $this->assertStringContainsString('description = The description for Test Module.', $contents); } /** @test */ public function it_generates_a_module_file() { $finder = new Finder(); + $moduleNameConverter = new ModuleNameConverter(); $testNameConverter = new TestNameConverter(); - $command = new GenerateDrupal7Command($finder, $testNameConverter); + $command = new GenerateDrupal7Command($finder, $moduleNameConverter, $testNameConverter); $commandTester = new CommandTester($command); $commandTester->execute([ @@ -84,15 +89,16 @@ class GenerateDrupal7ModuleCommandTest extends TestCase $contents = file_get_contents('test_module/test_module.module'); - $this->assertStringContainsString('The main module file for test_module.', $contents); + $this->assertStringContainsString('The main module file for Test Module.', $contents); } /** @test */ public function it_generates_a_test_case() { $finder = new Finder(); + $moduleNameConverter = new ModuleNameConverter(); $testNameConverter = new TestNameConverter(); - $command = new GenerateDrupal7Command($finder, $testNameConverter); + $command = new GenerateDrupal7Command($finder, $moduleNameConverter, $testNameConverter); $commandTester = new CommandTester($command); $commandTester->execute([