3 namespace Drupal\Tests\Core\Extension;
5 use Drupal\simpletest\AssertHelperTrait;
6 use Drupal\Tests\UnitTestCase;
9 * @coversDefaultClass \Drupal\Core\Extension\RequiredModuleUninstallValidator
12 class RequiredModuleUninstallValidatorTest extends UnitTestCase {
14 use AssertHelperTrait;
17 * @var \Drupal\Core\Extension\RequiredModuleUninstallValidator|\PHPUnit_Framework_MockObject_MockObject
19 protected $uninstallValidator;
24 protected function setUp() {
26 $this->uninstallValidator = $this->getMockBuilder('Drupal\Core\Extension\RequiredModuleUninstallValidator')
27 ->disableOriginalConstructor()
28 ->setMethods(['getModuleInfoByModule'])
30 $this->uninstallValidator->setStringTranslation($this->getStringTranslationStub());
36 public function testValidateNoModule() {
37 $this->uninstallValidator->expects($this->once())
38 ->method('getModuleInfoByModule')
41 $module = $this->randomMachineName();
43 $reasons = $this->uninstallValidator->validate($module);
44 $this->assertSame($expected, $reasons);
50 public function testValidateNotRequired() {
51 $module = $this->randomMachineName();
53 $this->uninstallValidator->expects($this->once())
54 ->method('getModuleInfoByModule')
55 ->willReturn(['required' => FALSE, 'name' => $module]);
58 $reasons = $this->uninstallValidator->validate($module);
59 $this->assertSame($expected, $reasons);
65 public function testValidateRequired() {
66 $module = $this->randomMachineName();
68 $this->uninstallValidator->expects($this->once())
69 ->method('getModuleInfoByModule')
70 ->willReturn(['required' => TRUE, 'name' => $module]);
72 $expected = ["The $module module is required"];
73 $reasons = $this->uninstallValidator->validate($module);
74 $this->assertSame($expected, $this->castSafeStrings($reasons));