NoEmptyPhpdocFixerTest.php 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216
  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\Phpdoc;
  13. use PhpCsFixer\Tests\Test\AbstractFixerTestCase;
  14. /**
  15. * @internal
  16. *
  17. * @covers \PhpCsFixer\Fixer\Phpdoc\NoEmptyPhpdocFixer
  18. */
  19. final class NoEmptyPhpdocFixerTest 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 'multiple PHPdocs' => [
  31. '<?php
  32. /** a */
  33. '.'
  34. '.'
  35. '.'
  36. '.'
  37. /**
  38. * test
  39. */
  40. /** *test* */
  41. ',
  42. '<?php
  43. /** *//** a *//** */
  44. /**
  45. */
  46. /**
  47. *
  48. */
  49. /** ***
  50. *
  51. ******/
  52. /**
  53. **/
  54. /**
  55. * test
  56. */
  57. /** *test* */
  58. ',
  59. ];
  60. yield 'PHPDoc on its own line' => [
  61. <<<'PHP'
  62. <?php
  63. echo $a;
  64. echo $b;
  65. PHP,
  66. <<<'PHP'
  67. <?php
  68. echo $a;
  69. /** */
  70. echo $b;
  71. PHP,
  72. ];
  73. yield 'PHPDoc on its own line with empty line before' => [
  74. <<<'PHP'
  75. <?php
  76. function f() {
  77. echo $a;
  78. echo $b;
  79. }
  80. PHP,
  81. <<<'PHP'
  82. <?php
  83. function f() {
  84. echo $a;
  85. /** */
  86. echo $b;
  87. }
  88. PHP,
  89. ];
  90. yield 'PHPDoc on its own line with empty line after' => [
  91. <<<'PHP'
  92. <?php
  93. echo $a;
  94. echo $b;
  95. PHP,
  96. <<<'PHP'
  97. <?php
  98. echo $a;
  99. /** */
  100. echo $b;
  101. PHP,
  102. ];
  103. yield 'PHPDoc on its own line with empty line before and after' => [
  104. <<<'PHP'
  105. <?php
  106. echo $a;
  107. echo $b;
  108. PHP,
  109. <<<'PHP'
  110. <?php
  111. echo $a;
  112. /** */
  113. echo $b;
  114. PHP,
  115. ];
  116. yield 'PHPDoc with empty line before and content after' => [
  117. <<<'PHP'
  118. <?php
  119. function f() {
  120. echo $a;
  121. echo $b;
  122. }
  123. PHP,
  124. <<<'PHP'
  125. <?php
  126. function f() {
  127. echo $a;
  128. /** */echo $b;
  129. }
  130. PHP,
  131. ];
  132. yield 'PHPDoc with content before and empty line after' => [
  133. <<<'PHP'
  134. <?php
  135. function f() {
  136. echo $a;
  137. echo $b;
  138. }
  139. PHP,
  140. <<<'PHP'
  141. <?php
  142. function f() {
  143. echo $a;/** */
  144. echo $b;
  145. }
  146. PHP,
  147. ];
  148. yield 'PHPDoc after open tag - the same line' => [
  149. '<?php '.'
  150. foo();
  151. ',
  152. '<?php /** */
  153. foo();
  154. ',
  155. ];
  156. yield 'PHPDoc after open tag - next line' => [
  157. <<<'PHP'
  158. <?php
  159. foo();
  160. PHP,
  161. <<<'PHP'
  162. <?php
  163. /** */
  164. foo();
  165. PHP,
  166. ];
  167. yield 'PHPDoc after open tag - next next next line' => [
  168. <<<'PHP'
  169. <?php
  170. foo();
  171. PHP,
  172. <<<'PHP'
  173. <?php
  174. /** */
  175. foo();
  176. PHP,
  177. ];
  178. }
  179. }