
| Current Path : /var/www/html/stolberg/web/core/modules/field/tests/src/Unit/ |
Linux ift1.ift-informatik.de 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64 |
| Current File : /var/www/html/stolberg/web/core/modules/field/tests/src/Unit/FieldUninstallValidatorTest.php |
<?php
declare(strict_types=1);
namespace Drupal\Tests\field\Unit;
use Drupal\Tests\UnitTestCase;
/**
* @coversDefaultClass \Drupal\field\FieldUninstallValidator
* @group field
*/
class FieldUninstallValidatorTest extends UnitTestCase {
/**
* @var \Drupal\field\FieldUninstallValidator|\PHPUnit\Framework\MockObject\MockObject
*/
protected $fieldUninstallValidator;
/**
* The mock field type plugin manager.
*
* @var \Drupal\Core\Field\FieldTypePluginManagerInterface|\PHPUnit\Framework\MockObject\MockObject
*/
protected $fieldTypePluginManager;
/**
* {@inheritdoc}
*/
protected function setUp(): void {
parent::setUp();
$this->fieldUninstallValidator = $this->getMockBuilder('Drupal\field\FieldUninstallValidator')
->disableOriginalConstructor()
->onlyMethods(['getFieldStoragesByModule', 'getFieldTypeLabel'])
->getMock();
$this->fieldUninstallValidator->setStringTranslation($this->getStringTranslationStub());
}
/**
* @covers ::validate
*/
public function testValidateNoStorages(): void {
$this->fieldUninstallValidator->expects($this->once())
->method('getFieldStoragesByModule')
->willReturn([]);
$module = $this->randomMachineName();
$expected = [];
$reasons = $this->fieldUninstallValidator->validate($module);
$this->assertEquals($expected, $reasons);
}
/**
* @covers ::validate
*/
public function testValidateDeleted(): void {
$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);
}
/**
* @covers ::validate
*/
public function testValidateNoDeleted(): void {
$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);
}
}