DefaultRendererTest.php 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Customer\Block\Address\Renderer;
  7. use Magento\Eav\Model\AttributeDataFactory;
  8. /**
  9. * DefaultRenderer
  10. */
  11. class DefaultRendererTest extends \PHPUnit\Framework\TestCase
  12. {
  13. /**
  14. * @var \Magento\Customer\Model\Address\Config
  15. */
  16. protected $_addressConfig;
  17. public function setUp()
  18. {
  19. $this->_addressConfig = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->get(
  20. \Magento\Customer\Model\Address\Config::class
  21. );
  22. }
  23. /**
  24. * @dataProvider renderArrayDataProvider
  25. */
  26. public function testRenderArray($addressAttributes, $format, $expected)
  27. {
  28. /** @var DefaultRenderer $renderer */
  29. $renderer = $this->_addressConfig->getFormatByCode($format)->getRenderer();
  30. $actual = $renderer->renderArray($addressAttributes);
  31. $this->assertEquals($expected, $actual);
  32. }
  33. public function renderArrayDataProvider()
  34. {
  35. $addressAttributes = [
  36. 'city' => 'CityM',
  37. 'country_id' => 'US',
  38. 'firstname' => 'John',
  39. 'lastname' => 'Smith',
  40. 'postcode' => '75477',
  41. 'region' => 'Alabama',
  42. 'region_id' => '1',
  43. 'street' => ['Green str, 67'],
  44. 'telephone' => '3468676',
  45. ];
  46. $htmlResult = "John Smith<br />\n\nGreen str, 67<br />\n\n\n\nCityM, Alabama, " .
  47. "75477<br />\nUnited States<br />\nT: <a href=\"tel:3468676\">3468676</a>\n\n";
  48. return [
  49. [$addressAttributes, AttributeDataFactory::OUTPUT_FORMAT_HTML, $htmlResult],
  50. [
  51. $addressAttributes,
  52. AttributeDataFactory::OUTPUT_FORMAT_PDF,
  53. "John Smith|\n\nGreen str, 67|\n\n\n\nCityM, Alabama, 75477|\nUnited States|\nT: 3468676|\n|\n|"
  54. ],
  55. [
  56. $addressAttributes,
  57. AttributeDataFactory::OUTPUT_FORMAT_ONELINE,
  58. "John Smith, Green str, 67, CityM, Alabama 75477, United States"
  59. ],
  60. [
  61. $addressAttributes,
  62. AttributeDataFactory::OUTPUT_FORMAT_TEXT,
  63. "John Smith\n\nGreen str, 67\n\n\n\n\nCityM, Alabama, 75477\nUnited States\nT: 3468676\n\n"
  64. ]
  65. ];
  66. }
  67. /**
  68. * @dataProvider renderDataProvider
  69. */
  70. public function testRender($address, $format, $expected)
  71. {
  72. /** @var DefaultRenderer $renderer */
  73. $renderer = $this->_addressConfig->getFormatByCode($format)->getRenderer();
  74. $actual = $renderer->render($address);
  75. $this->assertEquals($expected, $actual);
  76. }
  77. public function renderDataProvider()
  78. {
  79. $data = [
  80. 'city' => 'CityM',
  81. 'country_id' => 'US',
  82. 'firstname' => 'John',
  83. 'lastname' => 'Smith',
  84. 'postcode' => '75477',
  85. 'region' => 'Alabama',
  86. 'region_id' => '1',
  87. 'street' => ['Green str, 67'],
  88. 'telephone' => '3468676',
  89. ];
  90. $address = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create(
  91. \Magento\Customer\Model\Address::class
  92. )->setData(
  93. $data
  94. );
  95. return [
  96. [
  97. $address,
  98. AttributeDataFactory::OUTPUT_FORMAT_HTML,
  99. "John Smith<br />\n\nGreen str, 67<br />\n\n\n\nCityM, Alabama, 75477<br />
  100. United States<br />\nT: <a href=\"tel:3468676\">3468676</a>\n\n",
  101. ],
  102. [
  103. $address,
  104. AttributeDataFactory::OUTPUT_FORMAT_PDF,
  105. "John Smith|\n\nGreen str, 67|\n\n\n\nCityM, Alabama, 75477|
  106. United States|\nT: 3468676|\n|\n|"
  107. ],
  108. [
  109. $address,
  110. AttributeDataFactory::OUTPUT_FORMAT_ONELINE,
  111. "John Smith, Green str, 67, CityM, Alabama 75477, United States"
  112. ],
  113. [
  114. $address,
  115. AttributeDataFactory::OUTPUT_FORMAT_TEXT,
  116. "John Smith\n\nGreen str, 67\n\n\n\n\nCityM, Alabama, 75477
  117. United States\nT: 3468676\n\n"
  118. ]
  119. ];
  120. }
  121. }