DataTest.php 6.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Sales\Test\Unit\Helper;
  7. /**
  8. * @SuppressWarnings(PHPMD.CouplingBetweenObjects)
  9. */
  10. class DataTest extends \PHPUnit\Framework\TestCase
  11. {
  12. /**
  13. * @var \Magento\Sales\Helper\Data
  14. */
  15. protected $helper;
  16. /**
  17. * @var \PHPUnit_Framework_MockObject_MockObject | \Magento\Framework\App\Config\ScopeConfigInterface
  18. */
  19. protected $scopeConfigMock;
  20. /**
  21. * @var \PHPUnit_Framework_MockObject_MockObject | \Magento\Sales\Model\Store
  22. */
  23. protected $storeMock;
  24. /**
  25. * @return void
  26. */
  27. protected function setUp()
  28. {
  29. $this->scopeConfigMock = $this->getMockBuilder(\Magento\Framework\App\Config\ScopeConfigInterface::class)
  30. ->disableOriginalConstructor()
  31. ->getMock();
  32. $contextMock = $this->getMockBuilder(\Magento\Framework\App\Helper\Context::class)
  33. ->disableOriginalConstructor()
  34. ->getMock();
  35. $contextMock->expects($this->any())
  36. ->method('getScopeConfig')
  37. ->willReturn($this->scopeConfigMock);
  38. $storeManagerMock = $this->getMockBuilder(\Magento\Store\Model\StoreManagerInterface::class)
  39. ->disableOriginalConstructor()
  40. ->getMock();
  41. $appStateMock = $this->getMockBuilder(\Magento\Framework\App\State::class)
  42. ->disableOriginalConstructor()
  43. ->getMock();
  44. $pricingCurrencyMock = $this->getMockBuilder(\Magento\Framework\Pricing\PriceCurrencyInterface::class)
  45. ->disableOriginalConstructor()
  46. ->getMock();
  47. $this->helper = new \Magento\Sales\Helper\Data(
  48. $contextMock,
  49. $storeManagerMock,
  50. $appStateMock,
  51. $pricingCurrencyMock
  52. );
  53. $this->storeMock = $this->getMockBuilder(\Magento\Sales\Model\Store::class)
  54. ->disableOriginalConstructor()
  55. ->getMock();
  56. }
  57. /**
  58. * @dataProvider getScopeConfigValue
  59. */
  60. public function testCanSendNewOrderConfirmationEmail($scopeConfigValue)
  61. {
  62. $this->setupScopeConfigIsSetFlag(
  63. \Magento\Sales\Model\Order\Email\Container\OrderIdentity::XML_PATH_EMAIL_ENABLED,
  64. $scopeConfigValue
  65. );
  66. $this->assertEquals($scopeConfigValue, $this->helper->canSendNewOrderConfirmationEmail($this->storeMock));
  67. }
  68. /**
  69. * @dataProvider getScopeConfigValue
  70. * @return void
  71. */
  72. public function testCanSendNewOrderEmail($scopeConfigValue)
  73. {
  74. $this->setupScopeConfigIsSetFlag(
  75. \Magento\Sales\Model\Order\Email\Container\OrderIdentity::XML_PATH_EMAIL_ENABLED,
  76. $scopeConfigValue
  77. );
  78. $this->assertEquals($scopeConfigValue, $this->helper->canSendNewOrderEmail($this->storeMock));
  79. }
  80. /**
  81. * @dataProvider getScopeConfigValue
  82. * @return void
  83. */
  84. public function testCanSendOrderCommentEmail($scopeConfigValue)
  85. {
  86. $this->setupScopeConfigIsSetFlag(
  87. \Magento\Sales\Model\Order\Email\Container\OrderCommentIdentity::XML_PATH_EMAIL_ENABLED,
  88. $scopeConfigValue
  89. );
  90. $this->assertEquals($scopeConfigValue, $this->helper->canSendOrderCommentEmail($this->storeMock));
  91. }
  92. /**
  93. * @dataProvider getScopeConfigValue
  94. * @return void
  95. */
  96. public function testCanSendNewShipmentEmail($scopeConfigValue)
  97. {
  98. $this->setupScopeConfigIsSetFlag(
  99. \Magento\Sales\Model\Order\Email\Container\ShipmentIdentity::XML_PATH_EMAIL_ENABLED,
  100. $scopeConfigValue
  101. );
  102. $this->assertEquals($scopeConfigValue, $this->helper->canSendNewShipmentEmail($this->storeMock));
  103. }
  104. /**
  105. * @dataProvider getScopeConfigValue
  106. * @return void
  107. */
  108. public function testCanSendShipmentCommentEmail($scopeConfigValue)
  109. {
  110. $this->setupScopeConfigIsSetFlag(
  111. \Magento\Sales\Model\Order\Email\Container\ShipmentCommentIdentity::XML_PATH_EMAIL_ENABLED,
  112. $scopeConfigValue
  113. );
  114. $this->assertEquals($scopeConfigValue, $this->helper->canSendShipmentCommentEmail($this->storeMock));
  115. }
  116. /**
  117. * @dataProvider getScopeConfigValue
  118. */
  119. public function testCanSendNewInvoiceEmail($scopeConfigValue)
  120. {
  121. $this->setupScopeConfigIsSetFlag(
  122. \Magento\Sales\Model\Order\Email\Container\InvoiceIdentity::XML_PATH_EMAIL_ENABLED,
  123. $scopeConfigValue
  124. );
  125. $this->assertEquals($scopeConfigValue, $this->helper->canSendNewInvoiceEmail($this->storeMock));
  126. }
  127. /**
  128. * @dataProvider getScopeConfigValue
  129. */
  130. public function testCanSendInvoiceCommentEmail($scopeConfigValue)
  131. {
  132. $this->setupScopeConfigIsSetFlag(
  133. \Magento\Sales\Model\Order\Email\Container\InvoiceCommentIdentity::XML_PATH_EMAIL_ENABLED,
  134. $scopeConfigValue
  135. );
  136. $this->assertEquals($scopeConfigValue, $this->helper->canSendInvoiceCommentEmail($this->storeMock));
  137. }
  138. /**
  139. * @dataProvider getScopeConfigValue
  140. * @return void
  141. */
  142. public function testCanSendNewCreditmemoEmail($scopeConfigValue)
  143. {
  144. $this->setupScopeConfigIsSetFlag(
  145. \Magento\Sales\Model\Order\Email\Container\CreditmemoIdentity::XML_PATH_EMAIL_ENABLED,
  146. $scopeConfigValue
  147. );
  148. $this->assertEquals($scopeConfigValue, $this->helper->canSendNewCreditmemoEmail($this->storeMock));
  149. }
  150. /**
  151. * @dataProvider getScopeConfigValue
  152. * @return void
  153. */
  154. public function testCanSendCreditmemoCommentEmail($scopeConfigValue)
  155. {
  156. $this->setupScopeConfigIsSetFlag(
  157. \Magento\Sales\Model\Order\Email\Container\CreditmemoCommentIdentity::XML_PATH_EMAIL_ENABLED,
  158. $scopeConfigValue
  159. );
  160. $this->assertEquals($scopeConfigValue, $this->helper->canSendCreditmemoCommentEmail($this->storeMock));
  161. }
  162. /**
  163. * Sets up the scope config mock which will return a specified value for a config flag.
  164. *
  165. * @param string $flagName
  166. * @param bool $returnValue
  167. * @return void
  168. */
  169. protected function setupScopeConfigIsSetFlag($flagName, $returnValue)
  170. {
  171. $this->scopeConfigMock->expects($this->once())
  172. ->method('isSetFlag')
  173. ->with(
  174. $flagName,
  175. \Magento\Store\Model\ScopeInterface::SCOPE_STORE,
  176. $this->storeMock
  177. )
  178. ->will($this->returnValue($returnValue));
  179. }
  180. /**
  181. * @return array
  182. */
  183. public function getScopeConfigValue()
  184. {
  185. return [
  186. [true],
  187. [false]
  188. ];
  189. }
  190. }