Issue #3483576 by mondrake: Method getMockForAbstractClass() is deprecated - replace in classes EntityTypeTest and EntityTypeManagerTest

(cherry picked from commit 240d2b1d48)
merge-requests/10257/merge
Alex Pott 2024-11-22 14:25:13 +00:00
parent 6890b4f8ad
commit 10811fea63
No known key found for this signature in database
GPG Key ID: BDA67E7EE836E5CE
4 changed files with 50 additions and 88 deletions

View File

@ -61473,12 +61473,6 @@ $ignoreErrors[] = [
'count' => 2,
'path' => __DIR__ . '/tests/Drupal/Tests/Core/Entity/EntityStorageBaseTest.php',
];
$ignoreErrors[] = [
// identifier: method.deprecated
'message' => '#^Call to deprecated method getMockForAbstractClass\\(\\) of class PHPUnit\\\\Framework\\\\TestCase\\.$#',
'count' => 2,
'path' => __DIR__ . '/tests/Drupal/Tests/Core/Entity/EntityTypeManagerTest.php',
];
$ignoreErrors[] = [
// identifier: missingType.return
'message' => '#^Method Drupal\\\\Tests\\\\Core\\\\Entity\\\\TestEntityForm\\:\\:getBaseFormId\\(\\) has no return type specified\\.$#',
@ -61515,12 +61509,6 @@ $ignoreErrors[] = [
'count' => 1,
'path' => __DIR__ . '/tests/Drupal/Tests/Core/Entity/EntityTypeManagerTest.php',
];
$ignoreErrors[] = [
// identifier: method.deprecated
'message' => '#^Call to deprecated method getMockForAbstractClass\\(\\) of class PHPUnit\\\\Framework\\\\TestCase\\.$#',
'count' => 1,
'path' => __DIR__ . '/tests/Drupal/Tests/Core/Entity/EntityTypeTest.php',
];
$ignoreErrors[] = [
// identifier: missingType.return
'message' => '#^Method Drupal\\\\Tests\\\\Core\\\\Entity\\\\EntityTypeTest\\:\\:providerTestGet\\(\\) has no return type specified\\.$#',

View File

@ -171,12 +171,11 @@ class EntityTypeManagerTest extends UnitTestCase {
* @covers ::getStorage
*/
public function testGetStorage(): void {
$class = $this->getTestHandlerClass();
$entity = $this->prophesize(EntityTypeInterface::class);
$entity->getHandlerClass('storage')->willReturn($class);
$entity->getHandlerClass('storage')->willReturn(StubEntityHandlerBase::class);
$this->setUpEntityTypeDefinitions(['test_entity_type' => $entity]);
$this->assertInstanceOf($class, $this->entityTypeManager->getStorage('test_entity_type'));
$this->assertInstanceOf(StubEntityHandlerBase::class, $this->entityTypeManager->getStorage('test_entity_type'));
}
/**
@ -185,12 +184,11 @@ class EntityTypeManagerTest extends UnitTestCase {
* @covers ::getListBuilder
*/
public function testGetListBuilder(): void {
$class = $this->getTestHandlerClass();
$entity = $this->prophesize(EntityTypeInterface::class);
$entity->getHandlerClass('list_builder')->willReturn($class);
$entity->getHandlerClass('list_builder')->willReturn(StubEntityHandlerBase::class);
$this->setUpEntityTypeDefinitions(['test_entity_type' => $entity]);
$this->assertInstanceOf($class, $this->entityTypeManager->getListBuilder('test_entity_type'));
$this->assertInstanceOf(StubEntityHandlerBase::class, $this->entityTypeManager->getListBuilder('test_entity_type'));
}
/**
@ -199,12 +197,11 @@ class EntityTypeManagerTest extends UnitTestCase {
* @covers ::getViewBuilder
*/
public function testGetViewBuilder(): void {
$class = $this->getTestHandlerClass();
$entity = $this->prophesize(EntityTypeInterface::class);
$entity->getHandlerClass('view_builder')->willReturn($class);
$entity->getHandlerClass('view_builder')->willReturn(StubEntityHandlerBase::class);
$this->setUpEntityTypeDefinitions(['test_entity_type' => $entity]);
$this->assertInstanceOf($class, $this->entityTypeManager->getViewBuilder('test_entity_type'));
$this->assertInstanceOf(StubEntityHandlerBase::class, $this->entityTypeManager->getViewBuilder('test_entity_type'));
}
/**
@ -213,12 +210,11 @@ class EntityTypeManagerTest extends UnitTestCase {
* @covers ::getAccessControlHandler
*/
public function testGetAccessControlHandler(): void {
$class = $this->getTestHandlerClass();
$entity = $this->prophesize(EntityTypeInterface::class);
$entity->getHandlerClass('access')->willReturn($class);
$entity->getHandlerClass('access')->willReturn(StubEntityHandlerBase::class);
$this->setUpEntityTypeDefinitions(['test_entity_type' => $entity]);
$this->assertInstanceOf($class, $this->entityTypeManager->getAccessControlHandler('test_entity_type'));
$this->assertInstanceOf(StubEntityHandlerBase::class, $this->entityTypeManager->getAccessControlHandler('test_entity_type'));
}
/**
@ -302,16 +298,15 @@ class EntityTypeManagerTest extends UnitTestCase {
* @covers ::getHandler
*/
public function testGetHandler(): void {
$class = get_class($this->getMockForAbstractClass(TestEntityHandlerBase::class));
$apple = $this->prophesize(EntityTypeInterface::class);
$apple->getHandlerClass('storage')->willReturn($class);
$apple->getHandlerClass('storage')->willReturn(StubEntityHandlerBase::class);
$this->setUpEntityTypeDefinitions([
'apple' => $apple,
]);
$apple_controller = $this->entityTypeManager->getHandler('apple', 'storage');
$this->assertInstanceOf($class, $apple_controller);
$this->assertInstanceOf(StubEntityHandlerBase::class, $apple_controller);
$this->assertInstanceOf(ModuleHandlerInterface::class, $apple_controller->moduleHandler);
$this->assertInstanceOf(TranslationInterface::class, $apple_controller->stringTranslation);
}
@ -446,33 +441,6 @@ class EntityTypeManagerTest extends UnitTestCase {
$this->entityTypeManager->getDefinition('pear', TRUE);
}
/**
* Gets a mock controller class name.
*
* @return string
* A mock controller class name.
*/
protected function getTestHandlerClass(): string {
return get_class($this->getMockForAbstractClass(EntityHandlerBase::class));
}
}
/**
* Provides a test entity handler.
*/
abstract class TestEntityHandlerBase extends EntityHandlerBase {
/**
* {@inheritdoc}
*/
public $moduleHandler;
/**
* {@inheritdoc}
*/
public $stringTranslation;
}
/**

View File

@ -159,17 +159,16 @@ class EntityTypeTest extends UnitTestCase {
* Tests the getHandler() method.
*/
public function testGetHandler(): void {
$controller = $this->getTestHandlerClass();
$entity_type = $this->setUpEntityType([
'handlers' => [
'storage' => $controller,
'storage' => StubEntityHandlerBase::class,
'form' => [
'default' => $controller,
'default' => StubEntityHandlerBase::class,
],
],
]);
$this->assertSame($controller, $entity_type->getHandlerClass('storage'));
$this->assertSame($controller, $entity_type->getHandlerClass('form', 'default'));
$this->assertSame(StubEntityHandlerBase::class, $entity_type->getHandlerClass('storage'));
$this->assertSame(StubEntityHandlerBase::class, $entity_type->getHandlerClass('form', 'default'));
$this->assertNull($entity_type->getHandlerClass('foo'));
$this->assertNull($entity_type->getHandlerClass('foo', 'bar'));
}
@ -178,76 +177,70 @@ class EntityTypeTest extends UnitTestCase {
* Tests the getStorageClass() method.
*/
public function testGetStorageClass(): void {
$controller = $this->getTestHandlerClass();
$entity_type = $this->setUpEntityType([
'handlers' => [
'storage' => $controller,
'storage' => StubEntityHandlerBase::class,
],
]);
$this->assertSame($controller, $entity_type->getStorageClass());
$this->assertSame(StubEntityHandlerBase::class, $entity_type->getStorageClass());
}
/**
* Tests the setStorageClass() method.
*/
public function testSetStorageClass(): void {
$controller = $this->getTestHandlerClass();
$entity_type = $this->setUpEntityType([]);
$this->assertSame($entity_type, $entity_type->setStorageClass($controller));
$this->assertSame($entity_type, $entity_type->setStorageClass(StubEntityHandlerBase::class));
}
/**
* Tests the getListBuilderClass() method.
*/
public function testGetListBuilderClass(): void {
$controller = $this->getTestHandlerClass();
$entity_type = $this->setUpEntityType([
'handlers' => [
'list_builder' => $controller,
'list_builder' => StubEntityHandlerBase::class,
],
]);
$this->assertSame($controller, $entity_type->getListBuilderClass());
$this->assertSame(StubEntityHandlerBase::class, $entity_type->getListBuilderClass());
}
/**
* Tests the getAccessControlClass() method.
*/
public function testGetAccessControlClass(): void {
$controller = $this->getTestHandlerClass();
$entity_type = $this->setUpEntityType([
'handlers' => [
'access' => $controller,
'access' => StubEntityHandlerBase::class,
],
]);
$this->assertSame($controller, $entity_type->getAccessControlClass());
$this->assertSame(StubEntityHandlerBase::class, $entity_type->getAccessControlClass());
}
/**
* Tests the getFormClass() method.
*/
public function testGetFormClass(): void {
$controller = $this->getTestHandlerClass();
$operation = 'default';
$entity_type = $this->setUpEntityType([
'handlers' => [
'form' => [
$operation => $controller,
$operation => StubEntityHandlerBase::class,
],
],
]);
$this->assertSame($controller, $entity_type->getFormClass($operation));
$this->assertSame(StubEntityHandlerBase::class, $entity_type->getFormClass($operation));
}
/**
* Tests the hasFormClasses() method.
*/
public function testHasFormClasses(): void {
$controller = $this->getTestHandlerClass();
$operation = 'default';
$entity_type1 = $this->setUpEntityType([
'handlers' => [
'form' => [
$operation => $controller,
$operation => StubEntityHandlerBase::class,
],
],
]);
@ -262,13 +255,12 @@ class EntityTypeTest extends UnitTestCase {
* Tests the getViewBuilderClass() method.
*/
public function testGetViewBuilderClass(): void {
$controller = $this->getTestHandlerClass();
$entity_type = $this->setUpEntityType([
'handlers' => [
'view_builder' => $controller,
'view_builder' => StubEntityHandlerBase::class,
],
]);
$this->assertSame($controller, $entity_type->getViewBuilderClass());
$this->assertSame(StubEntityHandlerBase::class, $entity_type->getViewBuilderClass());
}
/**
@ -440,16 +432,6 @@ class EntityTypeTest extends UnitTestCase {
];
}
/**
* Gets a mock controller class name.
*
* @return string
* A mock controller class name.
*/
protected function getTestHandlerClass(): string {
return get_class($this->getMockForAbstractClass('Drupal\Core\Entity\EntityHandlerBase'));
}
/**
* @covers ::setLinkTemplate
*/

View File

@ -0,0 +1,24 @@
<?php
declare(strict_types=1);
namespace Drupal\Tests\Core\Entity;
use Drupal\Core\Entity\EntityHandlerBase;
/**
* A stub base entity handler for testing purposes.
*/
class StubEntityHandlerBase extends EntityHandlerBase {
/**
* {@inheritdoc}
*/
public $moduleHandler;
/**
* {@inheritdoc}
*/
public $stringTranslation;
}