CellReferenceHelperTest.php 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193
  1. <?php
  2. namespace PhpOffice\PhpSpreadsheetTests;
  3. use PhpOffice\PhpSpreadsheet\CellReferenceHelper;
  4. use PHPUnit\Framework\TestCase;
  5. class CellReferenceHelperTest extends TestCase
  6. {
  7. /**
  8. * @dataProvider cellReferenceHelperInsertColumnsProvider
  9. */
  10. public function testCellReferenceHelperInsertColumns(string $expectedResult, string $cellAddress): void
  11. {
  12. $cellReferenceHelper = new CellReferenceHelper('E5', 2, 0);
  13. $result = $cellReferenceHelper->updateCellReference($cellAddress);
  14. self::assertSame($expectedResult, $result);
  15. }
  16. public function cellReferenceHelperInsertColumnsProvider(): array
  17. {
  18. return [
  19. ['A1', 'A1'],
  20. ['D5', 'D5'],
  21. ['G5', 'E5'],
  22. ['$E5', '$E5'],
  23. ['G$5', 'E$5'],
  24. ['I5', 'G5'],
  25. ['$G$5', '$G$5'],
  26. ];
  27. }
  28. /**
  29. * @dataProvider cellReferenceHelperDeleteColumnsProvider
  30. */
  31. public function testCellReferenceHelperDeleteColumns(string $expectedResult, string $cellAddress): void
  32. {
  33. $cellReferenceHelper = new CellReferenceHelper('E5', -2, 0);
  34. $result = $cellReferenceHelper->updateCellReference($cellAddress);
  35. self::assertSame($expectedResult, $result);
  36. }
  37. public function cellReferenceHelperDeleteColumnsProvider(): array
  38. {
  39. return [
  40. ['A1', 'A1'],
  41. ['D5', 'D5'],
  42. ['C5', 'E5'],
  43. ['$E5', '$E5'],
  44. ['C$5', 'E$5'],
  45. ['E5', 'G5'],
  46. ['$G$5', '$G$5'],
  47. ];
  48. }
  49. /**
  50. * @dataProvider cellReferenceHelperInsertRowsProvider
  51. */
  52. public function testCellReferenceHelperInsertRows(string $expectedResult, string $cellAddress): void
  53. {
  54. $cellReferenceHelper = new CellReferenceHelper('E5', 0, 2);
  55. $result = $cellReferenceHelper->updateCellReference($cellAddress);
  56. self::assertSame($expectedResult, $result);
  57. }
  58. public function cellReferenceHelperInsertRowsProvider(): array
  59. {
  60. return [
  61. ['A1', 'A1'],
  62. ['E4', 'E4'],
  63. ['E7', 'E5'],
  64. ['E$5', 'E$5'],
  65. ['$E7', '$E5'],
  66. ['E11', 'E9'],
  67. ['$E$9', '$E$9'],
  68. ];
  69. }
  70. /**
  71. * @dataProvider cellReferenceHelperDeleteRowsProvider
  72. */
  73. public function testCellReferenceHelperDeleteRows(string $expectedResult, string $cellAddress): void
  74. {
  75. $cellReferenceHelper = new CellReferenceHelper('E5', 0, -2);
  76. $result = $cellReferenceHelper->updateCellReference($cellAddress);
  77. self::assertSame($expectedResult, $result);
  78. }
  79. public function cellReferenceHelperDeleteRowsProvider(): array
  80. {
  81. return [
  82. ['A1', 'A1'],
  83. ['E4', 'E4'],
  84. ['E3', 'E5'],
  85. ['E$5', 'E$5'],
  86. ['$E3', '$E5'],
  87. ['E7', 'E9'],
  88. ['$E$9', '$E$9'],
  89. ];
  90. }
  91. /**
  92. * @dataProvider cellReferenceHelperInsertColumnsAbsoluteProvider
  93. */
  94. public function testCellReferenceHelperInsertColumnsAbsolute(string $expectedResult, string $cellAddress): void
  95. {
  96. $cellReferenceHelper = new CellReferenceHelper('E5', 2, 0);
  97. $result = $cellReferenceHelper->updateCellReference($cellAddress, true);
  98. self::assertSame($expectedResult, $result);
  99. }
  100. public function cellReferenceHelperInsertColumnsAbsoluteProvider(): array
  101. {
  102. return [
  103. ['A1', 'A1'],
  104. ['D5', 'D5'],
  105. ['G5', 'E5'],
  106. ['$G5', '$E5'],
  107. ['G$5', 'E$5'],
  108. ['I5', 'G5'],
  109. ['$I$5', '$G$5'],
  110. ];
  111. }
  112. /**
  113. * @dataProvider cellReferenceHelperDeleteColumnsAbsoluteProvider
  114. */
  115. public function testCellReferenceHelperDeleteColumnsAbsolute(string $expectedResult, string $cellAddress): void
  116. {
  117. $cellReferenceHelper = new CellReferenceHelper('E5', -2, 0);
  118. $result = $cellReferenceHelper->updateCellReference($cellAddress, true);
  119. self::assertSame($expectedResult, $result);
  120. }
  121. public function cellReferenceHelperDeleteColumnsAbsoluteProvider(): array
  122. {
  123. return [
  124. ['A1', 'A1'],
  125. ['D5', 'D5'],
  126. ['C5', 'E5'],
  127. ['$C5', '$E5'],
  128. ['C$5', 'E$5'],
  129. ['E5', 'G5'],
  130. ['$E$5', '$G$5'],
  131. ];
  132. }
  133. /**
  134. * @dataProvider cellReferenceHelperInsertRowsAbsoluteProvider
  135. */
  136. public function testCellReferenceHelperInsertRowsAbsolute(string $expectedResult, string $cellAddress): void
  137. {
  138. $cellReferenceHelper = new CellReferenceHelper('E5', 0, 2);
  139. $result = $cellReferenceHelper->updateCellReference($cellAddress, true);
  140. self::assertSame($expectedResult, $result);
  141. }
  142. public function cellReferenceHelperInsertRowsAbsoluteProvider(): array
  143. {
  144. return [
  145. ['A1', 'A1'],
  146. ['E4', 'E4'],
  147. ['E7', 'E5'],
  148. ['E$7', 'E$5'],
  149. ['$E7', '$E5'],
  150. ['E11', 'E9'],
  151. ['$E$11', '$E$9'],
  152. ];
  153. }
  154. /**
  155. * @dataProvider cellReferenceHelperDeleteRowsAbsoluteProvider
  156. */
  157. public function testCellReferenceHelperDeleteRowsAbsolute(string $expectedResult, string $cellAddress): void
  158. {
  159. $cellReferenceHelper = new CellReferenceHelper('E5', 0, -2);
  160. $result = $cellReferenceHelper->updateCellReference($cellAddress, true);
  161. self::assertSame($expectedResult, $result);
  162. }
  163. public function cellReferenceHelperDeleteRowsAbsoluteProvider(): array
  164. {
  165. return [
  166. ['A1', 'A1'],
  167. ['E4', 'E4'],
  168. ['E3', 'E5'],
  169. ['E$3', 'E$5'],
  170. ['$E3', '$E5'],
  171. ['E7', 'E9'],
  172. ['$E$7', '$E$9'],
  173. ];
  174. }
  175. }