Verified Commit 5615ede4 authored by Alex Pott's avatar Alex Pott
Browse files

Issue #3317651 by mondrake, longwave, alexpott: Fix DataReferenceBase PHPStan L0 issues

(cherry picked from commit 4695b21f35fb08ff006a40724cccfa8ecec5436f)
parent 7dd1b2f3
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -54,6 +54,9 @@ public function setValue($value, $notify = TRUE) {
   * {@inheritdoc}
   */
  public function getString() {
    if (!method_exists($this, 'getType')) {
      throw new \BadMethodCallException(get_class($this) . '::getType() not implemented');
    }
    return (string) $this->getType() . ':' . $this->getTargetIdentifier();
  }

+0 −5
Original line number Diff line number Diff line
@@ -815,11 +815,6 @@ parameters:
			count: 1
			path: lib/Drupal/Core/Theme/ThemeManager.php

		-
			message: "#^Call to an undefined method Drupal\\\\Core\\\\TypedData\\\\DataReferenceBase\\:\\:getType\\(\\)\\.$#"
			count: 1
			path: lib/Drupal/Core/TypedData/DataReferenceBase.php

		-
			message: "#^Method Drupal\\\\Core\\\\TypedData\\\\ListDataDefinition\\:\\:setDataType\\(\\) should return static\\(Drupal\\\\Core\\\\TypedData\\\\ListDataDefinition\\) but return statement is missing\\.$#"
			count: 1
+13 −0
Original line number Diff line number Diff line
@@ -7,6 +7,7 @@
use Drupal\Core\TypedData\DataDefinitionInterface;
use Drupal\Core\TypedData\DataReferenceDefinition;
use Drupal\Core\TypedData\DataReferenceDefinitionInterface;
use Drupal\Core\TypedData\DataReferenceInterface;
use Drupal\Core\TypedData\ListDataDefinition;
use Drupal\Core\TypedData\ListDataDefinitionInterface;
use Drupal\Core\TypedData\MapDataDefinition;
@@ -99,4 +100,16 @@ public function testDataReferences() {
    $this->assertEquals(serialize($language_reference_definition2), serialize($language_reference_definition));
  }

  /**
   * Tests getString() throws exception when getType() is not implemented.
   */
  public function testNotImplementedGetType() {
    $language_reference_definition = DataReferenceDefinition::create('language');
    $language_reference = $this->typedDataManager->create($language_reference_definition);
    $this->assertInstanceOf(DataReferenceInterface::class, $language_reference);
    $this->expectException(\BadMethodCallException::class);
    $this->expectExceptionMessageMatches('/getType\(\) not implemented/');
    $language_reference->getString();
  }

}