Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
CustomerLoggedInTest.php
Go to the documentation of this file.
1 <?php
7 
9 use PHPUnit_Framework_MockObject_MockObject as MockObject;
10 
11 class CustomerLoggedInTest extends \PHPUnit\Framework\TestCase
12 {
16  protected $observerMock;
17 
23  private $moduleManagerMock;
24 
30  private $cacheConfigMock;
31 
35  protected $weeeHelperMock;
36 
40  private $addressManagerMock;
41 
45  protected $session;
46 
47  protected function setUp()
48  {
49  $objectManager = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this);
50  $this->observerMock = $this->getMockBuilder(\Magento\Framework\Event\Observer::class)
51  ->disableOriginalConstructor()
52  ->setMethods([
53  'getCustomerAddress', 'getData'
54  ])
55  ->getMock();
56 
57  $this->moduleManagerMock = $this->getMockBuilder(\Magento\Framework\Module\Manager::class)
58  ->disableOriginalConstructor()
59  ->getMock();
60 
61  $this->cacheConfigMock = $this->getMockBuilder(\Magento\PageCache\Model\Config::class)
62  ->disableOriginalConstructor()
63  ->getMock();
64 
65  $this->weeeHelperMock = $this->getMockBuilder(\Magento\Weee\Helper\Data::class)
66  ->disableOriginalConstructor()
67  ->getMock();
68 
69  $this->addressManagerMock = $this->getMockBuilder(TaxAddressManagerInterface::class)
70  ->setMethods(['setDefaultAddressAfterSave', 'setDefaultAddressAfterLogIn'])
71  ->disableOriginalConstructor()
72  ->getMock();
73 
74  $this->session = $objectManager->getObject(
75  \Magento\Weee\Observer\CustomerLoggedIn::class,
76  [
77  'weeeHelper' => $this->weeeHelperMock,
78  'moduleManager' => $this->moduleManagerMock,
79  'cacheConfig' => $this->cacheConfigMock,
80  'addressManager' => $this->addressManagerMock,
81  ]
82  );
83  }
84 
88  public function testExecute()
89  {
90  $this->moduleManagerMock->expects($this->once())
91  ->method('isEnabled')
92  ->with('Magento_PageCache')
93  ->willReturn(true);
94 
95  $this->cacheConfigMock->expects($this->once())
96  ->method('isEnabled')
97  ->willReturn(true);
98 
99  $this->weeeHelperMock->expects($this->any())
100  ->method('isEnabled')
101  ->willReturn(true);
102 
103  $customerMock = $this->getMockBuilder(\Magento\Customer\Model\Data\Customer::class)
104  ->disableOriginalConstructor()
105  ->getMock();
106 
107  /* @var \Magento\Customer\Api\Data\AddressInterface|\PHPUnit_Framework_MockObject_MockObject $address */
108  $address = $this->getMockBuilder(\Magento\Customer\Api\Data\AddressInterface::class)
109  ->disableOriginalConstructor()
110  ->getMock();
111 
112  $customerMock->expects($this->once())
113  ->method('getAddresses')
114  ->willReturn([$address]);
115 
116  $this->observerMock->expects($this->once())
117  ->method('getData')
118  ->with('customer')
119  ->willReturn($customerMock);
120 
121  $this->addressManagerMock->expects($this->once())
122  ->method('setDefaultAddressAfterLogIn')
123  ->with([$address]);
124 
125  $this->session->execute($this->observerMock);
126  }
127 }
$objectManager
Definition: bootstrap.php:17
$address
Definition: customer.php:38