CustomerLoggedInTest.php 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127
  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\Tax\Api\TaxAddressManagerInterface;
  8. use PHPUnit_Framework_MockObject_MockObject as MockObject;
  9. class CustomerLoggedInTest extends \PHPUnit\Framework\TestCase
  10. {
  11. /**
  12. * @var \Magento\Framework\Event\Observer
  13. */
  14. protected $observerMock;
  15. /**
  16. * Module manager
  17. *
  18. * @var \Magento\Framework\Module\Manager
  19. */
  20. private $moduleManagerMock;
  21. /**
  22. * Cache config
  23. *
  24. * @var \Magento\PageCache\Model\Config
  25. */
  26. private $cacheConfigMock;
  27. /**
  28. * @var \Magento\Weee\Helper\Data
  29. */
  30. protected $weeeHelperMock;
  31. /**
  32. * @var TaxAddressManagerInterface|MockObject
  33. */
  34. private $addressManagerMock;
  35. /**
  36. * @var \Magento\Weee\Observer\CustomerLoggedIn
  37. */
  38. protected $session;
  39. protected function setUp()
  40. {
  41. $objectManager = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this);
  42. $this->observerMock = $this->getMockBuilder(\Magento\Framework\Event\Observer::class)
  43. ->disableOriginalConstructor()
  44. ->setMethods([
  45. 'getCustomerAddress', 'getData'
  46. ])
  47. ->getMock();
  48. $this->moduleManagerMock = $this->getMockBuilder(\Magento\Framework\Module\Manager::class)
  49. ->disableOriginalConstructor()
  50. ->getMock();
  51. $this->cacheConfigMock = $this->getMockBuilder(\Magento\PageCache\Model\Config::class)
  52. ->disableOriginalConstructor()
  53. ->getMock();
  54. $this->weeeHelperMock = $this->getMockBuilder(\Magento\Weee\Helper\Data::class)
  55. ->disableOriginalConstructor()
  56. ->getMock();
  57. $this->addressManagerMock = $this->getMockBuilder(TaxAddressManagerInterface::class)
  58. ->setMethods(['setDefaultAddressAfterSave', 'setDefaultAddressAfterLogIn'])
  59. ->disableOriginalConstructor()
  60. ->getMock();
  61. $this->session = $objectManager->getObject(
  62. \Magento\Weee\Observer\CustomerLoggedIn::class,
  63. [
  64. 'weeeHelper' => $this->weeeHelperMock,
  65. 'moduleManager' => $this->moduleManagerMock,
  66. 'cacheConfig' => $this->cacheConfigMock,
  67. 'addressManager' => $this->addressManagerMock,
  68. ]
  69. );
  70. }
  71. /**
  72. * @test
  73. */
  74. public function testExecute()
  75. {
  76. $this->moduleManagerMock->expects($this->once())
  77. ->method('isEnabled')
  78. ->with('Magento_PageCache')
  79. ->willReturn(true);
  80. $this->cacheConfigMock->expects($this->once())
  81. ->method('isEnabled')
  82. ->willReturn(true);
  83. $this->weeeHelperMock->expects($this->any())
  84. ->method('isEnabled')
  85. ->willReturn(true);
  86. $customerMock = $this->getMockBuilder(\Magento\Customer\Model\Data\Customer::class)
  87. ->disableOriginalConstructor()
  88. ->getMock();
  89. /* @var \Magento\Customer\Api\Data\AddressInterface|\PHPUnit_Framework_MockObject_MockObject $address */
  90. $address = $this->getMockBuilder(\Magento\Customer\Api\Data\AddressInterface::class)
  91. ->disableOriginalConstructor()
  92. ->getMock();
  93. $customerMock->expects($this->once())
  94. ->method('getAddresses')
  95. ->willReturn([$address]);
  96. $this->observerMock->expects($this->once())
  97. ->method('getData')
  98. ->with('customer')
  99. ->willReturn($customerMock);
  100. $this->addressManagerMock->expects($this->once())
  101. ->method('setDefaultAddressAfterLogIn')
  102. ->with([$address]);
  103. $this->session->execute($this->observerMock);
  104. }
  105. }