CommentToPhpdocFixerTest.php 6.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316
  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\Fixer\Comment;
  12. use PhpCsFixer\Tests\Test\AbstractFixerTestCase;
  13. /**
  14. * @author Kuba Werłos <werlos@gmail.com>
  15. *
  16. * @internal
  17. *
  18. * @covers \PhpCsFixer\Fixer\Comment\CommentToPhpdocFixer
  19. */
  20. final class CommentToPhpdocFixerTest extends AbstractFixerTestCase
  21. {
  22. /**
  23. * @param string $expected
  24. * @param null|string $input
  25. *
  26. * @dataProvider provideTestCases
  27. */
  28. public function testFix($expected, $input = null, array $config = [])
  29. {
  30. $this->fixer->configure($config);
  31. $this->doTest($expected, $input);
  32. }
  33. public function provideTestCases()
  34. {
  35. return [
  36. [
  37. '<?php /* header comment */ $foo = true; /* string $bar */ $bar = "baz";',
  38. ],
  39. [
  40. '<?php /* header comment */ $foo = true; /* $yoda string @var */',
  41. ],
  42. [
  43. '<?php /* header comment */ $foo = true; /* $yoda @var string */',
  44. ],
  45. [
  46. '<?php /* header comment */ $foo = true; /** @var string $bar */ $bar = "baz";',
  47. '<?php /* header comment */ $foo = true; /* @var string $bar */ $bar = "baz";',
  48. ],
  49. [
  50. '<?php /* header comment */ $foo = true; /** @var string $bar */ $bar = "baz";',
  51. '<?php /* header comment */ $foo = true; /*@var string $bar */ $bar = "baz";',
  52. ],
  53. [
  54. '<?php /* header comment */ $foo = true;
  55. /** @var string $bar */
  56. $bar = "baz";
  57. ',
  58. '<?php /* header comment */ $foo = true;
  59. /*** @var string $bar */
  60. $bar = "baz";
  61. ',
  62. ],
  63. [
  64. '<?php /* header comment */ $foo = true;
  65. /** @var string $bar */
  66. $bar = "baz";
  67. ',
  68. '<?php /* header comment */ $foo = true;
  69. // @var string $bar
  70. $bar = "baz";
  71. ',
  72. ],
  73. [
  74. '<?php /* header comment */ $foo = true;
  75. /** @var string $bar */
  76. $bar = "baz";
  77. ',
  78. '<?php /* header comment */ $foo = true;
  79. //@var string $bar
  80. $bar = "baz";
  81. ',
  82. ],
  83. [
  84. '<?php /* header comment */ $foo = true;
  85. /** @var string $bar */
  86. $bar = "baz";
  87. ',
  88. '<?php /* header comment */ $foo = true;
  89. # @var string $bar
  90. $bar = "baz";
  91. ',
  92. ],
  93. [
  94. '<?php /* header comment */ $foo = true;
  95. /** @var string $bar */
  96. $bar = "baz";
  97. ',
  98. '<?php /* header comment */ $foo = true;
  99. #@var string $bar
  100. $bar = "baz";
  101. ',
  102. ],
  103. [
  104. <<<'EOT'
  105. <?php /* header comment */ $foo = true;
  106. /**
  107. * @var string $bar
  108. */
  109. $bar = "baz";
  110. EOT
  111. ,
  112. <<<'EOT'
  113. <?php /* header comment */ $foo = true;
  114. /*
  115. * @var string $bar
  116. */
  117. $bar = "baz";
  118. EOT
  119. ,
  120. ],
  121. [
  122. <<<'EOT'
  123. <?php /* header comment */ $foo = true;
  124. /**
  125. * This is my var
  126. * @var string $foo
  127. * stop using it
  128. * @deprecated since 1.2
  129. */
  130. $foo = 1;
  131. EOT
  132. ,
  133. <<<'EOT'
  134. <?php /* header comment */ $foo = true;
  135. // This is my var
  136. // @var string $foo
  137. // stop using it
  138. // @deprecated since 1.2
  139. $foo = 1;
  140. EOT
  141. ,
  142. ],
  143. [
  144. <<<'EOT'
  145. <?php /* header comment */ $foo = true;
  146. for (;;) {
  147. /**
  148. * This is my var
  149. * @var string $foo
  150. */
  151. $foo = someValue();
  152. }
  153. EOT
  154. ,
  155. <<<'EOT'
  156. <?php /* header comment */ $foo = true;
  157. for (;;) {
  158. // This is my var
  159. // @var string $foo
  160. $foo = someValue();
  161. }
  162. EOT
  163. ,
  164. ],
  165. [
  166. <<<'EOT'
  167. <?php /* header comment */ $foo = true;
  168. /**
  169. * This is my var
  170. * @var string $foo
  171. * stop using it
  172. * @deprecated since 1.3
  173. */
  174. $foo = 1;
  175. EOT
  176. ,
  177. <<<'EOT'
  178. <?php /* header comment */ $foo = true;
  179. # This is my var
  180. # @var string $foo
  181. # stop using it
  182. # @deprecated since 1.3
  183. $foo = 1;
  184. EOT
  185. ,
  186. ],
  187. [
  188. <<<'EOT'
  189. <?php /* header comment */ $foo = true;
  190. /**
  191. * @Column(type="string", length=32, unique=true, nullable=false)
  192. */
  193. $bar = 'baz';
  194. EOT
  195. ,
  196. <<<'EOT'
  197. <?php /* header comment */ $foo = true;
  198. /*
  199. * @Column(type="string", length=32, unique=true, nullable=false)
  200. */
  201. $bar = 'baz';
  202. EOT
  203. ,
  204. ],
  205. [
  206. <<<'EOT'
  207. <?php /* header comment */ $foo = true;
  208. /**
  209. * @ORM\Column(name="id", type="integer")
  210. */
  211. $bar = 42;
  212. EOT
  213. ,
  214. <<<'EOT'
  215. <?php /* header comment */ $foo = true;
  216. /*
  217. * @ORM\Column(name="id", type="integer")
  218. */
  219. $bar = 42;
  220. EOT
  221. ,
  222. ],
  223. [
  224. <<<'EOT'
  225. <?php /* header comment */ $foo = true;
  226. // This is my var
  227. // /** @var string $foo */
  228. $foo = 1;
  229. EOT
  230. ,
  231. ],
  232. [
  233. <<<'EOT'
  234. <?php /* header comment */ $foo = true;
  235. // @todo do something later
  236. $foo = 1;
  237. EOT
  238. ,
  239. null,
  240. ['ignored_tags' => ['todo']],
  241. ],
  242. [
  243. <<<'EOT'
  244. <?php /* header comment */ $foo = true;
  245. // @TODO do something later
  246. $foo = 1;
  247. EOT
  248. ,
  249. null,
  250. ['ignored_tags' => ['todo']],
  251. ],
  252. [
  253. <<<'EOT'
  254. <?php /* header comment */ $foo = true;
  255. /**
  256. * @todo do something later
  257. * @var int $foo
  258. */
  259. $foo = 1;
  260. EOT
  261. ,
  262. <<<'EOT'
  263. <?php /* header comment */ $foo = true;
  264. // @todo do something later
  265. // @var int $foo
  266. $foo = 1;
  267. EOT
  268. ,
  269. ['ignored_tags' => ['todo']],
  270. ],
  271. [
  272. <<<'EOT'
  273. <?php /* header comment */ $foo = true;
  274. /**
  275. * @var int $foo
  276. * @todo do something later
  277. */
  278. $foo = 1;
  279. EOT
  280. ,
  281. <<<'EOT'
  282. <?php /* header comment */ $foo = true;
  283. // @var int $foo
  284. // @todo do something later
  285. $foo = 1;
  286. EOT
  287. ,
  288. ['ignored_tags' => ['todo']],
  289. ],
  290. ];
  291. }
  292. }