TransformersTest.php 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. <?php
  2. /*
  3. * This file is part of the PHP CS utility.
  4. *
  5. * (c) Fabien Potencier <fabien@symfony.com>
  6. *
  7. * This source file is subject to the MIT license that is bundled
  8. * with this source code in the file LICENSE.
  9. */
  10. namespace Symfony\CS\Tests\Tokenizer;
  11. use Symfony\CS\Tokenizer\TransformerInterface;
  12. use Symfony\CS\Tokenizer\Transformers;
  13. /**
  14. * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
  15. */
  16. class TransformersTest extends \PHPUnit_Framework_TestCase
  17. {
  18. /**
  19. * @dataProvider provideCustomTokenPrefixCases
  20. */
  21. public function testCustomTokenPrefix($name)
  22. {
  23. $this->assertStringStartsWith('CT_', $name, 'Custom token should start with `CT_` prefix.');
  24. }
  25. public function provideCustomTokenPrefixCases()
  26. {
  27. $transformers = Transformers::create();
  28. $transformersReflection = new \ReflectionClass($transformers);
  29. $propertyReflection = $transformersReflection->getProperty('items');
  30. $propertyReflection->setAccessible(true);
  31. $items = $propertyReflection->getValue($transformers);
  32. $cases = array();
  33. foreach ($items as $item) {
  34. foreach ($item->getCustomTokenNames() as $name) {
  35. $cases[] = array($name);
  36. }
  37. }
  38. return $cases;
  39. }
  40. /**
  41. * @dataProvider getPriorityCases
  42. */
  43. public function testPriority(TransformerInterface $first, TransformerInterface $second)
  44. {
  45. $this->assertLessThan($first->getPriority(), $second->getPriority());
  46. }
  47. public function getPriorityCases()
  48. {
  49. $transformersObject = Transformers::create();
  50. $transformers = array();
  51. foreach ($transformersObject->getTransformers() as $transformer) {
  52. $transformers[$transformer->getName()] = $transformer;
  53. }
  54. return array(
  55. array($transformers['curly_close'], $transformers['dollar_close_curly_braces']),
  56. array($transformers['curly_close'], $transformers['dynamic_prop_brace']),
  57. array($transformers['curly_close'], $transformers['dynamic_var_brace']),
  58. );
  59. }
  60. }