CodesTest.php 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Tax\Test\Unit\Block\Grid\Renderer;
  7. use Magento\Backend\Block\Context;
  8. use Magento\Framework\DataObject;
  9. use Magento\Framework\Escaper;
  10. use Magento\Framework\TestFramework\Unit\Helper\ObjectManager;
  11. use Magento\Tax\Block\Grid\Renderer\Codes;
  12. /**
  13. * Test for Tax Rates codes column of Tax Rules grid.
  14. *
  15. * Class CodesTest
  16. */
  17. class CodesTest extends \PHPUnit\Framework\TestCase
  18. {
  19. /**
  20. * @var Codes
  21. */
  22. private $codes;
  23. protected function setUp()
  24. {
  25. $objectManager = new ObjectManager($this);
  26. $escaper = $this->getMockBuilder(Escaper::class)
  27. ->disableOriginalConstructor()
  28. ->getMock();
  29. $escaper->expects($this->any())
  30. ->method('escapeHtml')
  31. ->willReturnCallback(
  32. function ($str) {
  33. return 'ESCAPED:' .$str;
  34. }
  35. );
  36. $context = $this->getMockBuilder(Context::class)
  37. ->disableOriginalConstructor()
  38. ->getMock();
  39. $context->expects($this->any())
  40. ->method('getEscaper')
  41. ->willReturn($escaper);
  42. $this->codes = $objectManager->getObject(
  43. Codes::class,
  44. ['context' => $context]
  45. );
  46. }
  47. /**
  48. * Test rates codes grid column renderer.
  49. *
  50. * @param array $ratesCodes
  51. * @param string $expected
  52. * @see Magento\Tax\Block\Grid\Renderer\Codes::render
  53. * @dataProvider ratesCodesDataProvider
  54. */
  55. public function testRenderCodes($ratesCodes, $expected)
  56. {
  57. $row = new DataObject();
  58. $row->setTaxRatesCodes($ratesCodes);
  59. $this->assertEquals($expected, $this->codes->render($row));
  60. }
  61. /**
  62. * Provider of rates codes and render expectations.
  63. *
  64. * @return array
  65. */
  66. public function ratesCodesDataProvider()
  67. {
  68. return [
  69. [['some_code'], 'ESCAPED:some_code'],
  70. [['some_code', 'some_code2'], 'ESCAPED:some_code, some_code2'],
  71. [[], ''],
  72. [null, ''],
  73. ];
  74. }
  75. }