Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
AfterAddressSaveTest.php
Go to the documentation of this file.
1 <?php
7 
10 use PHPUnit_Framework_MockObject_MockObject as MockObject;
11 
12 class AfterAddressSaveTest extends \PHPUnit\Framework\TestCase
13 {
17  private $objectManager;
18 
22  private $observerMock;
23 
29  private $moduleManagerMock;
30 
36  private $cacheConfigMock;
37 
41  private $weeeHelperMock;
42 
46  private $addressManagerMock;
47 
51  protected $session;
52 
53  protected function setUp()
54  {
55  $this->objectManager = new ObjectManager($this);
56  $this->observerMock = $this->getMockBuilder(\Magento\Framework\Event\Observer::class)
57  ->disableOriginalConstructor()
58  ->setMethods(['getCustomerAddress'])
59  ->getMock();
60 
61  $this->moduleManagerMock = $this->getMockBuilder(\Magento\Framework\Module\Manager::class)
62  ->disableOriginalConstructor()
63  ->getMock();
64 
65  $this->cacheConfigMock = $this->getMockBuilder(\Magento\PageCache\Model\Config::class)
66  ->disableOriginalConstructor()
67  ->getMock();
68 
69  $this->weeeHelperMock = $this->getMockBuilder(\Magento\Weee\Helper\Data::class)
70  ->disableOriginalConstructor()
71  ->getMock();
72 
73  $this->addressManagerMock = $this->getMockBuilder(TaxAddressManagerInterface::class)
74  ->setMethods(['setDefaultAddressAfterSave', 'setDefaultAddressAfterLogIn'])
75  ->disableOriginalConstructor()
76  ->getMock();
77 
78  $this->session = $this->objectManager->getObject(
79  \Magento\Weee\Observer\AfterAddressSave::class,
80  [
81  'weeeHelper' => $this->weeeHelperMock,
82  'moduleManager' => $this->moduleManagerMock,
83  'cacheConfig' => $this->cacheConfigMock,
84  'addressManager' => $this->addressManagerMock,
85  ]
86  );
87  }
88 
98  public function testExecute(
99  $isEnabledPageCache,
100  $isEnabledConfigCache,
101  $isEnabledWeee,
102  $isNeedSetAddress
103  ) {
104  $this->moduleManagerMock->expects($this->any())
105  ->method('isEnabled')
106  ->with('Magento_PageCache')
107  ->willReturn($isEnabledPageCache);
108 
109  $this->cacheConfigMock->expects($this->any())
110  ->method('isEnabled')
111  ->willReturn($isEnabledConfigCache);
112 
113  $this->weeeHelperMock->expects($this->any())
114  ->method('isEnabled')
115  ->willReturn($isEnabledWeee);
116 
117  /* @var \Magento\Customer\Model\Address|\PHPUnit_Framework_MockObject_MockObject $address */
118  $address = $this->getMockBuilder(\Magento\Customer\Model\Address::class)
119  ->disableOriginalConstructor()
120  ->getMock();
121 
122  $this->observerMock->expects($this->any())
123  ->method('getCustomerAddress')
124  ->willReturn($address);
125 
126  $this->addressManagerMock->expects($isNeedSetAddress ? $this->once() : $this->never())
127  ->method('setDefaultAddressAfterSave')
128  ->with($address);
129 
130  $this->session->execute($this->observerMock);
131  }
132 
136  public function getExecuteDataProvider()
137  {
138  return [
139  [false, false, false, false],
140  [false, false, true, false],
141  [false, true, false, false],
142  [false, true, true, false],
143  [true, false, false, false],
144  [true, false, true, false],
145  [true, true, false, false],
146  [true, true, true, true],
147  ];
148  }
149 }
testExecute( $isEnabledPageCache, $isEnabledConfigCache, $isEnabledWeee, $isNeedSetAddress)
$address
Definition: customer.php:38