FieldUninstallValidatorTest.php in Drupal 9
File
core/modules/field/tests/src/Unit/FieldUninstallValidatorTest.php
View source
<?php
namespace Drupal\Tests\field\Unit;
use Drupal\Tests\UnitTestCase;
class FieldUninstallValidatorTest extends UnitTestCase {
protected $fieldUninstallValidator;
protected $fieldTypePluginManager;
protected function setUp() : void {
parent::setUp();
$this->fieldUninstallValidator = $this
->getMockBuilder('Drupal\\field\\FieldUninstallValidator')
->disableOriginalConstructor()
->setMethods([
'getFieldStoragesByModule',
'getFieldTypeLabel',
])
->getMock();
$this->fieldUninstallValidator
->setStringTranslation($this
->getStringTranslationStub());
}
public function testValidateNoStorages() {
$this->fieldUninstallValidator
->expects($this
->once())
->method('getFieldStoragesByModule')
->willReturn([]);
$module = $this
->randomMachineName();
$expected = [];
$reasons = $this->fieldUninstallValidator
->validate($module);
$this
->assertEquals($expected, $reasons);
}
public function testValidateDeleted() {
$field_storage = $this
->getMockBuilder('Drupal\\field\\Entity\\FieldStorageConfig')
->disableOriginalConstructor()
->getMock();
$field_storage
->expects($this
->once())
->method('isDeleted')
->willReturn(TRUE);
$this->fieldUninstallValidator
->expects($this
->once())
->method('getFieldStoragesByModule')
->willReturn([
$field_storage,
]);
$module = $this
->randomMachineName();
$expected = [
'Fields pending deletion',
];
$reasons = $this->fieldUninstallValidator
->validate($module);
$this
->assertEquals($expected, $reasons);
}
public function testValidateNoDeleted() {
$field_storage = $this
->getMockBuilder('Drupal\\field\\Entity\\FieldStorageConfig')
->disableOriginalConstructor()
->getMock();
$field_storage
->expects($this
->once())
->method('isDeleted')
->willReturn(FALSE);
$field_type = $this
->randomMachineName();
$field_storage
->expects($this
->once())
->method('getType')
->willReturn($field_type);
$field_name = $this
->randomMachineName();
$field_storage
->expects($this
->once())
->method('getLabel')
->willReturn($field_name);
$this->fieldUninstallValidator
->expects($this
->once())
->method('getFieldStoragesByModule')
->willReturn([
$field_storage,
]);
$field_type_label = $this
->randomMachineName();
$this->fieldUninstallValidator
->expects($this
->once())
->method('getFieldTypeLabel')
->willReturn($field_type_label);
$module = $this
->randomMachineName();
$expected = [
"The <em class=\"placeholder\">{$field_type_label}</em> field type is used in the following field: {$field_name}",
];
$reasons = $this->fieldUninstallValidator
->validate($module);
$this
->assertEquals($expected, $reasons);
}
}