Skip to content

Commit d1e19c6

Browse files
authored
Yo saucedo module command test (#3056)
* Create GenerateCommanTest in Generate folder * Add ModuleGenerator to the builder * Add the necessary mocks that ModuleCommand need
1 parent 1c41603 commit d1e19c6

File tree

3 files changed

+71
-13
lines changed

3 files changed

+71
-13
lines changed

Test/Builders/a.php

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,9 @@
77
use Drupal\Console\Utils\StringConverter;
88
use Drupal\Core\Render\ElementInfoManager;
99
use Drupal\Core\Routing\RouteProvider;
10+
use Drupal\Console\Utils\DrupalApi;
11+
use Drupal\Console\Utils\Site;
12+
use GuzzleHttp\Client;
1013
use Prophecy\Prophet;
1114

1215
use Drupal\Console\Generator\AuthenticationProviderGenerator;
@@ -29,6 +32,29 @@ public static function extensionManager()
2932
return self::prophet()->prophesize(Manager::class)->reveal();
3033
}
3134

35+
/**
36+
* @return \Prophecy\Prophecy\ObjectProphecy
37+
*/
38+
public static function guzzleHttpClient()
39+
{
40+
return self::prophet()->prophesize(Client::class);
41+
}
42+
43+
/**
44+
* @return \Prophecy\Prophecy\ObjectProphecy
45+
*/
46+
public static function drupalApi()
47+
{
48+
return self::prophet()->prophesize(DrupalApi::class);
49+
}
50+
/**
51+
* @return \Prophecy\Prophecy\ObjectProphecy
52+
*/
53+
public static function siteDrupal()
54+
{
55+
return self::prophet()->prophesize(Site::class);
56+
}
57+
3258
/**
3359
* @return \Prophecy\Prophecy\ObjectProphecy
3460
*/
@@ -55,6 +81,15 @@ public static function permissionGenerator()
5581
}
5682

5783

84+
/**
85+
* @return \Prophecy\Prophecy\ObjectProphecy
86+
*/
87+
public static function moduleGenerator()
88+
{
89+
return self::prophet()->prophesize(ModuleGenerator::class);
90+
}
91+
92+
5893
/**
5994
* @return \Prophecy\Prophecy\ObjectProphecy
6095
*/
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
<?php
2+
3+
namespace Drupal\Console\Test\Command\Generate;
4+
5+
use Symfony\Component\DependencyInjection\Container;
6+
use Drupal\Console\Test\BaseTestCase;
7+
8+
abstract class GenerateCommandTest extends BaseTestCase
9+
{
10+
/**
11+
* @return \Symfony\Component\DependencyInjection\ContainerInterface Drupal container
12+
*/
13+
protected function getContainer()
14+
{
15+
$container = new Container();
16+
$container->set('twig', new \Twig_Environment());
17+
return $container;
18+
}
19+
}

Test/Command/Generate/ModuleCommandTest.php

Lines changed: 17 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,12 @@
77
namespace Drupal\Console\Test\Command\Generate;
88

99
use Drupal\Console\Command\Generate\ModuleCommand;
10+
use Drupal\Console\Test\Builders\a as an;
11+
use Drupal\Console\Utils\StringConverter;
12+
use Drupal\Console\Utils\Validator;
1013
use Symfony\Component\Console\Tester\CommandTester;
1114
use Drupal\Console\Test\DataProvider\ModuleDataProviderTrait;
15+
use GuzzleHttp;
1216

1317
class ModuleCommandTest extends GenerateCommandTest
1418
{
@@ -40,9 +44,17 @@ public function testGenerateModule(
4044
$composer,
4145
$dependencies
4246
) {
43-
$command = new ModuleCommand($this->getHelperSet());
44-
$command->setHelperSet($this->getHelperSet());
45-
$command->setGenerator($this->getGenerator());
47+
$generator = an::moduleGenerator();
48+
$manager = an::extensionManager();
49+
$command = new ModuleCommand(
50+
$generator->reveal(),
51+
new Validator($manager),
52+
'/tmp',
53+
new StringConverter(),
54+
an::drupalApi()->reveal(),
55+
an::guzzleHttpClient()->reveal(),
56+
an::siteDrupal()->reveal()
57+
);
4658

4759
$commandTester = new CommandTester($command);
4860

@@ -60,16 +72,8 @@ public function testGenerateModule(
6072
],
6173
['interactive' => false]
6274
);
63-
75+
$generator
76+
->generate($module, $machine_name, $module_path, $description, $core, $package, $featuresBundle, $composer, $dependencies);
6477
$this->assertEquals(0, $code);
6578
}
66-
67-
private function getGenerator()
68-
{
69-
return $this
70-
->getMockBuilder('Drupal\Console\Generator\ModuleGenerator')
71-
->disableOriginalConstructor()
72-
->setMethods(['generate'])
73-
->getMock();
74-
}
7579
}

0 commit comments

Comments
 (0)