OctalNotationFixerTest.php 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  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\Basic;
  13. use PhpCsFixer\Tests\Test\AbstractFixerTestCase;
  14. /**
  15. * @author SpacePossum
  16. *
  17. * @internal
  18. *
  19. * @covers \PhpCsFixer\Fixer\Basic\OctalNotationFixer
  20. *
  21. * @requires PHP 8.1
  22. */
  23. final class OctalNotationFixerTest extends AbstractFixerTestCase
  24. {
  25. /**
  26. * @dataProvider provideFixCases
  27. */
  28. public function testFix(string $expected, ?string $input = null): void
  29. {
  30. $this->doTest($expected, $input);
  31. }
  32. public static function provideFixCases(): iterable
  33. {
  34. yield [
  35. '<?php
  36. $a = 0;
  37. $b = \'0\';
  38. $foo = 0b01;
  39. $foo = 0x01;
  40. $foo = 0B01;
  41. $foo = 0X01;
  42. $foo = 0b0;
  43. $foo = 0x0;
  44. $foo = 0B0;
  45. $foo = 0X0;
  46. $foo = 1;
  47. $foo = 10;
  48. ',
  49. ];
  50. yield [
  51. '<?php $foo = 0o0000;',
  52. '<?php $foo = 00000;',
  53. ];
  54. yield [
  55. '<?php
  56. $foo = 0o123;
  57. $foo = 0o1;
  58. ',
  59. '<?php
  60. $foo = 0123;
  61. $foo = 01;
  62. ',
  63. ];
  64. yield [
  65. '<?php $foo = 0o1_234;',
  66. '<?php $foo = 01_234;',
  67. ];
  68. yield [
  69. '<?php $foo = +0o1_234;',
  70. '<?php $foo = +01_234;',
  71. ];
  72. yield [
  73. '<?php $foo = -0o123_456;',
  74. '<?php $foo = -0_123_456;',
  75. ];
  76. }
  77. }