TernaryOperatorSpacesFixerTest.php 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127
  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\Operator;
  12. use PhpCsFixer\Tests\Test\AbstractFixerTestCase;
  13. /**
  14. * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
  15. *
  16. * @internal
  17. *
  18. * @covers \PhpCsFixer\Fixer\Operator\TernaryOperatorSpacesFixer
  19. */
  20. final class TernaryOperatorSpacesFixerTest extends AbstractFixerTestCase
  21. {
  22. /**
  23. * @param string $expected
  24. * @param null|string $input
  25. *
  26. * @dataProvider provideFixCases
  27. */
  28. public function testFix($expected, $input = null)
  29. {
  30. $this->doTest($expected, $input);
  31. }
  32. public function provideFixCases()
  33. {
  34. return [
  35. [
  36. '<?php $a = $a ? 1 : 0;',
  37. '<?php $a = $a ? 1 : 0;',
  38. ],
  39. [
  40. '<?php $a = $a ?
  41. #
  42. : $b;',
  43. ],
  44. [
  45. '<?php $a = $a#
  46. ? '.'
  47. #
  48. 1 : 0;',
  49. ],
  50. [
  51. '<?php $val = (1===1) ? true : false;',
  52. '<?php $val = (1===1)?true:false;',
  53. ],
  54. [
  55. '<?php $val = 1===1 ? true : false;',
  56. '<?php $val = 1===1?true:false;',
  57. ],
  58. [
  59. '<?php
  60. $a = $b ? 2 : ($bc ? 2 : 3);
  61. $a = $bc ? 2 : 3;',
  62. '<?php
  63. $a = $b ? 2 : ($bc?2:3);
  64. $a = $bc?2:3;',
  65. ],
  66. [
  67. '<?php $config = $config ?: new Config();',
  68. '<?php $config = $config ? : new Config();',
  69. ],
  70. [
  71. '<?php
  72. $a = $b ? (
  73. $c + 1
  74. ) : (
  75. $d + 1
  76. );',
  77. ],
  78. [
  79. '<?php
  80. $a = $b
  81. ? $c
  82. : $d;',
  83. '<?php
  84. $a = $b
  85. ?$c
  86. :$d;',
  87. ],
  88. [
  89. '<?php
  90. $a = $b //
  91. ? $c /**/
  92. : $d;',
  93. '<?php
  94. $a = $b //
  95. ?$c /**/
  96. :$d;',
  97. ],
  98. [
  99. '<?php
  100. $a = ($b
  101. ? $c
  102. : ($d
  103. ? $e
  104. : $f
  105. )
  106. );',
  107. ],
  108. [
  109. '<?php
  110. $a = ($b
  111. ? ($c1 ? $c2 : ($c3a ?: $c3b))
  112. : ($d1 ? $d2 : $d3)
  113. );',
  114. '<?php
  115. $a = ($b
  116. ? ($c1?$c2:($c3a? :$c3b))
  117. : ($d1?$d2:$d3)
  118. );',
  119. ],
  120. ];
  121. }
  122. }