Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
SetCanApplyMsrpObserverTest.php
Go to the documentation of this file.
1 <?php
7 
9 
10 class SetCanApplyMsrpObserverTest extends \PHPUnit\Framework\TestCase
11 {
15  protected $observer;
16 
20  protected $configMock;
21 
23  protected $canApplyMsrpMock;
24 
26  protected $msrpMock;
27 
28  protected function setUp()
29  {
30  $this->configMock = $this->createMock(\Magento\Msrp\Model\Config::class);
31  $this->canApplyMsrpMock = $this->createMock(\Magento\Msrp\Model\Quote\Address\CanApplyMsrp::class);
32  $this->msrpMock = $this->createMock(\Magento\Msrp\Model\Quote\Msrp::class);
33 
34  $this->observer = new \Magento\Msrp\Observer\Frontend\Quote\SetCanApplyMsrpObserver(
35  $this->configMock,
36  $this->canApplyMsrpMock,
37  $this->msrpMock
38  );
39  }
40 
42  {
43  $quoteId = 100;
44  $eventMock = $this->createPartialMock(\Magento\Framework\Event::class, ['getQuote']);
45  $quoteMock = $this->createPartialMock(\Magento\Quote\Model\Quote::class, ['getAllAddresses', 'getId']);
46  $observerMock = $this->createMock(\Magento\Framework\Event\Observer::class);
47 
48  $observerMock->expects($this->once())->method('getEvent')->willReturn($eventMock);
49  $eventMock->expects($this->once())->method('getQuote')->willReturn($quoteMock);
50  $this->configMock->expects($this->once())->method('isEnabled')->willReturn(true);
51  $this->msrpMock->expects($this->once())->method('setCanApplyMsrp')->with($quoteId, true);
52 
53  $addressMock = $this->createPartialMock(\Magento\Customer\Model\Address\AbstractAddress::class, ['__wakeup']);
54  $this->canApplyMsrpMock->expects($this->once())->method('isCanApplyMsrp')->willReturn(true);
55 
56  $quoteMock->expects($this->once())->method('getAllAddresses')->willReturn([$addressMock]);
57  $quoteMock->expects($this->once())->method('getId')->willReturn($quoteId);
58  $this->observer->execute($observerMock);
59  }
60 
62  {
63  $quoteId = 100;
64  $eventMock = $this->createPartialMock(\Magento\Framework\Event::class, ['getQuote']);
65  $quoteMock = $this->createPartialMock(\Magento\Quote\Model\Quote::class, ['getAllAddresses', 'getId']);
66  $observerMock = $this->createMock(\Magento\Framework\Event\Observer::class);
67 
68  $observerMock->expects($this->once())->method('getEvent')->willReturn($eventMock);
69  $eventMock->expects($this->once())->method('getQuote')->willReturn($quoteMock);
70  $this->configMock->expects($this->once())->method('isEnabled')->willReturn(true);
71  $this->msrpMock->expects($this->once())->method('setCanApplyMsrp')->with($quoteId, false);
72 
73  $addressMock = $this->createPartialMock(\Magento\Customer\Model\Address\AbstractAddress::class, ['__wakeup']);
74  $this->canApplyMsrpMock->expects($this->once())->method('isCanApplyMsrp')->willReturn(false);
75 
76  $quoteMock->expects($this->once())->method('getAllAddresses')->willReturn([$addressMock]);
77  $quoteMock->expects($this->once())->method('getId')->willReturn($quoteId);
78  $this->observer->execute($observerMock);
79  }
80 
82  {
83  $quoteId = 100;
84  $eventMock = $this->createPartialMock(\Magento\Framework\Event::class, ['getQuote']);
85  $quoteMock = $this->createPartialMock(\Magento\Quote\Model\Quote::class, ['getAllAddresses', 'getId']);
86  $observerMock = $this->createMock(\Magento\Framework\Event\Observer::class);
87 
88  $observerMock->expects($this->once())->method('getEvent')->willReturn($eventMock);
89  $eventMock->expects($this->once())->method('getQuote')->willReturn($quoteMock);
90  $this->configMock->expects($this->once())->method('isEnabled')->willReturn(false);
91  $this->msrpMock->expects($this->once())->method('setCanApplyMsrp')->with($quoteId, false);
92  $quoteMock->expects($this->once())->method('getId')->willReturn($quoteId);
93  $this->observer->execute($observerMock);
94  }
95 }