NoUnneededImportAliasFixerTest.php 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. <?php
  2. declare(strict_types=1);
  3. /*
  4. * This file is part of PHP CS Fixer.
  5. *
  6. * (c) Fabien Potencier <fabien@symfony.com>
  7. * Dariusz Rumiński <dariusz.ruminski@gmail.com>
  8. *
  9. * This source file is subject to the MIT license that is bundled
  10. * with this source code in the file LICENSE.
  11. */
  12. namespace PhpCsFixer\Tests\Fixer\Import;
  13. use PhpCsFixer\Tests\Test\AbstractFixerTestCase;
  14. /**
  15. * @internal
  16. *
  17. * @covers \PhpCsFixer\Fixer\Import\NoUnneededImportAliasFixer
  18. */
  19. final class NoUnneededImportAliasFixerTest extends AbstractFixerTestCase
  20. {
  21. /**
  22. * @dataProvider provideFixCases
  23. */
  24. public function testFix(string $expected, ?string $input = null): void
  25. {
  26. $this->doTest($expected, $input);
  27. }
  28. public static function provideFixCases(): iterable
  29. {
  30. yield [
  31. '<?php use some\ns\{ClassA, ClassB, ClassC };',
  32. '<?php use some\ns\{ClassA, ClassB, ClassC as ClassC};',
  33. ];
  34. yield [
  35. '<?php
  36. use A\B\C , D\E\F as G;
  37. use const X\Y\Z as Z1, U\V\W ;
  38. use function U\V\W\FX , U\V\W\FY ;
  39. ',
  40. '<?php
  41. use A\B\C as C, D\E\F as G;
  42. use const X\Y\Z as Z1, U\V\W as W;
  43. use function U\V\W\FX as FX, U\V\W\FY as FY;
  44. ',
  45. ];
  46. yield [
  47. '<?php
  48. use F ;
  49. use X as x;
  50. use const CA ;
  51. use function FW ;
  52. ',
  53. '<?php
  54. use F as F;
  55. use X as x;
  56. use const CA as CA;
  57. use function FW as FW;
  58. ',
  59. ];
  60. yield [
  61. '<?php
  62. use /* 1 */\F ;
  63. use const \CA/* 2 */ /* 3 */;
  64. use /* 4 */ function/* 5 */ \FW /* 6 */ /* 7 */ ;
  65. ',
  66. '<?php
  67. use /* 1 */\F as F;
  68. use const \CA/* 2 */ as CA/* 3 */;
  69. use /* 4 */ function/* 5 */ \FW /* 6 */ as /* 7 */ FW;
  70. ',
  71. ];
  72. yield [
  73. '<?php
  74. use \F\B\C ;
  75. use const \X\Y\CA ;
  76. use function \U\V\FW ;
  77. ',
  78. '<?php
  79. use \F\B\C as C;
  80. use const \X\Y\CA as CA;
  81. use function \U\V\FW as FW;
  82. ',
  83. ];
  84. yield [
  85. '<?php use A\B ?> X <?php use C\D; use E\F ?>',
  86. '<?php use A\B as B ?> X <?php use C\D; use E\F as F ?>',
  87. ];
  88. yield [
  89. '<?php use A\B ?>',
  90. '<?php use A\B as B ?>',
  91. ];
  92. yield [
  93. '<?php foreach ($a as $a) {}',
  94. ];
  95. }
  96. }