9 use \Magento\Persistent\Observer\RemoveGuestPersistenceOnEmptyCartObserver;
50 $this->persistentSessionMock = $this->createMock(\
Magento\Persistent\Helper\Session::class);
51 $this->sessionModelMock = $this->createMock(\
Magento\Persistent\Model\Session::class);
52 $this->persistentDataMock = $this->createMock(\
Magento\Persistent\Helper\Data::class);
53 $this->customerSessionMock = $this->createMock(\
Magento\Customer\Model\Session::class);
54 $this->quoteManagerMock = $this->createMock(\
Magento\Persistent\Model\QuoteManager::class);
55 $this->observerMock = $this->createMock(\
Magento\Framework\Event\Observer::class);
56 $this->cartRepositoryMock = $this->createMock(
57 \
Magento\Quote\Api\CartRepositoryInterface::class
61 $this->persistentSessionMock,
62 $this->persistentDataMock,
63 $this->quoteManagerMock,
64 $this->customerSessionMock,
65 $this->cartRepositoryMock
71 $this->persistentSessionMock->expects($this->once())->method(
'isPersistent')->willReturn(
false);
73 $this->model->execute($this->observerMock);
78 $this->persistentSessionMock->expects($this->once())->method(
'isPersistent')->willReturn(
true);
79 $this->customerSessionMock->expects($this->once())->method(
'isLoggedIn')->willReturn(
true);
81 $this->model->execute($this->observerMock);
86 $this->persistentSessionMock->expects($this->once())->method(
'isPersistent')->willReturn(
true);
87 $this->customerSessionMock->expects($this->once())->method(
'isLoggedIn')->willReturn(
false);
88 $this->persistentDataMock->expects($this->once())->method(
'isShoppingCartPersist')->willReturn(
false);
90 $this->model->execute($this->observerMock);
93 public function testExecuteWithEmptyCart()
98 $this->persistentSessionMock->expects($this->once())->method(
'isPersistent')->willReturn(
true);
99 $this->customerSessionMock->expects($this->once())->method(
'isLoggedIn')->willReturn(
false);
100 $this->persistentDataMock->expects($this->once())->method(
'isShoppingCartPersist')->willReturn(
true);
101 $sessionMock = $this->createPartialMock(\
Magento\Persistent\Model\Session::class, [
'getCustomerId']);
102 $this->persistentSessionMock->expects($this->once())->method(
'getSession')->willReturn($sessionMock);
103 $sessionMock->expects($this->once())->method(
'getCustomerId')->willReturn(
$customerId);
105 $quoteMock = $this->getMockForAbstractClass(
106 \
Magento\Quote\Api\Data\CartInterface::class,
112 [
'setCustomerEmail',
'getAddressesCollection'],
115 $this->cartRepositoryMock->expects($this->once())
116 ->method(
'getActiveForCustomer')
118 ->willReturn($quoteMock);
119 $quoteMock->expects($this->once())->method(
'getItemsCount')->willReturn($emptyCount);
120 $this->quoteManagerMock->expects($this->once())->method(
'setGuest');
122 $this->model->execute($this->observerMock);
128 $exception = new \Magento\Framework\Exception\NoSuchEntityException;
130 $this->persistentSessionMock->expects($this->once())->method(
'isPersistent')->willReturn(
true);
131 $this->customerSessionMock->expects($this->once())->method(
'isLoggedIn')->willReturn(
false);
132 $this->persistentDataMock->expects($this->once())->method(
'isShoppingCartPersist')->willReturn(
true);
133 $sessionMock = $this->createPartialMock(\
Magento\Persistent\Model\Session::class, [
'getCustomerId']);
134 $this->persistentSessionMock->expects($this->once())->method(
'getSession')->willReturn($sessionMock);
135 $sessionMock->expects($this->once())->method(
'getCustomerId')->willReturn(
$customerId);
136 $this->cartRepositoryMock->expects($this->once())
137 ->method(
'getActiveForCustomer')
139 ->willThrowException($exception);
140 $this->quoteManagerMock->expects($this->once())->method(
'setGuest');
142 $this->model->execute($this->observerMock);
testExecuteWithNonexistentCart()
testExecuteWithLoggedInCustomer()
testExecuteWithNonPersistentShoppingCart()
testExecuteWhenSessionIsNotPersistent()