ConfigTest.php 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Customer\Test\Unit\Model\Address;
  7. class ConfigTest extends \PHPUnit\Framework\TestCase
  8. {
  9. /**
  10. * @var \PHPUnit_Framework_MockObject_MockObject
  11. */
  12. protected $addressHelperMock;
  13. /**
  14. * @var \PHPUnit_Framework_MockObject_MockObject
  15. */
  16. protected $storeMock;
  17. /**
  18. * @var \PHPUnit_Framework_MockObject_MockObject
  19. */
  20. protected $scopeConfigMock;
  21. /**
  22. * @var \Magento\Customer\Model\Address\Config
  23. */
  24. protected $model;
  25. protected function setUp()
  26. {
  27. $cacheId = 'cache_id';
  28. $objectManagerHelper = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this);
  29. $this->storeMock = $this->createMock(\Magento\Store\Model\Store::class);
  30. $this->scopeConfigMock = $this->createMock(\Magento\Framework\App\Config\ScopeConfigInterface::class);
  31. $readerMock = $this->createMock(\Magento\Customer\Model\Address\Config\Reader::class);
  32. $cacheMock = $this->createMock(\Magento\Framework\Config\CacheInterface::class);
  33. $storeManagerMock = $this->createMock(\Magento\Store\Model\StoreManager::class);
  34. $storeManagerMock->expects(
  35. $this->once()
  36. )->method(
  37. 'getStore'
  38. )->will(
  39. $this->returnValue($this->storeMock)
  40. );
  41. $this->addressHelperMock = $this->createMock(\Magento\Customer\Helper\Address::class);
  42. $cacheMock->expects(
  43. $this->once()
  44. )->method(
  45. 'load'
  46. )->with(
  47. $cacheId
  48. )->will(
  49. $this->returnValue(false)
  50. );
  51. $fixtureConfigData = require __DIR__ . '/Config/_files/formats_merged.php';
  52. $readerMock->expects($this->once())->method('read')->will($this->returnValue($fixtureConfigData));
  53. $cacheMock->expects($this->once())
  54. ->method('save')
  55. ->with(
  56. json_encode($fixtureConfigData),
  57. $cacheId
  58. );
  59. $serializerMock = $this->createMock(\Magento\Framework\Serialize\SerializerInterface::class);
  60. $serializerMock->method('serialize')
  61. ->willReturn(json_encode($fixtureConfigData));
  62. $serializerMock->method('unserialize')
  63. ->willReturn($fixtureConfigData);
  64. $this->model = $objectManagerHelper->getObject(
  65. \Magento\Customer\Model\Address\Config::class,
  66. [
  67. 'reader' => $readerMock,
  68. 'cache' => $cacheMock,
  69. 'storeManager' => $storeManagerMock,
  70. 'scopeConfig' => $this->scopeConfigMock,
  71. 'cacheId' => $cacheId,
  72. 'serializer' => $serializerMock,
  73. 'addressHelper' => $this->addressHelperMock,
  74. ]
  75. );
  76. }
  77. public function testGetStore()
  78. {
  79. $this->assertEquals($this->storeMock, $this->model->getStore());
  80. }
  81. public function testSetStore()
  82. {
  83. $this->model->setStore($this->storeMock);
  84. $this->assertEquals($this->storeMock, $this->model->getStore());
  85. }
  86. public function testGetFormats()
  87. {
  88. $this->storeMock->expects($this->once())->method('getId');
  89. $this->scopeConfigMock->expects($this->any())->method('getValue')->will($this->returnValue('someValue'));
  90. $rendererMock = $this->createMock(\Magento\Framework\DataObject::class);
  91. $this->addressHelperMock->expects(
  92. $this->any()
  93. )->method(
  94. 'getRenderer'
  95. )->will(
  96. $this->returnValue($rendererMock)
  97. );
  98. $firstExpected = new \Magento\Framework\DataObject();
  99. $firstExpected->setCode(
  100. 'format_one'
  101. )->setTitle(
  102. 'format_one_title'
  103. )->setDefaultFormat(
  104. 'someValue'
  105. )->setEscapeHtml(
  106. false
  107. )->setRenderer(
  108. null
  109. );
  110. $secondExpected = new \Magento\Framework\DataObject();
  111. $secondExpected->setCode(
  112. 'format_two'
  113. )->setTitle(
  114. 'format_two_title'
  115. )->setDefaultFormat(
  116. 'someValue'
  117. )->setEscapeHtml(
  118. true
  119. )->setRenderer(
  120. null
  121. );
  122. $expectedResult = [$firstExpected, $secondExpected];
  123. $this->assertEquals($expectedResult, $this->model->getFormats());
  124. }
  125. }