function DocParserTest::testAnnotationWithVarTypeArrayError

Same name and namespace in other branches
  1. 10 core/tests/Drupal/Tests/Component/Annotation/Doctrine/DocParserTest.php \Drupal\Tests\Component\Annotation\Doctrine\DocParserTest::testAnnotationWithVarTypeArrayError()
  2. 9 core/tests/Drupal/Tests/Component/Annotation/Doctrine/DocParserTest.php \Drupal\Tests\Component\Annotation\Doctrine\DocParserTest::testAnnotationWithVarTypeArrayError()
  3. 8.9.x core/tests/Drupal/Tests/Component/Annotation/Doctrine/DocParserTest.php \Drupal\Tests\Component\Annotation\Doctrine\DocParserTest::testAnnotationWithVarTypeArrayError()

Tests annotation with var type array error.

Attributes

#[DataProvider('getAnnotationVarTypeArrayProviderInvalid')]

File

core/tests/Drupal/Tests/Component/Annotation/Doctrine/DocParserTest.php, line 586

Class

DocParserTest
This class is a near-copy of Doctrine\Tests\Common\Annotations\DocParserTest, which is part of the Doctrine project: <http://www.doctrine-project.org&gt;. It was copied from version 1.2.7.

Namespace

Drupal\Tests\Component\Annotation\Doctrine

Code

public function testAnnotationWithVarTypeArrayError($attribute, $type, $value, $given) : void {
  $parser = $this->createTestParser();
  $context = 'property SomeClassName::invalidProperty.';
  $docblock = sprintf('@Drupal\\Tests\\Component\\Annotation\\Doctrine\\Fixtures\\AnnotationWithVarType(%s = %s)', $attribute, $value);
  $parser->setTarget(Target::TARGET_PROPERTY);
  try {
    $parser->parse($docblock, $context);
    $this->fail();
  } catch (\Drupal\Component\Annotation\Doctrine\AnnotationException $exc) {
    $this->assertStringContainsString("[Type Error] Attribute \"{$attribute}\" of @Drupal\\Tests\\Component\\Annotation\\Doctrine\\Fixtures\\AnnotationWithVarType declared on property SomeClassName::invalidProperty. expects either a(n) {$type}, or an array of {$type}s, but got {$given}.", $exc->getMessage());
  }
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.