AfterAddressSaveTest.php 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Weee\Test\Unit\Observer;
  7. use Magento\Framework\TestFramework\Unit\Helper\ObjectManager;
  8. use Magento\Tax\Api\TaxAddressManagerInterface;
  9. use PHPUnit_Framework_MockObject_MockObject as MockObject;
  10. class AfterAddressSaveTest extends \PHPUnit\Framework\TestCase
  11. {
  12. /**
  13. * @var ObjectManager
  14. */
  15. private $objectManager;
  16. /**
  17. * @var \Magento\Framework\Event\Observer|\PHPUnit_Framework_MockObject_MockObject
  18. */
  19. private $observerMock;
  20. /**
  21. * Module manager
  22. *
  23. * @var \Magento\Framework\Module\Manager|\PHPUnit_Framework_MockObject_MockObject
  24. */
  25. private $moduleManagerMock;
  26. /**
  27. * Cache config
  28. *
  29. * @var \Magento\PageCache\Model\Config|\PHPUnit_Framework_MockObject_MockObject
  30. */
  31. private $cacheConfigMock;
  32. /**
  33. * @var \Magento\Weee\Helper\Data|\PHPUnit_Framework_MockObject_MockObject
  34. */
  35. private $weeeHelperMock;
  36. /**
  37. * @var TaxAddressManagerInterface|MockObject
  38. */
  39. private $addressManagerMock;
  40. /**
  41. * @var \Magento\Weee\Observer\AfterAddressSave
  42. */
  43. protected $session;
  44. protected function setUp()
  45. {
  46. $this->objectManager = new ObjectManager($this);
  47. $this->observerMock = $this->getMockBuilder(\Magento\Framework\Event\Observer::class)
  48. ->disableOriginalConstructor()
  49. ->setMethods(['getCustomerAddress'])
  50. ->getMock();
  51. $this->moduleManagerMock = $this->getMockBuilder(\Magento\Framework\Module\Manager::class)
  52. ->disableOriginalConstructor()
  53. ->getMock();
  54. $this->cacheConfigMock = $this->getMockBuilder(\Magento\PageCache\Model\Config::class)
  55. ->disableOriginalConstructor()
  56. ->getMock();
  57. $this->weeeHelperMock = $this->getMockBuilder(\Magento\Weee\Helper\Data::class)
  58. ->disableOriginalConstructor()
  59. ->getMock();
  60. $this->addressManagerMock = $this->getMockBuilder(TaxAddressManagerInterface::class)
  61. ->setMethods(['setDefaultAddressAfterSave', 'setDefaultAddressAfterLogIn'])
  62. ->disableOriginalConstructor()
  63. ->getMock();
  64. $this->session = $this->objectManager->getObject(
  65. \Magento\Weee\Observer\AfterAddressSave::class,
  66. [
  67. 'weeeHelper' => $this->weeeHelperMock,
  68. 'moduleManager' => $this->moduleManagerMock,
  69. 'cacheConfig' => $this->cacheConfigMock,
  70. 'addressManager' => $this->addressManagerMock,
  71. ]
  72. );
  73. }
  74. /**
  75. * @test
  76. * @dataProvider getExecuteDataProvider
  77. *
  78. * @param $isEnabledPageCache
  79. * @param $isEnabledConfigCache
  80. * @param $isEnabledWeee
  81. * @param $isNeedSetAddress
  82. */
  83. public function testExecute(
  84. $isEnabledPageCache,
  85. $isEnabledConfigCache,
  86. $isEnabledWeee,
  87. $isNeedSetAddress
  88. ) {
  89. $this->moduleManagerMock->expects($this->any())
  90. ->method('isEnabled')
  91. ->with('Magento_PageCache')
  92. ->willReturn($isEnabledPageCache);
  93. $this->cacheConfigMock->expects($this->any())
  94. ->method('isEnabled')
  95. ->willReturn($isEnabledConfigCache);
  96. $this->weeeHelperMock->expects($this->any())
  97. ->method('isEnabled')
  98. ->willReturn($isEnabledWeee);
  99. /* @var \Magento\Customer\Model\Address|\PHPUnit_Framework_MockObject_MockObject $address */
  100. $address = $this->getMockBuilder(\Magento\Customer\Model\Address::class)
  101. ->disableOriginalConstructor()
  102. ->getMock();
  103. $this->observerMock->expects($this->any())
  104. ->method('getCustomerAddress')
  105. ->willReturn($address);
  106. $this->addressManagerMock->expects($isNeedSetAddress ? $this->once() : $this->never())
  107. ->method('setDefaultAddressAfterSave')
  108. ->with($address);
  109. $this->session->execute($this->observerMock);
  110. }
  111. /**
  112. * @return array
  113. */
  114. public function getExecuteDataProvider()
  115. {
  116. return [
  117. [false, false, false, false],
  118. [false, false, true, false],
  119. [false, true, false, false],
  120. [false, true, true, false],
  121. [true, false, false, false],
  122. [true, false, true, false],
  123. [true, true, false, false],
  124. [true, true, true, true],
  125. ];
  126. }
  127. }