33 private $quoteRepositoryMock;
38 private $shippingAddressMock;
43 private $shippingMethodUpdater;
47 $this->configMock = $this->getMockBuilder(Config::class)
48 ->disableOriginalConstructor()
50 $this->quoteRepositoryMock = $this->getMockBuilder(CartRepositoryInterface::class)
51 ->getMockForAbstractClass();
53 $this->shippingAddressMock = $this->getMockBuilder(Address::class)
56 'setShouldIgnoreValidation',
59 'setCollectShippingRates' 61 )->disableOriginalConstructor()
66 $this->quoteRepositoryMock
76 $quoteMock = $this->getQuoteMock();
78 $this->shippingMethodUpdater->execute(
'', $quoteMock);
83 $quoteMock = $this->getQuoteMock();
85 $quoteMock->expects(self::exactly(2))
86 ->method(
'getIsVirtual')
89 $quoteMock->expects(self::exactly(2))
90 ->method(
'getShippingAddress')
91 ->willReturn($this->shippingAddressMock);
93 $this->shippingAddressMock->expects(self::once())
94 ->method(
'getShippingMethod')
95 ->willReturn(self::TEST_SHIPPING_METHOD .
'-bad');
97 $this->disabledQuoteAddressValidationStep($quoteMock);
99 $this->shippingAddressMock->expects(self::once())
100 ->method(
'setShippingMethod')
101 ->willReturn(self::TEST_SHIPPING_METHOD);
102 $this->shippingAddressMock->expects(self::once())
103 ->method(
'setCollectShippingRates')
106 $quoteMock->expects(self::once())
107 ->method(
'collectTotals');
109 $this->quoteRepositoryMock->expects(self::once())
113 $this->shippingMethodUpdater->execute(self::TEST_SHIPPING_METHOD, $quoteMock);
119 private function disabledQuoteAddressValidationStep(\PHPUnit_Framework_MockObject_MockObject $quoteMock)
121 $billingAddressMock = $this->getBillingAddressMock($quoteMock);
123 $billingAddressMock->expects(self::once())
124 ->method(
'setShouldIgnoreValidation')
128 $this->shippingAddressMock->expects(self::once())
129 ->method(
'setShouldIgnoreValidation')
133 $billingAddressMock->expects(self::at(1))
135 ->willReturn(self::TEST_EMAIL);
137 $billingAddressMock->expects(self::never())
138 ->method(
'setSameAsBilling');
145 private function getBillingAddressMock(\PHPUnit_Framework_MockObject_MockObject $quoteMock)
147 if (!isset($this->billingAddressMock)) {
148 $this->billingAddressMock = $this->getMockBuilder(Address::class)
149 ->setMethods([
'setShouldIgnoreValidation',
'getEmail',
'setSameAsBilling'])
150 ->disableOriginalConstructor()
154 $quoteMock->expects(self::any())
155 ->method(
'getBillingAddress')
156 ->willReturn($this->billingAddressMock);
158 return $this->billingAddressMock;
164 private function getQuoteMock()
166 return $this->getMockBuilder(Quote::class)
171 'getShippingAddress',
174 )->disableOriginalConstructor()
const TEST_SHIPPING_METHOD