fieldUninstallValidator = $this->getMockBuilder('Drupal\field\FieldUninstallValidator') ->disableOriginalConstructor() ->setMethods(['getFieldStoragesByModule', 'getFieldTypeLabel']) ->getMock(); $this->fieldUninstallValidator->setStringTranslation($this->getStringTranslationStub()); } /** * @covers ::validate */ public function testValidateNoStorages() { $this->fieldUninstallValidator->expects($this->once()) ->method('getFieldStoragesByModule') ->willReturn([]); $module = $this->randomMachineName(); $expected = []; $reasons = $this->fieldUninstallValidator->validate($module); $this->assertSame($expected, $this->castSafeStrings($reasons)); } /** * @covers ::validate */ 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->assertSame($expected, $this->castSafeStrings($reasons)); } /** * @covers ::validate */ 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 $field_type_label field type is used in the following field: $field_name"]; $reasons = $this->fieldUninstallValidator->validate($module); $this->assertSame($expected, $this->castSafeStrings($reasons)); } }