TransformerTest.php 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. <?php
  2. /*
  3. * This file is part of PHP CS Fixer.
  4. *
  5. * (c) Fabien Potencier <fabien@symfony.com>
  6. * Dariusz Rumiński <dariusz.ruminski@gmail.com>
  7. *
  8. * This source file is subject to the MIT license that is bundled
  9. * with this source code in the file LICENSE.
  10. */
  11. namespace PhpCsFixer\tests\AutoReview;
  12. use PhpCsFixer\Tests\TestCase;
  13. use PhpCsFixer\Tokenizer\TransformerInterface;
  14. use PhpCsFixer\Tokenizer\Transformers;
  15. /**
  16. * @author SpacePossum
  17. *
  18. * @internal
  19. *
  20. * @coversNothing
  21. * @group auto-review
  22. * @group covers-nothing
  23. */
  24. final class TransformerTest extends TestCase
  25. {
  26. /**
  27. * @param TransformerInterface $transformer
  28. *
  29. * @dataProvider provideTransformerCases
  30. */
  31. public function testTransformersAreFinal(TransformerInterface $transformer)
  32. {
  33. $transformerRef = new \ReflectionClass($transformer);
  34. $this->assertTrue(
  35. $transformerRef->isFinal(),
  36. sprintf('Transformer "%s" must be declared "final."', $transformer->getName())
  37. );
  38. }
  39. /**
  40. * @return TransformerInterface[]
  41. */
  42. public function provideTransformerCases()
  43. {
  44. static $transformersArray = null;
  45. if (null === $transformersArray) {
  46. $transformers = Transformers::create();
  47. $reflection = new \ReflectionObject($transformers);
  48. $transformersItems = $reflection->getProperty('items');
  49. $transformersItems->setAccessible(true);
  50. $transformersItems = $transformersItems->getValue($transformers);
  51. $transformersArray = [];
  52. foreach ($transformersItems as $transformer) {
  53. $transformersArray[] = [$transformer];
  54. }
  55. }
  56. return $transformersArray;
  57. }
  58. }