Compare commits
21 commits
Author | SHA1 | Date | |
---|---|---|---|
eb5ee10f70 | |||
51bb9927ff | |||
8d5effa151 | |||
82ba102094 | |||
c5dc5a6b88 | |||
7f10ecb7d3 | |||
df583e31d8 | |||
88147ec4e5 | |||
a186fcf721 | |||
bee4a6b5d8 | |||
41c23185c4 | |||
66e358b802 | |||
0d6bd4e070 | |||
ea2f5a4ae8 | |||
c983048346 | |||
738031ec5d | |||
edf8b9a368 | |||
4ac7fee102 | |||
65877402ba | |||
13faa12bfe | |||
28696ce13f |
14 changed files with 165 additions and 2249 deletions
.gitignore.php_cs.dist.travis.ymlREADME.md
bin
composer.jsoncomposer.lockfixtures/drupal7_module
src
Command
Exception
Service
tests/Command
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -1 +1,2 @@
|
||||||
/vendor/
|
/vendor/
|
||||||
|
/composer.lock
|
||||||
|
|
14
.php_cs.dist
Normal file
14
.php_cs.dist
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
$finder = PhpCsFixer\Finder::create()
|
||||||
|
->in(__DIR__)
|
||||||
|
->exclude(['fixtures']);
|
||||||
|
|
||||||
|
return PhpCsFixer\Config::create()
|
||||||
|
->setRules([
|
||||||
|
'@PSR2' => true,
|
||||||
|
'array_syntax' => ['syntax' => 'short'],
|
||||||
|
'ordered_imports' => true,
|
||||||
|
'phpdoc_order' => true,
|
||||||
|
])
|
||||||
|
->setFinder($finder);
|
17
.travis.yml
Normal file
17
.travis.yml
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
language: php
|
||||||
|
|
||||||
|
php:
|
||||||
|
- 7.2
|
||||||
|
- 7.3
|
||||||
|
- 7.4
|
||||||
|
|
||||||
|
env:
|
||||||
|
matrix:
|
||||||
|
- COMPOSER_FLAGS="--prefer-lowest"
|
||||||
|
- COMPOSER_FLAGS=""
|
||||||
|
|
||||||
|
before_script:
|
||||||
|
- composer install --dev --prefer-source --no-interaction
|
||||||
|
|
||||||
|
script:
|
||||||
|
- vendor/bin/phpunit
|
25
README.md
25
README.md
|
@ -1,7 +1,28 @@
|
||||||
# Drupal Module Generator (dmg)
|
# Drupal Module Generator (dmg)
|
||||||
|
|
||||||
A scaffolding tool for generating new modules for Drupal 7 and 8.
|
A scaffolding tool for generating new modules for Drupal 7 and (soon) 8.
|
||||||
|
|
||||||
|
[Watch a short demo][demo].
|
||||||
|
|
||||||
|
[demo]: https://opdavi.es/6i3YZ 'A short demo video on YouTube'
|
||||||
|
|
||||||
|
## Installation
|
||||||
|
|
||||||
|
The Drupal Module Generator is installed via [Composer][]:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
composer global require opdavies/drupal-module-generator
|
||||||
|
```
|
||||||
|
|
||||||
|
[composer]: https://getcomposer.org
|
||||||
|
|
||||||
## Usage
|
## Usage
|
||||||
|
|
||||||
TODO
|
### Drupal 7
|
||||||
|
|
||||||
|
```bash
|
||||||
|
dmg generate:drupal-7-module {name}
|
||||||
|
```
|
||||||
|
|
||||||
|
Generated Drupal 7 modules contain the appropriately named `.info` and `.module` files,
|
||||||
|
as well as a test case located in `src/Tests/Functional` which [is loaded automatically](https://www.oliverdavies.uk/articles/psr4-autoloading-test-cases-drupal-7).
|
||||||
|
|
12
bin/dmg
Normal file → Executable file
12
bin/dmg
Normal file → Executable file
|
@ -2,19 +2,25 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
use Opdavies\DrupalModuleGenerator\Command\GenerateDrupal7Command;
|
use Opdavies\DrupalModuleGenerator\Command\GenerateDrupal7Command;
|
||||||
|
use Opdavies\DrupalModuleGenerator\Service\ModuleNameConverter;
|
||||||
use Opdavies\DrupalModuleGenerator\Service\TestNameConverter;
|
use Opdavies\DrupalModuleGenerator\Service\TestNameConverter;
|
||||||
use Symfony\Component\Console\Application;
|
use Symfony\Component\Console\Application;
|
||||||
use Symfony\Component\Finder\Finder;
|
use Symfony\Component\Finder\Finder;
|
||||||
|
|
||||||
require_once __DIR__.'/../vendor/autoload.php';
|
if (file_exists(__DIR__.'/../../../autoload.php')) {
|
||||||
|
require __DIR__.'/../../../autoload.php';
|
||||||
|
} else {
|
||||||
|
require __DIR__.'/../vendor/autoload.php';
|
||||||
|
}
|
||||||
|
|
||||||
$app = new Application();
|
$app = new Application('Drupal Module Generator');
|
||||||
|
|
||||||
$finder = new Finder();
|
$finder = new Finder();
|
||||||
|
$moduleNameConverter = new ModuleNameConverter();
|
||||||
$testNameConverter = new TestNameConverter();
|
$testNameConverter = new TestNameConverter();
|
||||||
|
|
||||||
$app->addCommands([
|
$app->addCommands([
|
||||||
new GenerateDrupal7Command($finder, $testNameConverter),
|
new GenerateDrupal7Command($finder, $moduleNameConverter, $testNameConverter),
|
||||||
]);
|
]);
|
||||||
|
|
||||||
$app->run();
|
$app->run();
|
||||||
|
|
|
@ -3,16 +3,17 @@
|
||||||
"description": "Generates boilerplate code for Drupal modules.",
|
"description": "Generates boilerplate code for Drupal modules.",
|
||||||
"type": "project",
|
"type": "project",
|
||||||
"require": {
|
"require": {
|
||||||
"symfony/console": "^5.0",
|
"php": "^7.2",
|
||||||
"symfony/dependency-injection": "^5.0",
|
"symfony/console": "^4.0 || ^5.0",
|
||||||
"symfony/filesystem": "^5.0",
|
"symfony/dependency-injection": "^4.0 || ^5.0",
|
||||||
"symfony/finder": "^5.0",
|
"symfony/filesystem": "^4.0 || ^5.0",
|
||||||
|
"symfony/finder": "^4.0 || ^5.0",
|
||||||
"tightenco/collect": "^6.14"
|
"tightenco/collect": "^6.14"
|
||||||
},
|
},
|
||||||
"require-dev": {
|
"require-dev": {
|
||||||
"php": "5.6 || ^7.0",
|
"friendsofphp/php-cs-fixer": "^2.16",
|
||||||
"phpunit/phpunit": "^9.0",
|
"phpunit/phpunit": "^8.5",
|
||||||
"symfony/var-dumper": "^5.0"
|
"symfony/var-dumper": "^4.0 || ^5.0"
|
||||||
},
|
},
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"authors": [
|
"authors": [
|
||||||
|
@ -31,7 +32,13 @@
|
||||||
"Opdavies\\Tests\\DrupalModuleGenerator\\": "tests/"
|
"Opdavies\\Tests\\DrupalModuleGenerator\\": "tests/"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"bin": [
|
||||||
|
"bin/dmg"
|
||||||
|
],
|
||||||
"config": {
|
"config": {
|
||||||
|
"platform": {
|
||||||
|
"php": "7.2.5"
|
||||||
|
},
|
||||||
"sort-packages": true
|
"sort-packages": true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
2200
composer.lock
generated
2200
composer.lock
generated
File diff suppressed because it is too large
Load diff
|
@ -1,3 +1,3 @@
|
||||||
name = {{ name }}
|
name = {{ name }}
|
||||||
description = The description for {{ name }}.
|
description = {{ name }} module.
|
||||||
core = 7.x
|
core = 7.x
|
||||||
|
|
|
@ -1,5 +1,21 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace Drupal\{{ name }}\Tests\Functional;
|
namespace Drupal\{{ machine_name }}\Tests\Functional;
|
||||||
|
|
||||||
final class {{ test_name }} extends \DrupalWebTestCase {}
|
final class {{ test_name }} extends \DrupalWebTestCase {
|
||||||
|
|
||||||
|
public static function getInfo() {
|
||||||
|
return array(
|
||||||
|
'name' => '{{ name }}',
|
||||||
|
'description' => '{{ name }} tests.',
|
||||||
|
'group' => '{{ name }}',
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function test_that_the_front_page_loads() {
|
||||||
|
$this->drupalGet('<front>');
|
||||||
|
|
||||||
|
$this->assertResponse(200);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
|
@ -3,49 +3,45 @@
|
||||||
namespace Opdavies\DrupalModuleGenerator\Command;
|
namespace Opdavies\DrupalModuleGenerator\Command;
|
||||||
|
|
||||||
use Opdavies\DrupalModuleGenerator\Exception\CannotCreateModuleException;
|
use Opdavies\DrupalModuleGenerator\Exception\CannotCreateModuleException;
|
||||||
|
use Opdavies\DrupalModuleGenerator\Service\ModuleNameConverter;
|
||||||
use Opdavies\DrupalModuleGenerator\Service\TestNameConverter;
|
use Opdavies\DrupalModuleGenerator\Service\TestNameConverter;
|
||||||
use Symfony\Component\Console\Command\Command;
|
use Symfony\Component\Console\Command\Command;
|
||||||
use Symfony\Component\Console\Input\InputArgument;
|
use Symfony\Component\Console\Input\InputArgument;
|
||||||
use Symfony\Component\Console\Input\InputInterface;
|
use Symfony\Component\Console\Input\InputInterface;
|
||||||
use Symfony\Component\Console\Output\OutputInterface;
|
use Symfony\Component\Console\Output\OutputInterface;
|
||||||
use Symfony\Component\Console\Style\SymfonyStyle;
|
use Symfony\Component\Console\Style\SymfonyStyle;
|
||||||
use Symfony\Component\Filesystem\Filesystem;
|
|
||||||
use Symfony\Component\Finder\Finder;
|
use Symfony\Component\Finder\Finder;
|
||||||
use Symfony\Component\Finder\SplFileInfo;
|
use Symfony\Component\Finder\SplFileInfo;
|
||||||
use Tightenco\Collect\Support\Collection;
|
use Tightenco\Collect\Support\Collection;
|
||||||
|
|
||||||
class GenerateDrupal7Command extends Command
|
final class GenerateDrupal7Command extends Command
|
||||||
{
|
{
|
||||||
private $moduleName;
|
private $moduleName;
|
||||||
|
private $machineName;
|
||||||
private $testName;
|
private $testName;
|
||||||
|
|
||||||
/** @var Filesystem */
|
|
||||||
private $filesystem;
|
|
||||||
|
|
||||||
/** @var Finder */
|
|
||||||
private $finder;
|
private $finder;
|
||||||
|
|
||||||
/** @var SymfonyStyle $io */
|
|
||||||
private $io;
|
private $io;
|
||||||
|
private $moduleNameConverter;
|
||||||
/** @var TestNameConverter */
|
|
||||||
private $testNameConverter;
|
private $testNameConverter;
|
||||||
|
|
||||||
public function __construct(
|
public function __construct(
|
||||||
Finder $finder,
|
Finder $finder,
|
||||||
|
ModuleNameConverter $moduleNameConverter,
|
||||||
TestNameConverter $testNameConverter,
|
TestNameConverter $testNameConverter,
|
||||||
string $name = null
|
string $name = null
|
||||||
) {
|
) {
|
||||||
parent::__construct($name);
|
parent::__construct($name);
|
||||||
|
|
||||||
$this->finder = $finder;
|
$this->finder = $finder;
|
||||||
|
$this->moduleNameConverter = $moduleNameConverter;
|
||||||
$this->testNameConverter = $testNameConverter;
|
$this->testNameConverter = $testNameConverter;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* {@inheritdoc}
|
* {@inheritdoc}
|
||||||
*/
|
*/
|
||||||
protected static $defaultName = 'generate-drupal-7-module';
|
protected static $defaultName = 'generate:drupal-7-module';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* {@inheritDoc}
|
* {@inheritDoc}
|
||||||
|
@ -53,8 +49,10 @@ class GenerateDrupal7Command extends Command
|
||||||
protected function configure()
|
protected function configure()
|
||||||
{
|
{
|
||||||
$this
|
$this
|
||||||
->setDescription('Generate a new Drupal 7 module.')
|
->setDescription('Generate a new Drupal 7 module')
|
||||||
->addArgument('module-name', InputArgument::REQUIRED, 'The name of the module to create');
|
->addArgument('module-name', InputArgument::REQUIRED, 'The name of the module to create')
|
||||||
|
->setAliases(['d7', 'drupal7'])
|
||||||
|
;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -64,8 +62,11 @@ class GenerateDrupal7Command extends Command
|
||||||
{
|
{
|
||||||
$this->io = new SymfonyStyle($input, $output);
|
$this->io = new SymfonyStyle($input, $output);
|
||||||
|
|
||||||
$this->moduleName = $input->getArgument('module-name');
|
$this->io->title("Drupal Module Generator (D7)");
|
||||||
$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
|
$this
|
||||||
->ensureDirectoryDoesNotExist()
|
->ensureDirectoryDoesNotExist()
|
||||||
|
@ -80,7 +81,7 @@ class GenerateDrupal7Command extends Command
|
||||||
*/
|
*/
|
||||||
private function ensureDirectoryDoesNotExist()
|
private function ensureDirectoryDoesNotExist()
|
||||||
{
|
{
|
||||||
if (is_dir($this->moduleName)) {
|
if (is_dir($this->machineName)) {
|
||||||
throw CannotCreateModuleException::directoryAlreadyExists();
|
throw CannotCreateModuleException::directoryAlreadyExists();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -89,7 +90,7 @@ class GenerateDrupal7Command extends Command
|
||||||
|
|
||||||
private function createModuleDirectory()
|
private function createModuleDirectory()
|
||||||
{
|
{
|
||||||
mkdir($this->moduleName);
|
mkdir($this->machineName);
|
||||||
|
|
||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
|
@ -97,14 +98,13 @@ class GenerateDrupal7Command extends Command
|
||||||
private function createFiles()
|
private function createFiles()
|
||||||
{
|
{
|
||||||
$createdFiles = new Collection();
|
$createdFiles = new Collection();
|
||||||
$testNameConverter = new TestNameConverter();
|
|
||||||
|
|
||||||
/** @var SplFileInfo $file */
|
/** @var SplFileInfo $file */
|
||||||
foreach ($this->finder->in('fixtures/drupal7_module')->files() as $file) {
|
foreach ($this->finder->in(__DIR__.'/../../fixtures/drupal7_module')->files() as $file) {
|
||||||
$filename = "{$this->moduleName}.{$file->getExtension()}";
|
$filename = "{$this->machineName}.{$file->getExtension()}";
|
||||||
|
|
||||||
if ($file->getRelativePath()) {
|
if ($file->getRelativePath()) {
|
||||||
mkdir("{$this->moduleName}/{$file->getRelativePath()}", 0777, $recursive = true);
|
mkdir("{$this->machineName}/{$file->getRelativePath()}", 0777, $recursive = true);
|
||||||
|
|
||||||
$filename = "{$this->testName}.php";
|
$filename = "{$this->testName}.php";
|
||||||
$filename = "{$file->getRelativePath()}/{$filename}";
|
$filename = "{$file->getRelativePath()}/{$filename}";
|
||||||
|
@ -112,16 +112,21 @@ class GenerateDrupal7Command extends Command
|
||||||
|
|
||||||
$contents = $this->updateFileContents($file->getContents());
|
$contents = $this->updateFileContents($file->getContents());
|
||||||
|
|
||||||
file_put_contents("{$this->moduleName}/{$filename}", $contents);
|
file_put_contents("{$this->machineName}/{$filename}", $contents);
|
||||||
|
|
||||||
$createdFiles->push($filename);
|
$createdFiles->push($filename);
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->io->listing($createdFiles->filter()->sort()->toArray());
|
if ($createdFiles->isNotEmpty()) {
|
||||||
|
$this->io->block('Files generated:');
|
||||||
|
|
||||||
|
$this->io->listing($createdFiles->sort()->toArray());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private function updateFileContents($contents)
|
private function updateFileContents($contents)
|
||||||
{
|
{
|
||||||
|
$contents = str_replace('{{ machine_name }}', $this->machineName, $contents);
|
||||||
$contents = str_replace('{{ name }}', $this->moduleName, $contents);
|
$contents = str_replace('{{ name }}', $this->moduleName, $contents);
|
||||||
$contents = str_replace('{{ test_name }}', $this->testName, $contents);
|
$contents = str_replace('{{ test_name }}', $this->testName, $contents);
|
||||||
|
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
namespace Opdavies\DrupalModuleGenerator\Exception;
|
namespace Opdavies\DrupalModuleGenerator\Exception;
|
||||||
|
|
||||||
class CannotCreateModuleException extends \RuntimeException
|
final class CannotCreateModuleException extends \RuntimeException
|
||||||
{
|
{
|
||||||
public static function directoryAlreadyExists()
|
public static function directoryAlreadyExists()
|
||||||
{
|
{
|
||||||
|
|
17
src/Service/ModuleNameConverter.php
Normal file
17
src/Service/ModuleNameConverter.php
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Opdavies\DrupalModuleGenerator\Service;
|
||||||
|
|
||||||
|
final class ModuleNameConverter
|
||||||
|
{
|
||||||
|
public function __invoke(string $moduleName)
|
||||||
|
{
|
||||||
|
$parts = explode('_', $moduleName);
|
||||||
|
|
||||||
|
$parts = array_map(function ($part) {
|
||||||
|
return ucfirst($part);
|
||||||
|
}, $parts);
|
||||||
|
|
||||||
|
return implode(' ', $parts);
|
||||||
|
}
|
||||||
|
}
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
namespace Opdavies\DrupalModuleGenerator\Service;
|
namespace Opdavies\DrupalModuleGenerator\Service;
|
||||||
|
|
||||||
class TestNameConverter
|
final class TestNameConverter
|
||||||
{
|
{
|
||||||
public function __invoke(string $moduleName)
|
public function __invoke(string $moduleName)
|
||||||
{
|
{
|
||||||
|
|
|
@ -4,13 +4,14 @@ namespace Opdavies\Tests\DrupalModuleGenerator\Command;
|
||||||
|
|
||||||
use Opdavies\DrupalModuleGenerator\Command\GenerateDrupal7Command;
|
use Opdavies\DrupalModuleGenerator\Command\GenerateDrupal7Command;
|
||||||
use Opdavies\DrupalModuleGenerator\Exception\CannotCreateModuleException;
|
use Opdavies\DrupalModuleGenerator\Exception\CannotCreateModuleException;
|
||||||
|
use Opdavies\DrupalModuleGenerator\Service\ModuleNameConverter;
|
||||||
use Opdavies\DrupalModuleGenerator\Service\TestNameConverter;
|
use Opdavies\DrupalModuleGenerator\Service\TestNameConverter;
|
||||||
use Symfony\Component\Console\Tester\CommandTester;
|
use Symfony\Component\Console\Tester\CommandTester;
|
||||||
use PHPUnit\Framework\TestCase;
|
use PHPUnit\Framework\TestCase;
|
||||||
use Symfony\Component\Filesystem\Filesystem;
|
use Symfony\Component\Filesystem\Filesystem;
|
||||||
use Symfony\Component\Finder\Finder;
|
use Symfony\Component\Finder\Finder;
|
||||||
|
|
||||||
class GenerateDrupal7ModuleCommandTest extends TestCase
|
final class GenerateDrupal7ModuleCommandTest extends TestCase
|
||||||
{
|
{
|
||||||
protected function tearDown(): void
|
protected function tearDown(): void
|
||||||
{
|
{
|
||||||
|
@ -24,8 +25,9 @@ class GenerateDrupal7ModuleCommandTest extends TestCase
|
||||||
$this->expectExceptionObject(CannotCreateModuleException::directoryAlreadyExists());
|
$this->expectExceptionObject(CannotCreateModuleException::directoryAlreadyExists());
|
||||||
|
|
||||||
$finder = new Finder();
|
$finder = new Finder();
|
||||||
|
$moduleNameConverter = new ModuleNameConverter();
|
||||||
$testNameConverter = new TestNameConverter();
|
$testNameConverter = new TestNameConverter();
|
||||||
$command = new GenerateDrupal7Command($finder, $testNameConverter);
|
$command = new GenerateDrupal7Command($finder, $moduleNameConverter, $testNameConverter);
|
||||||
|
|
||||||
$commandTester = new CommandTester($command);
|
$commandTester = new CommandTester($command);
|
||||||
$commandTester->execute([
|
$commandTester->execute([
|
||||||
|
@ -37,8 +39,9 @@ class GenerateDrupal7ModuleCommandTest extends TestCase
|
||||||
public function it_creates_a_new_module_directory()
|
public function it_creates_a_new_module_directory()
|
||||||
{
|
{
|
||||||
$finder = new Finder();
|
$finder = new Finder();
|
||||||
|
$moduleNameConverter = new ModuleNameConverter();
|
||||||
$testNameConverter = new TestNameConverter();
|
$testNameConverter = new TestNameConverter();
|
||||||
$command = new GenerateDrupal7Command($finder, $testNameConverter);
|
$command = new GenerateDrupal7Command($finder, $moduleNameConverter, $testNameConverter);
|
||||||
|
|
||||||
$commandTester = new CommandTester($command);
|
$commandTester = new CommandTester($command);
|
||||||
$commandTester->execute([
|
$commandTester->execute([
|
||||||
|
@ -52,8 +55,9 @@ class GenerateDrupal7ModuleCommandTest extends TestCase
|
||||||
public function it_generates_an_info_file()
|
public function it_generates_an_info_file()
|
||||||
{
|
{
|
||||||
$finder = new Finder();
|
$finder = new Finder();
|
||||||
|
$moduleNameConverter = new ModuleNameConverter();
|
||||||
$testNameConverter = new TestNameConverter();
|
$testNameConverter = new TestNameConverter();
|
||||||
$command = new GenerateDrupal7Command($finder, $testNameConverter);
|
$command = new GenerateDrupal7Command($finder, $moduleNameConverter, $testNameConverter);
|
||||||
|
|
||||||
$commandTester = new CommandTester($command);
|
$commandTester = new CommandTester($command);
|
||||||
$commandTester->execute([
|
$commandTester->execute([
|
||||||
|
@ -64,16 +68,17 @@ class GenerateDrupal7ModuleCommandTest extends TestCase
|
||||||
|
|
||||||
$contents = file_get_contents('test_module/test_module.info');
|
$contents = file_get_contents('test_module/test_module.info');
|
||||||
|
|
||||||
$this->assertStringContainsString('name = test_module', $contents);
|
$this->assertStringContainsString('name = Test Module', $contents);
|
||||||
$this->assertStringContainsString('description = The description for test_module.', $contents);
|
$this->assertStringContainsString('description = Test Module module.', $contents);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** @test */
|
/** @test */
|
||||||
public function it_generates_a_module_file()
|
public function it_generates_a_module_file()
|
||||||
{
|
{
|
||||||
$finder = new Finder();
|
$finder = new Finder();
|
||||||
|
$moduleNameConverter = new ModuleNameConverter();
|
||||||
$testNameConverter = new TestNameConverter();
|
$testNameConverter = new TestNameConverter();
|
||||||
$command = new GenerateDrupal7Command($finder, $testNameConverter);
|
$command = new GenerateDrupal7Command($finder, $moduleNameConverter, $testNameConverter);
|
||||||
|
|
||||||
$commandTester = new CommandTester($command);
|
$commandTester = new CommandTester($command);
|
||||||
$commandTester->execute([
|
$commandTester->execute([
|
||||||
|
@ -84,15 +89,16 @@ class GenerateDrupal7ModuleCommandTest extends TestCase
|
||||||
|
|
||||||
$contents = file_get_contents('test_module/test_module.module');
|
$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 */
|
/** @test */
|
||||||
public function it_generates_a_test_case()
|
public function it_generates_a_test_case()
|
||||||
{
|
{
|
||||||
$finder = new Finder();
|
$finder = new Finder();
|
||||||
|
$moduleNameConverter = new ModuleNameConverter();
|
||||||
$testNameConverter = new TestNameConverter();
|
$testNameConverter = new TestNameConverter();
|
||||||
$command = new GenerateDrupal7Command($finder, $testNameConverter);
|
$command = new GenerateDrupal7Command($finder, $moduleNameConverter, $testNameConverter);
|
||||||
|
|
||||||
$commandTester = new CommandTester($command);
|
$commandTester = new CommandTester($command);
|
||||||
$commandTester->execute([
|
$commandTester->execute([
|
||||||
|
@ -103,6 +109,12 @@ class GenerateDrupal7ModuleCommandTest extends TestCase
|
||||||
|
|
||||||
$contents = file_get_contents('test_module/src/Tests/Functional/TestModuleTest.php');
|
$contents = file_get_contents('test_module/src/Tests/Functional/TestModuleTest.php');
|
||||||
|
|
||||||
|
$this->assertStringContainsString('namespace Drupal\\test_module\\Tests\\Functional', $contents);
|
||||||
|
|
||||||
$this->assertStringContainsString('final class TestModuleTest', $contents);
|
$this->assertStringContainsString('final class TestModuleTest', $contents);
|
||||||
|
|
||||||
|
$this->assertStringContainsString("'name' => 'Test Module'", $contents);
|
||||||
|
$this->assertStringContainsString("'description' => 'Test Module tests.'", $contents);
|
||||||
|
$this->assertStringContainsString("'group' => 'Test Module'", $contents);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue