diff --git a/app/code/Magento/Authorizenet/Controller/Directpost/Payment.php b/app/code/Magento/Authorizenet/Controller/Directpost/Payment.php index 9b7f329ab3dc340c906d1062880dffd70d3d6405..e318ddb44c98007dc19a07b25b2f15462bc7ade7 100644 --- a/app/code/Magento/Authorizenet/Controller/Directpost/Payment.php +++ b/app/code/Magento/Authorizenet/Controller/Directpost/Payment.php @@ -130,8 +130,8 @@ abstract class Payment extends \Magento\Framework\App\Action\Action $order = $this->_objectManager->create('Magento\Sales\Model\Order')->loadByIncrementId($incrementId); if ($order->getId()) { try { - /** @var \Magento\Quote\Model\QuoteRepository $quoteRepository */ - $quoteRepository = $this->_objectManager->create('Magento\Quote\Model\QuoteRepository'); + /** @var \Magento\Quote\Api\CartRepositoryInterface $quoteRepository */ + $quoteRepository = $this->_objectManager->create('Magento\Quote\Api\CartRepositoryInterface'); /** @var \Magento\Quote\Model\Quote $quote */ $quote = $quoteRepository->get($order->getQuoteId()); diff --git a/app/code/Magento/Authorizenet/Model/Directpost.php b/app/code/Magento/Authorizenet/Model/Directpost.php index 68fd630f21f4593740fed6288e3821b87677d7db..3caaa53b59785a6f81bc69f4b6239067301d174d 100644 --- a/app/code/Magento/Authorizenet/Model/Directpost.php +++ b/app/code/Magento/Authorizenet/Model/Directpost.php @@ -93,7 +93,7 @@ class Directpost extends \Magento\Authorizenet\Model\Authorizenet implements Tra protected $storeManager; /** - * @var \Magento\Quote\Model\QuoteRepository + * @var \Magento\Quote\Api\CartRepositoryInterface */ protected $quoteRepository; @@ -136,7 +136,7 @@ class Directpost extends \Magento\Authorizenet\Model\Authorizenet implements Tra * @param \Magento\Framework\HTTP\ZendClientFactory $httpClientFactory * @param \Magento\Sales\Model\OrderFactory $orderFactory * @param \Magento\Store\Model\StoreManagerInterface $storeManager - * @param \Magento\Quote\Model\QuoteRepository $quoteRepository + * @param \Magento\Quote\Api\CartRepositoryInterface $quoteRepository * @param OrderSender $orderSender * @param \Magento\Sales\Api\TransactionRepositoryInterface $transactionRepository * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource @@ -161,7 +161,7 @@ class Directpost extends \Magento\Authorizenet\Model\Authorizenet implements Tra ZendClientFactory $httpClientFactory, \Magento\Sales\Model\OrderFactory $orderFactory, \Magento\Store\Model\StoreManagerInterface $storeManager, - \Magento\Quote\Model\QuoteRepository $quoteRepository, + \Magento\Quote\Api\CartRepositoryInterface $quoteRepository, \Magento\Sales\Model\Order\Email\Sender\OrderSender $orderSender, \Magento\Sales\Api\TransactionRepositoryInterface $transactionRepository, \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, diff --git a/app/code/Magento/Backend/Model/Session/Quote.php b/app/code/Magento/Backend/Model/Session/Quote.php index 1427e1ad5ad570d5ea93c0f5cef3c5cdfd71c4cb..f1bea24b085a76a729b2bf92043ce615979d6065 100644 --- a/app/code/Magento/Backend/Model/Session/Quote.php +++ b/app/code/Magento/Backend/Model/Session/Quote.php @@ -60,7 +60,7 @@ class Quote extends \Magento\Framework\Session\SessionManager /** * Sales quote repository * - * @var \Magento\Quote\Model\QuoteRepository + * @var \Magento\Quote\Api\CartRepositoryInterface */ protected $quoteRepository; @@ -74,6 +74,11 @@ class Quote extends \Magento\Framework\Session\SessionManager */ protected $groupManagement; + /** + * @var \Magento\Quote\Model\QuoteFactory + */ + protected $quoteFactory; + /** * @param \Magento\Framework\App\Request\Http $request * @param \Magento\Framework\Session\SidResolverInterface $sidResolver @@ -85,11 +90,11 @@ class Quote extends \Magento\Framework\Session\SessionManager * @param \Magento\Framework\Stdlib\Cookie\CookieMetadataFactory $cookieMetadataFactory * @param \Magento\Framework\App\State $appState * @param CustomerRepositoryInterface $customerRepository - * @param \Magento\Quote\Model\QuoteRepository $quoteRepository + * @param \Magento\Quote\Api\CartRepositoryInterface $quoteRepository * @param \Magento\Sales\Model\OrderFactory $orderFactory * @param \Magento\Store\Model\StoreManagerInterface $storeManager * @param GroupManagementInterface $groupManagement - * @throws \Magento\Framework\Exception\SessionException + * @param \Magento\Quote\Model\QuoteFactory $quoteFactory * @SuppressWarnings(PHPMD.ExcessiveParameterList) */ public function __construct( @@ -103,16 +108,18 @@ class Quote extends \Magento\Framework\Session\SessionManager \Magento\Framework\Stdlib\Cookie\CookieMetadataFactory $cookieMetadataFactory, \Magento\Framework\App\State $appState, CustomerRepositoryInterface $customerRepository, - \Magento\Quote\Model\QuoteRepository $quoteRepository, + \Magento\Quote\Api\CartRepositoryInterface $quoteRepository, \Magento\Sales\Model\OrderFactory $orderFactory, \Magento\Store\Model\StoreManagerInterface $storeManager, - GroupManagementInterface $groupManagement + GroupManagementInterface $groupManagement, + \Magento\Quote\Model\QuoteFactory $quoteFactory ) { $this->customerRepository = $customerRepository; $this->quoteRepository = $quoteRepository; $this->_orderFactory = $orderFactory; $this->_storeManager = $storeManager; $this->groupManagement = $groupManagement; + $this->quoteFactory = $quoteFactory; parent::__construct( $request, $sidResolver, @@ -137,7 +144,7 @@ class Quote extends \Magento\Framework\Session\SessionManager public function getQuote() { if ($this->_quote === null) { - $this->_quote = $this->quoteRepository->create(); + $this->_quote = $this->quoteFactory->create(); if ($this->getStoreId()) { if (!$this->getQuoteId()) { $this->_quote->setCustomerGroupId($this->groupManagement->getDefaultGroup()->getId()) diff --git a/app/code/Magento/Backend/Test/Unit/Model/Session/QuoteTest.php b/app/code/Magento/Backend/Test/Unit/Model/Session/QuoteTest.php index 1c89077b1b161051562190ccd56c3ad66c0e19a6..b1888ef8fd6c507910f086bba365581b52ef2563 100644 --- a/app/code/Magento/Backend/Test/Unit/Model/Session/QuoteTest.php +++ b/app/code/Magento/Backend/Test/Unit/Model/Session/QuoteTest.php @@ -8,6 +8,7 @@ namespace Magento\Backend\Test\Unit\Model\Session; /** * Class QuoteTest * @SuppressWarnings(PHPMD.CouplingBetweenObjects) + * @SuppressWarnings(PHPMD.TooManyFields) */ class QuoteTest extends \PHPUnit_Framework_TestCase { @@ -86,6 +87,11 @@ class QuoteTest extends \PHPUnit_Framework_TestCase */ protected $groupManagementMock; + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $quoteFactoryMock; + /** * Set up * @@ -122,13 +128,7 @@ class QuoteTest extends \PHPUnit_Framework_TestCase true, ['getValue'] ); - $this->quoteRepositoryMock = $this->getMock( - 'Magento\Quote\Model\QuoteRepository', - ['create', 'save', 'get'], - [], - '', - false - ); + $this->quoteRepositoryMock = $this->getMock('Magento\Quote\Api\CartRepositoryInterface'); $this->requestMock = $this->getMock( 'Magento\Framework\App\Request\Http', @@ -196,6 +196,8 @@ class QuoteTest extends \PHPUnit_Framework_TestCase false ); + $this->quoteFactoryMock = $this->getMock('\Magento\Quote\Model\QuoteFactory', ['create'], [], '', false); + $this->quote = $this->getMock( 'Magento\Backend\Model\Session\Quote', ['getStoreId', 'getQuoteId', 'setQuoteId', 'hasCustomerId', 'getCustomerId'], @@ -214,6 +216,7 @@ class QuoteTest extends \PHPUnit_Framework_TestCase 'orderFactory' => $this->orderFactoryMock, 'storeManager' => $this->storeManagerMock, 'groupManagement' => $this->groupManagementMock, + 'quoteFactory' => $this->quoteFactoryMock ], '', true @@ -302,7 +305,7 @@ class QuoteTest extends \PHPUnit_Framework_TestCase ->method('setIsSuperMode') ->with(true); - $this->quoteRepositoryMock->expects($this->once()) + $this->quoteFactoryMock->expects($this->once()) ->method('create') ->will($this->returnValue($quoteMock)); $this->quoteRepositoryMock->expects($this->once()) @@ -377,7 +380,7 @@ class QuoteTest extends \PHPUnit_Framework_TestCase ->method('getCustomerId') ->will($this->returnValue($quoteCustomerId)); - $this->quoteRepositoryMock->expects($this->once()) + $this->quoteFactoryMock->expects($this->once()) ->method('create') ->will($this->returnValue($quoteMock)); $this->quoteRepositoryMock->expects($this->once()) diff --git a/app/code/Magento/Braintree/Test/Unit/Model/CheckoutTest.php b/app/code/Magento/Braintree/Test/Unit/Model/CheckoutTest.php index 560d8a14af0838c3381908b30aace672245ff5f8..f08572f2d27b6f4984b621614350881db00716c9 100644 --- a/app/code/Magento/Braintree/Test/Unit/Model/CheckoutTest.php +++ b/app/code/Magento/Braintree/Test/Unit/Model/CheckoutTest.php @@ -57,7 +57,7 @@ class CheckoutTest extends \PHPUnit_Framework_TestCase protected $shippingAddressMock; /** - * @var \Magento\Quote\Model\QuoteRepository|\PHPUnit_Framework_MockObject_MockObject + * @var \Magento\Quote\Api\CartRepositoryInterface|\PHPUnit_Framework_MockObject_MockObject */ protected $quoteRepositoryMock; @@ -73,10 +73,7 @@ class CheckoutTest extends \PHPUnit_Framework_TestCase $this->quoteMock->expects($this->any()) ->method('getShippingAddress') ->willReturn($this->shippingAddressMock); - $this->quoteRepositoryMock = $this->getMockBuilder('\Magento\Quote\Model\QuoteRepository') - ->disableOriginalConstructor() - ->getMock(); - + $this->quoteRepositoryMock = $this->getMock('\Magento\Quote\Api\CartRepositoryInterface'); $configMock = $this->getMockBuilder('\Magento\Paypal\Model\Config') ->disableOriginalConstructor() ->getMock(); diff --git a/app/code/Magento/Captcha/Block/Captcha.php b/app/code/Magento/Captcha/Block/Captcha.php index 7daafd0ef14f6db39abe89e1bd370dca6ac37e76..228a530ad6596bdad4188ef7932caac77b42d28b 100644 --- a/app/code/Magento/Captcha/Block/Captcha.php +++ b/app/code/Magento/Captcha/Block/Captcha.php @@ -32,6 +32,7 @@ class Captcha extends \Magento\Framework\View\Element\Template ) { $this->_captchaData = $captchaData; parent::__construct($context, $data); + $this->_isScopePrivate = true; } /** diff --git a/app/code/Magento/Checkout/Controller/Cart/CouponPost.php b/app/code/Magento/Checkout/Controller/Cart/CouponPost.php index 421effe555299a64a9ee2ff0015758d8177258ee..cef967e3877d6fcfc9d1392878dd8d443e727bf1 100644 --- a/app/code/Magento/Checkout/Controller/Cart/CouponPost.php +++ b/app/code/Magento/Checkout/Controller/Cart/CouponPost.php @@ -10,7 +10,7 @@ class CouponPost extends \Magento\Checkout\Controller\Cart /** * Sales quote repository * - * @var \Magento\Quote\Model\QuoteRepository + * @var \Magento\Quote\Api\CartRepositoryInterface */ protected $quoteRepository; @@ -29,7 +29,7 @@ class CouponPost extends \Magento\Checkout\Controller\Cart * @param \Magento\Framework\Data\Form\FormKey\Validator $formKeyValidator * @param \Magento\Checkout\Model\Cart $cart * @param \Magento\SalesRule\Model\CouponFactory $couponFactory - * @param \Magento\Quote\Model\QuoteRepository $quoteRepository + * @param \Magento\Quote\Api\CartRepositoryInterface $quoteRepository * @codeCoverageIgnore */ public function __construct( @@ -40,7 +40,7 @@ class CouponPost extends \Magento\Checkout\Controller\Cart \Magento\Framework\Data\Form\FormKey\Validator $formKeyValidator, \Magento\Checkout\Model\Cart $cart, \Magento\SalesRule\Model\CouponFactory $couponFactory, - \Magento\Quote\Model\QuoteRepository $quoteRepository + \Magento\Quote\Api\CartRepositoryInterface $quoteRepository ) { parent::__construct( $context, diff --git a/app/code/Magento/Checkout/Controller/Cart/EstimatePost.php b/app/code/Magento/Checkout/Controller/Cart/EstimatePost.php index e7808167252289e8b47763a0e934e56b5c55c2f6..d3baa8c7a62a09ea368c0bee0c8eddbb05cc72f0 100644 --- a/app/code/Magento/Checkout/Controller/Cart/EstimatePost.php +++ b/app/code/Magento/Checkout/Controller/Cart/EstimatePost.php @@ -11,7 +11,7 @@ use Magento\Checkout\Model\Cart as CustomerCart; class EstimatePost extends \Magento\Checkout\Controller\Cart { /** - * @var \Magento\Quote\Model\QuoteRepository + * @var \Magento\Quote\Api\CartRepositoryInterface */ protected $quoteRepository; @@ -22,7 +22,7 @@ class EstimatePost extends \Magento\Checkout\Controller\Cart * @param \Magento\Store\Model\StoreManagerInterface $storeManager * @param \Magento\Framework\Data\Form\FormKey\Validator $formKeyValidator * @param CustomerCart $cart - * @param \Magento\Quote\Model\QuoteRepository $quoteRepository + * @param \Magento\Quote\Api\CartRepositoryInterface $quoteRepository * @codeCoverageIgnore */ public function __construct( @@ -32,7 +32,7 @@ class EstimatePost extends \Magento\Checkout\Controller\Cart \Magento\Store\Model\StoreManagerInterface $storeManager, \Magento\Framework\Data\Form\FormKey\Validator $formKeyValidator, CustomerCart $cart, - \Magento\Quote\Model\QuoteRepository $quoteRepository + \Magento\Quote\Api\CartRepositoryInterface $quoteRepository ) { $this->quoteRepository = $quoteRepository; parent::__construct( diff --git a/app/code/Magento/Checkout/Controller/Onepage.php b/app/code/Magento/Checkout/Controller/Onepage.php index 2bfbf61db7a7fa7ff4e0e5861139a904b010662e..f841096ffbe5ff988133aa67cf5c09ccffdec78a 100644 --- a/app/code/Magento/Checkout/Controller/Onepage.php +++ b/app/code/Magento/Checkout/Controller/Onepage.php @@ -57,7 +57,7 @@ abstract class Onepage extends Action protected $layoutFactory; /** - * @var \Magento\Quote\Model\QuoteRepository + * @var \Magento\Quote\Api\CartRepositoryInterface */ protected $quoteRepository; @@ -91,7 +91,7 @@ abstract class Onepage extends Action * @param \Magento\Framework\Data\Form\FormKey\Validator $formKeyValidator * @param \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig * @param \Magento\Framework\View\LayoutFactory $layoutFactory - * @param \Magento\Quote\Model\QuoteRepository $quoteRepository + * @param \Magento\Quote\Api\CartRepositoryInterface $quoteRepository * @param \Magento\Framework\View\Result\PageFactory $resultPageFactory * @param \Magento\Framework\View\Result\LayoutFactory $resultLayoutFactory * @param \Magento\Framework\Controller\Result\RawFactory $resultRawFactory @@ -110,7 +110,7 @@ abstract class Onepage extends Action \Magento\Framework\Data\Form\FormKey\Validator $formKeyValidator, \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig, \Magento\Framework\View\LayoutFactory $layoutFactory, - \Magento\Quote\Model\QuoteRepository $quoteRepository, + \Magento\Quote\Api\CartRepositoryInterface $quoteRepository, \Magento\Framework\View\Result\PageFactory $resultPageFactory, \Magento\Framework\View\Result\LayoutFactory $resultLayoutFactory, \Magento\Framework\Controller\Result\RawFactory $resultRawFactory, diff --git a/app/code/Magento/Checkout/Model/Cart.php b/app/code/Magento/Checkout/Model/Cart.php index 470af073fef905af22d8d46d725631d1e112c9e1..29789f0942b9684b9a510e00ccb3a5564fdab287 100644 --- a/app/code/Magento/Checkout/Model/Cart.php +++ b/app/code/Magento/Checkout/Model/Cart.php @@ -81,7 +81,7 @@ class Cart extends DataObject implements CartInterface protected $stockState; /** - * @var \Magento\Quote\Model\QuoteRepository + * @var \Magento\Quote\Api\CartRepositoryInterface */ protected $quoteRepository; @@ -100,7 +100,7 @@ class Cart extends DataObject implements CartInterface * @param \Magento\Framework\Message\ManagerInterface $messageManager * @param \Magento\CatalogInventory\Api\StockRegistryInterface $stockRegistry * @param \Magento\CatalogInventory\Api\StockStateInterface $stockState - * @param \Magento\Quote\Model\QuoteRepository $quoteRepository + * @param \Magento\Quote\Api\CartRepositoryInterface $quoteRepository * @param ProductRepositoryInterface $productRepository * @param array $data * @codeCoverageIgnore @@ -116,7 +116,7 @@ class Cart extends DataObject implements CartInterface \Magento\Framework\Message\ManagerInterface $messageManager, \Magento\CatalogInventory\Api\StockRegistryInterface $stockRegistry, \Magento\CatalogInventory\Api\StockStateInterface $stockState, - \Magento\Quote\Model\QuoteRepository $quoteRepository, + \Magento\Quote\Api\CartRepositoryInterface $quoteRepository, ProductRepositoryInterface $productRepository, array $data = [] ) { diff --git a/app/code/Magento/Checkout/Model/Cart/CollectQuote.php b/app/code/Magento/Checkout/Model/Cart/CollectQuote.php index 5b3f7841635c70040d6ea37b31a574d36e3488a5..18fbe76167f88631cea7a18c7eaa1631f8c91fc3 100644 --- a/app/code/Magento/Checkout/Model/Cart/CollectQuote.php +++ b/app/code/Magento/Checkout/Model/Cart/CollectQuote.php @@ -33,7 +33,7 @@ class CollectQuote protected $shippingMethodManager; /** - * @var \Magento\Quote\Model\QuoteRepository + * @var \Magento\Quote\Api\CartRepositoryInterface */ protected $quoteRepository; @@ -43,7 +43,7 @@ class CollectQuote * @param \Magento\Customer\Api\AddressRepositoryInterface $addressRepository * @param \Magento\Quote\Api\Data\EstimateAddressInterfaceFactory $estimatedAddressFactory * @param \Magento\Quote\Api\ShippingMethodManagementInterface $shippingMethodManager - * @param \Magento\Quote\Model\QuoteRepository $quoteRepository + * @param \Magento\Quote\Api\CartRepositoryInterface $quoteRepository * @codeCoverageIgnore */ public function __construct( @@ -52,7 +52,7 @@ class CollectQuote \Magento\Customer\Api\AddressRepositoryInterface $addressRepository, \Magento\Quote\Api\Data\EstimateAddressInterfaceFactory $estimatedAddressFactory, \Magento\Quote\Api\ShippingMethodManagementInterface $shippingMethodManager, - \Magento\Quote\Model\QuoteRepository $quoteRepository + \Magento\Quote\Api\CartRepositoryInterface $quoteRepository ) { $this->customerSession = $customerSession; $this->customerRepository = $customerRepository; diff --git a/app/code/Magento/Checkout/Model/DefaultConfigProvider.php b/app/code/Magento/Checkout/Model/DefaultConfigProvider.php index 8e59581f351965123fb61dcc732fea2c1b6a6890..77f12a00bf0385188960871e2ee9ac3e86474966 100644 --- a/app/code/Magento/Checkout/Model/DefaultConfigProvider.php +++ b/app/code/Magento/Checkout/Model/DefaultConfigProvider.php @@ -15,7 +15,7 @@ use Magento\Customer\Model\Url as CustomerUrlManager; use Magento\Framework\App\Http\Context as HttpContext; use Magento\Framework\Data\Form\FormKey; use Magento\Framework\Locale\CurrencyInterface as CurrencyManager; -use Magento\Quote\Model\QuoteRepository; +use Magento\Quote\Api\CartRepositoryInterface; use Magento\Quote\Api\CartItemRepositoryInterface as QuoteItemRepository; use Magento\Quote\Api\ShippingMethodManagementInterface as ShippingMethodManager; use Magento\Catalog\Helper\Product\ConfigurationPool; @@ -63,7 +63,7 @@ class DefaultConfigProvider implements ConfigProviderInterface private $httpContext; /** - * @var QuoteRepository + * @var \Magento\Quote\Api\CartRepositoryInterface */ private $quoteRepository; @@ -169,7 +169,7 @@ class DefaultConfigProvider implements ConfigProviderInterface * @param CustomerSession $customerSession * @param CustomerUrlManager $customerUrlManager * @param HttpContext $httpContext - * @param QuoteRepository $quoteRepository + * @param \Magento\Quote\Api\CartRepositoryInterface $quoteRepository * @param QuoteItemRepository $quoteItemRepository * @param ShippingMethodManager $shippingMethodManager * @param ConfigurationPool $configurationPool @@ -199,7 +199,7 @@ class DefaultConfigProvider implements ConfigProviderInterface CustomerSession $customerSession, CustomerUrlManager $customerUrlManager, HttpContext $httpContext, - QuoteRepository $quoteRepository, + \Magento\Quote\Api\CartRepositoryInterface $quoteRepository, QuoteItemRepository $quoteItemRepository, ShippingMethodManager $shippingMethodManager, ConfigurationPool $configurationPool, diff --git a/app/code/Magento/Checkout/Model/GuestPaymentInformationManagement.php b/app/code/Magento/Checkout/Model/GuestPaymentInformationManagement.php index 7da2c8f274b1a2a60c1342f3ed4cfc6859e04ee6..81ff1b2fd4382aab9cb988b98fa66a4e19f57b6a 100644 --- a/app/code/Magento/Checkout/Model/GuestPaymentInformationManagement.php +++ b/app/code/Magento/Checkout/Model/GuestPaymentInformationManagement.php @@ -27,7 +27,7 @@ class GuestPaymentInformationManagement implements \Magento\Checkout\Api\GuestPa protected $cartManagement; /** - * @var \Magento\Checkout\Model\PaymentInformationManagement + * @var \Magento\Checkout\Api\PaymentInformationManagementInterface */ protected $paymentInformationManagement; @@ -45,7 +45,7 @@ class GuestPaymentInformationManagement implements \Magento\Checkout\Api\GuestPa * @param \Magento\Quote\Api\GuestBillingAddressManagementInterface $billingAddressManagement * @param \Magento\Quote\Api\GuestPaymentMethodManagementInterface $paymentMethodManagement * @param \Magento\Quote\Api\GuestCartManagementInterface $cartManagement - * @param PaymentInformationManagement $paymentInformationManagement + * @param \Magento\Checkout\Api\PaymentInformationManagementInterface $paymentInformationManagement * @param \Magento\Quote\Model\QuoteIdMaskFactory $quoteIdMaskFactory * @param CartRepositoryInterface $cartRepository * @codeCoverageIgnore @@ -54,7 +54,7 @@ class GuestPaymentInformationManagement implements \Magento\Checkout\Api\GuestPa \Magento\Quote\Api\GuestBillingAddressManagementInterface $billingAddressManagement, \Magento\Quote\Api\GuestPaymentMethodManagementInterface $paymentMethodManagement, \Magento\Quote\Api\GuestCartManagementInterface $cartManagement, - \Magento\Checkout\Model\PaymentInformationManagement $paymentInformationManagement, + \Magento\Checkout\Api\PaymentInformationManagementInterface $paymentInformationManagement, \Magento\Quote\Model\QuoteIdMaskFactory $quoteIdMaskFactory, CartRepositoryInterface $cartRepository ) { diff --git a/app/code/Magento/Checkout/Model/Session.php b/app/code/Magento/Checkout/Model/Session.php index e988a2f93814eb70d8cccff668281b845d76b30e..ba51d052accb2a06586e3a4032be0f4d8f95e3ba 100644 --- a/app/code/Magento/Checkout/Model/Session.php +++ b/app/code/Magento/Checkout/Model/Session.php @@ -58,7 +58,7 @@ class Session extends \Magento\Framework\Session\SessionManager protected $_customerSession; /** - * @var \Magento\Quote\Model\QuoteRepository + * @var \Magento\Quote\Api\CartRepositoryInterface */ protected $quoteRepository; @@ -92,6 +92,11 @@ class Session extends \Magento\Framework\Session\SessionManager */ protected $isQuoteMasked; + /** + * @var \Magento\Quote\Model\QuoteFactory + */ + protected $quoteFactory; + /** * @param \Magento\Framework\App\Request\Http $request * @param \Magento\Framework\Session\SidResolverInterface $sidResolver @@ -104,14 +109,13 @@ class Session extends \Magento\Framework\Session\SessionManager * @param \Magento\Framework\App\State $appState * @param \Magento\Sales\Model\OrderFactory $orderFactory * @param \Magento\Customer\Model\Session $customerSession - * @param \Magento\Quote\Model\QuoteRepository $quoteRepository + * @param \Magento\Quote\Api\CartRepositoryInterface $quoteRepository * @param \Magento\Framework\HTTP\PhpEnvironment\RemoteAddress $remoteAddress * @param \Magento\Framework\Event\ManagerInterface $eventManager * @param \Magento\Store\Model\StoreManagerInterface $storeManager * @param \Magento\Customer\Api\CustomerRepositoryInterface $customerRepository * @param QuoteIdMaskFactory $quoteIdMaskFactory - * @throws \Magento\Framework\Exception\SessionException - * @codeCoverageIgnore + * @param \Magento\Quote\Model\QuoteFactory $quoteFactory * @SuppressWarnings(PHPMD.ExcessiveParameterList) */ public function __construct( @@ -126,12 +130,13 @@ class Session extends \Magento\Framework\Session\SessionManager \Magento\Framework\App\State $appState, \Magento\Sales\Model\OrderFactory $orderFactory, \Magento\Customer\Model\Session $customerSession, - \Magento\Quote\Model\QuoteRepository $quoteRepository, + \Magento\Quote\Api\CartRepositoryInterface $quoteRepository, \Magento\Framework\HTTP\PhpEnvironment\RemoteAddress $remoteAddress, \Magento\Framework\Event\ManagerInterface $eventManager, \Magento\Store\Model\StoreManagerInterface $storeManager, \Magento\Customer\Api\CustomerRepositoryInterface $customerRepository, - QuoteIdMaskFactory $quoteIdMaskFactory + QuoteIdMaskFactory $quoteIdMaskFactory, + \Magento\Quote\Model\QuoteFactory $quoteFactory ) { $this->_orderFactory = $orderFactory; $this->_customerSession = $customerSession; @@ -141,6 +146,7 @@ class Session extends \Magento\Framework\Session\SessionManager $this->_storeManager = $storeManager; $this->customerRepository = $customerRepository; $this->quoteIdMaskFactory = $quoteIdMaskFactory; + $this->quoteFactory = $quoteFactory; parent::__construct( $request, $sidResolver, @@ -203,7 +209,7 @@ class Session extends \Magento\Framework\Session\SessionManager $this->_eventManager->dispatch('custom_quote_process', ['checkout_session' => $this]); if ($this->_quote === null) { - $quote = $this->quoteRepository->create(); + $quote = $this->quoteFactory->create(); if ($this->getQuoteId()) { try { if ($this->_loadInactive) { @@ -321,7 +327,7 @@ class Session extends \Magento\Framework\Session\SessionManager try { $customerQuote = $this->quoteRepository->getForCustomer($this->_customerSession->getCustomerId()); } catch (\Magento\Framework\Exception\NoSuchEntityException $e) { - $customerQuote = $this->quoteRepository->create(); + $customerQuote = $this->quoteFactory->create(); } $customerQuote->setStoreId($this->_storeManager->getStore()->getId()); diff --git a/app/code/Magento/Checkout/Model/ShippingInformationManagement.php b/app/code/Magento/Checkout/Model/ShippingInformationManagement.php index 2858cc787163d0adb6528ad3042fe7df44353916..e8c5fc5589a91f2b404300587e996dade1b449e0 100644 --- a/app/code/Magento/Checkout/Model/ShippingInformationManagement.php +++ b/app/code/Magento/Checkout/Model/ShippingInformationManagement.php @@ -34,7 +34,7 @@ class ShippingInformationManagement implements \Magento\Checkout\Api\ShippingInf /** * Quote repository. * - * @var \Magento\Quote\Model\QuoteRepository + * @var \Magento\Quote\Api\CartRepositoryInterface */ protected $quoteRepository; @@ -71,7 +71,7 @@ class ShippingInformationManagement implements \Magento\Checkout\Api\ShippingInf * @param \Magento\Quote\Api\PaymentMethodManagementInterface $paymentMethodManagement * @param \Magento\Checkout\Model\PaymentDetailsFactory $paymentDetailsFactory * @param \Magento\Quote\Api\CartTotalRepositoryInterface $cartTotalsRepository - * @param \Magento\Quote\Model\QuoteRepository $quoteRepository + * @param \Magento\Quote\Api\CartRepositoryInterface $quoteRepository * @param \Magento\Quote\Model\QuoteAddressValidator $addressValidator * @param Logger $logger * @param \Magento\Customer\Api\AddressRepositoryInterface $addressRepository @@ -83,7 +83,7 @@ class ShippingInformationManagement implements \Magento\Checkout\Api\ShippingInf \Magento\Quote\Api\PaymentMethodManagementInterface $paymentMethodManagement, \Magento\Checkout\Model\PaymentDetailsFactory $paymentDetailsFactory, \Magento\Quote\Api\CartTotalRepositoryInterface $cartTotalsRepository, - \Magento\Quote\Model\QuoteRepository $quoteRepository, + \Magento\Quote\Api\CartRepositoryInterface $quoteRepository, QuoteAddressValidator $addressValidator, Logger $logger, \Magento\Customer\Api\AddressRepositoryInterface $addressRepository, diff --git a/app/code/Magento/Checkout/Model/Type/Onepage.php b/app/code/Magento/Checkout/Model/Type/Onepage.php index 8d9f2ed620c1ab9c79059480f38ddb6006f5625a..b5edd78257aac60c2e4d0930cd84db3d25524c89 100644 --- a/app/code/Magento/Checkout/Model/Type/Onepage.php +++ b/app/code/Magento/Checkout/Model/Type/Onepage.php @@ -141,7 +141,7 @@ class Onepage protected $orderSender; /** - * @var \Magento\Quote\Model\QuoteRepository + * @var \Magento\Quote\Api\CartRepositoryInterface */ protected $quoteRepository; @@ -156,7 +156,7 @@ class Onepage protected $extensibleDataObjectConverter; /** - * @var \Magento\Quote\Model\QuoteManagement + * @var \Magento\Quote\Api\CartManagementInterface */ protected $quoteManagement; @@ -193,9 +193,9 @@ class Onepage * @param AccountManagementInterface $accountManagement * @param OrderSender $orderSender * @param CustomerRepositoryInterface $customerRepository - * @param \Magento\Quote\Model\QuoteRepository $quoteRepository + * @param \Magento\Quote\Api\CartRepositoryInterface $quoteRepository * @param \Magento\Framework\Api\ExtensibleDataObjectConverter $extensibleDataObjectConverter - * @param \Magento\Quote\Model\QuoteManagement $quoteManagement + * @param \Magento\Quote\Api\CartManagementInterface $quoteManagement * @param \Magento\Framework\Api\DataObjectHelper $dataObjectHelper * @param \Magento\Quote\Model\Quote\TotalsCollector $totalsCollector * @codeCoverageIgnore @@ -224,9 +224,9 @@ class Onepage AccountManagementInterface $accountManagement, OrderSender $orderSender, CustomerRepositoryInterface $customerRepository, - \Magento\Quote\Model\QuoteRepository $quoteRepository, + \Magento\Quote\Api\CartRepositoryInterface $quoteRepository, \Magento\Framework\Api\ExtensibleDataObjectConverter $extensibleDataObjectConverter, - \Magento\Quote\Model\QuoteManagement $quoteManagement, + \Magento\Quote\Api\CartManagementInterface $quoteManagement, \Magento\Framework\Api\DataObjectHelper $dataObjectHelper, \Magento\Quote\Model\Quote\TotalsCollector $totalsCollector ) { diff --git a/app/code/Magento/Checkout/Test/Unit/Controller/Cart/CouponPostTest.php b/app/code/Magento/Checkout/Test/Unit/Controller/Cart/CouponPostTest.php index 42453493e5343939887789609f218820ca0266f3..fd32c48474f8813294ac4637f106dfb8254b48a7 100644 --- a/app/code/Magento/Checkout/Test/Unit/Controller/Cart/CouponPostTest.php +++ b/app/code/Magento/Checkout/Test/Unit/Controller/Cart/CouponPostTest.php @@ -142,7 +142,7 @@ class CouponPostTest extends \PHPUnit_Framework_TestCase ->disableOriginalConstructor() ->setMethods(['create']) ->getMock(); - $this->quoteRepository = $this->getMock('Magento\Quote\Model\QuoteRepository', [], [], '', false); + $this->quoteRepository = $this->getMock('\Magento\Quote\Api\CartRepositoryInterface'); $objectManagerHelper = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this); diff --git a/app/code/Magento/Checkout/Test/Unit/Model/GuestPaymentInformationManagementTest.php b/app/code/Magento/Checkout/Test/Unit/Model/GuestPaymentInformationManagementTest.php index 756ab3e7861aaec98c14cfa6db6eb5c24ae8529f..a5e0a6ce00ecc8f9effeaca84e0931773d229710 100644 --- a/app/code/Magento/Checkout/Test/Unit/Model/GuestPaymentInformationManagementTest.php +++ b/app/code/Magento/Checkout/Test/Unit/Model/GuestPaymentInformationManagementTest.php @@ -47,8 +47,7 @@ class GuestPaymentInformationManagementTest extends \PHPUnit_Framework_TestCase '\Magento\Quote\Api\GuestPaymentMethodManagementInterface' ); $this->cartManagementMock = $this->getMock('\Magento\Quote\Api\GuestCartManagementInterface'); - - $this->cartRepositoryMock = $this->getMock('\Magento\Quote\Model\QuoteRepository', [], [], '', false); + $this->cartRepositoryMock = $this->getMock('\Magento\Quote\Api\CartRepositoryInterface'); $this->quoteIdMaskFactoryMock = $this->getMock( 'Magento\Quote\Model\QuoteIdMaskFactory', diff --git a/app/code/Magento/Checkout/Test/Unit/Model/SessionTest.php b/app/code/Magento/Checkout/Test/Unit/Model/SessionTest.php index 377365e9294d21c82a5c3c6840789caeeffcaa87..cb941b305d1498d8035933c5accce47aba624cf1 100644 --- a/app/code/Magento/Checkout/Test/Unit/Model/SessionTest.php +++ b/app/code/Magento/Checkout/Test/Unit/Model/SessionTest.php @@ -48,9 +48,7 @@ class SessionTest extends \PHPUnit_Framework_TestCase ->disableOriginalConstructor() ->setMethods(['create']) ->getMock(); - $quoteRepository = $this->getMockBuilder('Magento\Quote\Model\QuoteRepository') - ->disableOriginalConstructor() - ->getMock(); + $quoteRepository = $this->getMock('\Magento\Quote\Api\CartRepositoryInterface'); $appState = $this->getMock('\Magento\Framework\App\State', [], [], '', false); $appState->expects($this->any())->method('isInstalled')->will($this->returnValue(true)); @@ -160,13 +158,7 @@ class SessionTest extends \PHPUnit_Framework_TestCase $order->expects($this->once())->method('getId')->will($this->returnValue($hasOrderId ? 'order id' : null)); $orderFactory = $this->getMock('Magento\Sales\Model\OrderFactory', ['create'], [], '', false); $orderFactory->expects($this->once())->method('create')->will($this->returnValue($order)); - $quoteRepository = $this->getMock( - 'Magento\Quote\Model\QuoteRepository', - ['get', 'save'], - [], - '', - false - ); + $quoteRepository = $this->getMock('\Magento\Quote\Api\CartRepositoryInterface'); $storage = $this->getMock('Magento\Framework\Session\Storage', null); $store = $this->getMock('Magento\Store\Model\Store', [], [], '', false); $storeManager = $this->getMockForAbstractClass('Magento\Store\Model\StoreManagerInterface'); diff --git a/app/code/Magento/Checkout/Test/Unit/Model/ShippingInformationManagementTest.php b/app/code/Magento/Checkout/Test/Unit/Model/ShippingInformationManagementTest.php index 552acbb01097b9a30b83fabb3da8aa910c9e8226..714fb048ec5ba81570fe9dc4b0ee83930145e336 100644 --- a/app/code/Magento/Checkout/Test/Unit/Model/ShippingInformationManagementTest.php +++ b/app/code/Magento/Checkout/Test/Unit/Model/ShippingInformationManagementTest.php @@ -80,7 +80,7 @@ class ShippingInformationManagementTest extends \PHPUnit_Framework_TestCase false ); $this->cartTotalsRepositoryMock = $this->getMock('\Magento\Quote\Api\CartTotalRepositoryInterface'); - $this->quoteRepositoryMock = $this->getMock('\Magento\Quote\Model\QuoteRepository', [], [], '', false); + $this->quoteRepositoryMock = $this->getMock('\Magento\Quote\Api\CartRepositoryInterface'); $this->addressValidatorMock = $this->getMock('\Magento\Quote\Model\QuoteAddressValidator', [], [], '', false); $this->loggerMock = $this->getMock('\Psr\Log\LoggerInterface'); $this->addressRepositoryMock = $this->getMock('\Magento\Customer\Api\AddressRepositoryInterface'); diff --git a/app/code/Magento/Checkout/Test/Unit/Model/Type/OnepageTest.php b/app/code/Magento/Checkout/Test/Unit/Model/Type/OnepageTest.php index 15275b9c11905052e18b7e4b776d2532bde7974e..2d5aaa1a8e120f771eeb0d1f75d5e678675cb495 100644 --- a/app/code/Magento/Checkout/Test/Unit/Model/Type/OnepageTest.php +++ b/app/code/Magento/Checkout/Test/Unit/Model/Type/OnepageTest.php @@ -87,7 +87,7 @@ class OnepageTest extends \PHPUnit_Framework_TestCase /** @var \Magento\Customer\Api\CustomerRepositoryInterface|\PHPUnit_Framework_MockObject_MockObject */ protected $customerRepositoryMock; - /** @var \Magento\Quote\Model\QuoteRepository|\PHPUnit_Framework_MockObject_MockObject */ + /** @var \Magento\Quote\Api\CartRepositoryInterface|\PHPUnit_Framework_MockObject_MockObject */ protected $quoteRepositoryMock; /** @@ -142,7 +142,7 @@ class OnepageTest extends \PHPUnit_Framework_TestCase $this->addressFactoryMock = $this->getMock('Magento\Customer\Model\AddressFactory', [], [], '', false); $this->formFactoryMock = $this->getMock('Magento\Customer\Model\Metadata\FormFactory', [], [], '', false); $this->customerFactoryMock = $this->getMock('Magento\Customer\Model\CustomerFactory', [], [], '', false); - $this->quoteManagementMock = $this->getMock('Magento\Quote\Model\QuoteManagement', [], [], '', false); + $this->quoteManagementMock = $this->getMock('\Magento\Quote\Api\CartManagementInterface'); $this->orderFactoryMock = $this->getMock('Magento\Sales\Model\OrderFactory', ['create'], [], '', false); $this->copyMock = $this->getMock('Magento\Framework\DataObject\Copy', [], [], '', false); $this->messageManagerMock = $this->getMock('Magento\Framework\Message\ManagerInterface'); @@ -181,13 +181,7 @@ class OnepageTest extends \PHPUnit_Framework_TestCase false ); - $this->quoteRepositoryMock = $this->getMock( - 'Magento\Quote\Model\QuoteRepository', - [], - [], - '', - false - ); + $this->quoteRepositoryMock = $this->getMock('\Magento\Quote\Api\CartRepositoryInterface'); $this->extensibleDataObjectConverterMock = $this->getMockBuilder( 'Magento\Framework\Api\ExtensibleDataObjectConverter' diff --git a/app/code/Magento/Checkout/etc/webapi.xml b/app/code/Magento/Checkout/etc/webapi.xml index f0312ec1776cfa4ebcec86276e1c00b3a438c3f6..7b3b2864aa0f444ca948b1f148716755a7d37d3e 100644 --- a/app/code/Magento/Checkout/etc/webapi.xml +++ b/app/code/Magento/Checkout/etc/webapi.xml @@ -9,7 +9,7 @@ xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Webapi:etc/webapi.xsd"> <!-- Managing shipping guest information --> - <route url="/V1/carts/:cartId/shipping-information" method="POST"> + <route url="/V1/guest-carts/:cartId/shipping-information" method="POST"> <service class="Magento\Checkout\Api\GuestShippingInformationManagementInterface" method="saveAddressInformation"/> <resources> <resource ref="anonymous" /> @@ -27,6 +27,14 @@ </data> </route> + <!-- Managing shipping information--> + <route url="/V1/carts/:cartId/shipping-information" method="POST"> + <service class="Magento\Checkout\Api\ShippingInformationManagementInterface" method="saveAddressInformation"/> + <resources> + <resource ref="Magento_Cart::manage" /> + </resources> + </route> + <!-- Managing totals information --> <route url="/V1/carts/:cartId/totals-information" method="POST"> <service class="Magento\Checkout\Api\TotalsInformationManagementInterface" method="calculate"/> diff --git a/app/code/Magento/Checkout/view/frontend/web/js/model/resource-url-manager.js b/app/code/Magento/Checkout/view/frontend/web/js/model/resource-url-manager.js index cc67ebb0788734a67556885ca13ab0f38839e9e4..33407345ab57174949b245cedc4658939b7452e7 100644 --- a/app/code/Magento/Checkout/view/frontend/web/js/model/resource-url-manager.js +++ b/app/code/Magento/Checkout/view/frontend/web/js/model/resource-url-manager.js @@ -69,7 +69,7 @@ define( getUrlForSetShippingInformation: function(quote) { var params = (this.getCheckoutMethod() == 'guest') ? {cartId: quote.getQuoteId()} : {}; var urls = { - 'guest': '/carts/:cartId/shipping-information', + 'guest': '/guest-carts/:cartId/shipping-information', 'customer': '/carts/mine/shipping-information' }; return this.getUrl(urls, params); diff --git a/app/code/Magento/CheckoutAgreements/Model/Checkout/Plugin/Validation.php b/app/code/Magento/CheckoutAgreements/Model/Checkout/Plugin/Validation.php index daab7a643e9f3d0805fd3ef08cd3f3dd0f6d1e07..e1c619332339fd1ca64bfa7e1db531fbe751307e 100644 --- a/app/code/Magento/CheckoutAgreements/Model/Checkout/Plugin/Validation.php +++ b/app/code/Magento/CheckoutAgreements/Model/Checkout/Plugin/Validation.php @@ -24,18 +24,18 @@ class Validation protected $checkoutAgreementsRepository; /** - * @var \Magento\CheckoutAgreements\Model\AgreementsValidator + * @var \Magento\Checkout\Api\AgreementsValidatorInterface */ protected $agreementsValidator; /** - * @param \Magento\CheckoutAgreements\Model\AgreementsValidator $agreementsValidator + * @param \Magento\Checkout\Api\AgreementsValidatorInterface $agreementsValidator * @param \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfiguration * @param \Magento\CheckoutAgreements\Api\CheckoutAgreementsRepositoryInterface $checkoutAgreementsRepository * @codeCoverageIgnore */ public function __construct( - \Magento\CheckoutAgreements\Model\AgreementsValidator $agreementsValidator, + \Magento\Checkout\Api\AgreementsValidatorInterface $agreementsValidator, \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfiguration, \Magento\CheckoutAgreements\Api\CheckoutAgreementsRepositoryInterface $checkoutAgreementsRepository ) { diff --git a/app/code/Magento/CheckoutAgreements/Test/Unit/Model/Checkout/Plugin/ValidationTest.php b/app/code/Magento/CheckoutAgreements/Test/Unit/Model/Checkout/Plugin/ValidationTest.php index 6889aa987d9e4ff18cc107325ddc9e5c21af604a..beab6679ed594ec2c7d8eb2c111ac6b9adc58f01 100644 --- a/app/code/Magento/CheckoutAgreements/Test/Unit/Model/Checkout/Plugin/ValidationTest.php +++ b/app/code/Magento/CheckoutAgreements/Test/Unit/Model/Checkout/Plugin/ValidationTest.php @@ -52,13 +52,7 @@ class ValidationTest extends \PHPUnit_Framework_TestCase protected function setUp() { - $this->agreementsValidatorMock = $this->getMock( - '\Magento\CheckoutAgreements\Model\AgreementsValidator', - [], - [], - '', - false - ); + $this->agreementsValidatorMock = $this->getMock('\Magento\Checkout\Api\AgreementsValidatorInterface'); $this->subjectMock = $this->getMock('\Magento\Checkout\Api\PaymentInformationManagementInterface'); $this->paymentMock = $this->getMock('\Magento\Quote\Api\Data\PaymentInterface'); $this->addressMock = $this->getMock('\Magento\Quote\Api\Data\AddressInterface'); diff --git a/app/code/Magento/Customer/Block/Adminhtml/Edit/Tab/Cart.php b/app/code/Magento/Customer/Block/Adminhtml/Edit/Tab/Cart.php index 9f99ffd9339462f5692d169df9e2aeea0601f837..8e61f5300dc0c8d1b5420f4dfbc018328290a7e1 100644 --- a/app/code/Magento/Customer/Block/Adminhtml/Edit/Tab/Cart.php +++ b/app/code/Magento/Customer/Block/Adminhtml/Edit/Tab/Cart.php @@ -27,7 +27,7 @@ class Cart extends \Magento\Backend\Block\Widget\Grid\Extended protected $_dataCollectionFactory; /** - * @var \Magento\Quote\Model\QuoteRepository + * @var \Magento\Quote\Api\CartRepositoryInterface */ protected $quoteRepository; @@ -41,25 +41,33 @@ class Cart extends \Magento\Backend\Block\Widget\Grid\Extended */ protected $_parentTemplate; + /** + * @var \Magento\Quote\Model\QuoteFactory + */ + protected $quoteFactory; + /** * @param \Magento\Backend\Block\Template\Context $context * @param \Magento\Backend\Helper\Data $backendHelper - * @param \Magento\Quote\Model\QuoteRepository $quoteRepository + * @param \Magento\Quote\Api\CartRepositoryInterface $quoteRepository * @param \Magento\Framework\Data\CollectionFactory $dataCollectionFactory * @param \Magento\Framework\Registry $coreRegistry + * @param \Magento\Quote\Model\QuoteFactory $quoteFactory * @param array $data */ public function __construct( \Magento\Backend\Block\Template\Context $context, \Magento\Backend\Helper\Data $backendHelper, - \Magento\Quote\Model\QuoteRepository $quoteRepository, + \Magento\Quote\Api\CartRepositoryInterface $quoteRepository, \Magento\Framework\Data\CollectionFactory $dataCollectionFactory, \Magento\Framework\Registry $coreRegistry, + \Magento\Quote\Model\QuoteFactory $quoteFactory, array $data = [] ) { $this->_dataCollectionFactory = $dataCollectionFactory; $this->_coreRegistry = $coreRegistry; $this->quoteRepository = $quoteRepository; + $this->quoteFactory = $quoteFactory; parent::__construct($context, $backendHelper, $data); } @@ -230,7 +238,7 @@ class Cart extends \Magento\Backend\Block\Widget\Grid\Extended try { $this->quote = $this->quoteRepository->getForCustomer($customerId, $storeIds); } catch (\Magento\Framework\Exception\NoSuchEntityException $e) { - $this->quote = $this->quoteRepository->create()->setSharedStoreIds($storeIds); + $this->quote = $this->quoteFactory->create()->setSharedStoreIds($storeIds); } } return $this->quote; diff --git a/app/code/Magento/Customer/Block/Adminhtml/Edit/Tab/View/Cart.php b/app/code/Magento/Customer/Block/Adminhtml/Edit/Tab/View/Cart.php index b2adb0316d2ab6241e6d08f535627ed0c9d9aa00..734d0f1fa66ba71f59a8c7128c827e75b62769d8 100644 --- a/app/code/Magento/Customer/Block/Adminhtml/Edit/Tab/View/Cart.php +++ b/app/code/Magento/Customer/Block/Adminhtml/Edit/Tab/View/Cart.php @@ -28,7 +28,7 @@ class Cart extends \Magento\Backend\Block\Widget\Grid\Extended protected $_dataCollectionFactory; /** - * @var \Magento\Quote\Model\QuoteRepository + * @var \Magento\Quote\Api\CartRepositoryInterface */ protected $quoteRepository; @@ -38,26 +38,32 @@ class Cart extends \Magento\Backend\Block\Widget\Grid\Extended protected $quote = null; /** - * Constructor - * + * @var \Magento\Quote\Model\QuoteFactory + */ + protected $quoteFactory; + + /** * @param \Magento\Backend\Block\Template\Context $context * @param \Magento\Backend\Helper\Data $backendHelper - * @param \Magento\Quote\Model\QuoteRepository $quoteRepository + * @param \Magento\Quote\Api\CartRepositoryInterface $quoteRepository * @param \Magento\Framework\Data\CollectionFactory $dataCollectionFactory * @param \Magento\Framework\Registry $coreRegistry + * @param \Magento\Quote\Model\QuoteFactory $quoteFactory * @param array $data */ public function __construct( \Magento\Backend\Block\Template\Context $context, \Magento\Backend\Helper\Data $backendHelper, - \Magento\Quote\Model\QuoteRepository $quoteRepository, + \Magento\Quote\Api\CartRepositoryInterface $quoteRepository, \Magento\Framework\Data\CollectionFactory $dataCollectionFactory, \Magento\Framework\Registry $coreRegistry, + \Magento\Quote\Model\QuoteFactory $quoteFactory, array $data = [] ) { $this->_dataCollectionFactory = $dataCollectionFactory; $this->_coreRegistry = $coreRegistry; $this->quoteRepository = $quoteRepository; + $this->quoteFactory = $quoteFactory; parent::__construct($context, $backendHelper, $data); } @@ -159,7 +165,7 @@ class Cart extends \Magento\Backend\Block\Widget\Grid\Extended { if (null == $this->quote) { $storeIds = $this->_storeManager->getWebsite($this->getWebsiteId())->getStoreIds(); - $this->quote = $this->quoteRepository->create()->setSharedStoreIds($storeIds); + $this->quote = $this->quoteFactory->create()->setSharedStoreIds($storeIds); $currentCustomerId = $this->_coreRegistry->registry(RegistryConstants::CURRENT_CUSTOMER_ID); if (!empty($currentCustomerId)) { diff --git a/app/code/Magento/Customer/Block/Form/Register.php b/app/code/Magento/Customer/Block/Form/Register.php index e6e77a075a8274e0a0315e12802158e53b64cd43..4c3f28f819261ae96ccfdbca93907ff32c25c5d7 100644 --- a/app/code/Magento/Customer/Block/Form/Register.php +++ b/app/code/Magento/Customer/Block/Form/Register.php @@ -63,7 +63,7 @@ class Register extends \Magento\Directory\Block\Data $countryCollectionFactory, $data ); - $this->_isScopePrivate = true; + $this->_isScopePrivate = false; } /** diff --git a/app/code/Magento/Customer/Controller/Adminhtml/Cart/Product/Composite/Cart.php b/app/code/Magento/Customer/Controller/Adminhtml/Cart/Product/Composite/Cart.php index 449dd9c00d4befa2ab966e3fb11416dd3af7eaf1..6032048815cf68018e326b47d4c58d224563f2c6 100644 --- a/app/code/Magento/Customer/Controller/Adminhtml/Cart/Product/Composite/Cart.php +++ b/app/code/Magento/Customer/Controller/Adminhtml/Cart/Product/Composite/Cart.php @@ -37,19 +37,27 @@ abstract class Cart extends \Magento\Backend\App\Action protected $_quoteItem = null; /** - * @var \Magento\Quote\Model\QuoteRepository + * @var \Magento\Quote\Api\CartRepositoryInterface */ protected $quoteRepository; + /** + * @var \Magento\Quote\Model\QuoteFactory + */ + protected $quoteFactory; + /** * @param Action\Context $context - * @param \Magento\Quote\Model\QuoteRepository $quoteRepository + * @param \Magento\Quote\Api\CartRepositoryInterface $quoteRepository + * @param \Magento\Quote\Model\QuoteFactory $quoteFactory */ public function __construct( Action\Context $context, - \Magento\Quote\Model\QuoteRepository $quoteRepository + \Magento\Quote\Api\CartRepositoryInterface $quoteRepository, + \Magento\Quote\Model\QuoteFactory $quoteFactory ) { $this->quoteRepository = $quoteRepository; + $this->quoteFactory = $quoteFactory; parent::__construct($context); } @@ -72,7 +80,7 @@ abstract class Cart extends \Magento\Backend\App\Action try { $this->_quote = $this->quoteRepository->getForCustomer($this->_customerId); } catch (\Magento\Framework\Exception\NoSuchEntityException $e) { - $this->_quote = $this->quoteRepository->create(); + $this->_quote = $this->quoteFactory->create(); } $this->_quote->setWebsite( $this->_objectManager->get('Magento\Store\Model\StoreManagerInterface')->getWebsite($websiteId) diff --git a/app/code/Magento/Customer/Controller/Adminhtml/Index/Cart.php b/app/code/Magento/Customer/Controller/Adminhtml/Index/Cart.php index ff39bf28ac3ac48247c305ae55473e45fba44118..2cc45d0750f820dec4be409847a17238936e1ef2 100644 --- a/app/code/Magento/Customer/Controller/Adminhtml/Index/Cart.php +++ b/app/code/Magento/Customer/Controller/Adminhtml/Index/Cart.php @@ -22,13 +22,13 @@ class Cart extends \Magento\Customer\Controller\Adminhtml\Index // delete an item from cart $deleteItemId = $this->getRequest()->getPost('delete'); if ($deleteItemId) { - /** @var \Magento\Quote\Model\QuoteRepository $quoteRepository */ - $quoteRepository = $this->_objectManager->create('Magento\Quote\Model\QuoteRepository'); + /** @var \Magento\Quote\Api\CartRepositoryInterface $quoteRepository */ + $quoteRepository = $this->_objectManager->create('Magento\Quote\Api\CartRepositoryInterface'); /** @var \Magento\Quote\Model\Quote $quote */ try { $quote = $quoteRepository->getForCustomer($customerId); } catch (\Magento\Framework\Exception\NoSuchEntityException $e) { - $quote = $quoteRepository->create(); + $quote = $this->_objectManager->create('\Magento\Quote\Model\QuoteFactory')->create(); } $quote->setWebsite( $this->_objectManager->get('Magento\Store\Model\StoreManagerInterface')->getWebsite($websiteId) diff --git a/app/code/Magento/GiftMessage/Model/CartRepository.php b/app/code/Magento/GiftMessage/Model/CartRepository.php index cc2ae7caae30c418d96662d0215f15e316e61f1a..760c47eef5cf57baf75a871c076cace1b43d57f5 100644 --- a/app/code/Magento/GiftMessage/Model/CartRepository.php +++ b/app/code/Magento/GiftMessage/Model/CartRepository.php @@ -19,7 +19,7 @@ class CartRepository implements \Magento\GiftMessage\Api\CartRepositoryInterface /** * Quote repository. * - * @var \Magento\Quote\Model\QuoteRepository + * @var \Magento\Quote\Api\CartRepositoryInterface */ protected $quoteRepository; @@ -52,14 +52,14 @@ class CartRepository implements \Magento\GiftMessage\Api\CartRepositoryInterface protected $messageFactory; /** - * @param \Magento\Quote\Model\QuoteRepository $quoteRepository + * @param \Magento\Quote\Api\CartRepositoryInterface $quoteRepository * @param \Magento\Store\Model\StoreManagerInterface $storeManager * @param GiftMessageManager $giftMessageManager * @param \Magento\GiftMessage\Helper\Message $helper * @param MessageFactory $messageFactory */ public function __construct( - \Magento\Quote\Model\QuoteRepository $quoteRepository, + \Magento\Quote\Api\CartRepositoryInterface $quoteRepository, \Magento\Store\Model\StoreManagerInterface $storeManager, \Magento\GiftMessage\Model\GiftMessageManager $giftMessageManager, \Magento\GiftMessage\Helper\Message $helper, diff --git a/app/code/Magento/GiftMessage/Model/ItemRepository.php b/app/code/Magento/GiftMessage/Model/ItemRepository.php index 5c667b3052bd96c4bc032f924a1260fd14cf0714..d7ebf051a1c8fcc18753c79e7193fd1bf90310ce 100644 --- a/app/code/Magento/GiftMessage/Model/ItemRepository.php +++ b/app/code/Magento/GiftMessage/Model/ItemRepository.php @@ -20,7 +20,7 @@ class ItemRepository implements \Magento\GiftMessage\Api\ItemRepositoryInterface /** * Quote repository. * - * @var \Magento\Quote\Model\QuoteRepository + * @var \Magento\Quote\Api\CartRepositoryInterface */ protected $quoteRepository; @@ -53,14 +53,14 @@ class ItemRepository implements \Magento\GiftMessage\Api\ItemRepositoryInterface protected $messageFactory; /** - * @param \Magento\Quote\Model\QuoteRepository $quoteRepository + * @param \Magento\Quote\Api\CartRepositoryInterface $quoteRepository * @param \Magento\Store\Model\StoreManagerInterface $storeManager * @param GiftMessageManager $giftMessageManager * @param \Magento\GiftMessage\Helper\Message $helper * @param MessageFactory $messageFactory */ public function __construct( - \Magento\Quote\Model\QuoteRepository $quoteRepository, + \Magento\Quote\Api\CartRepositoryInterface $quoteRepository, \Magento\Store\Model\StoreManagerInterface $storeManager, \Magento\GiftMessage\Model\GiftMessageManager $giftMessageManager, \Magento\GiftMessage\Helper\Message $helper, diff --git a/app/code/Magento/GiftMessage/Test/Unit/Model/CartRepositoryTest.php b/app/code/Magento/GiftMessage/Test/Unit/Model/CartRepositoryTest.php index 3ad550304fb43c9e5348506a856c33a5ed286bdb..598861b2f4a0b89ec84a0810b493fe753518399c 100644 --- a/app/code/Magento/GiftMessage/Test/Unit/Model/CartRepositoryTest.php +++ b/app/code/Magento/GiftMessage/Test/Unit/Model/CartRepositoryTest.php @@ -69,7 +69,7 @@ class CartRepositoryTest extends \PHPUnit_Framework_TestCase protected function setUp() { - $this->quoteRepositoryMock = $this->getMock('Magento\Quote\Model\QuoteRepository', [], [], '', false); + $this->quoteRepositoryMock = $this->getMock('\Magento\Quote\Api\CartRepositoryInterface'); $this->messageFactoryMock = $this->getMock( 'Magento\GiftMessage\Model\MessageFactory', [ diff --git a/app/code/Magento/GiftMessage/Test/Unit/Model/GuestItemRepositoryTest.php b/app/code/Magento/GiftMessage/Test/Unit/Model/GuestItemRepositoryTest.php index b20bf7bc9c43a1656e60ce27207fc464aadb2a12..51e4e7795fdb5e236e741935e9e1b7cd5bbf9162 100644 --- a/app/code/Magento/GiftMessage/Test/Unit/Model/GuestItemRepositoryTest.php +++ b/app/code/Magento/GiftMessage/Test/Unit/Model/GuestItemRepositoryTest.php @@ -69,7 +69,7 @@ class GuestItemRepositoryTest extends \PHPUnit_Framework_TestCase protected function setUp() { - $this->quoteRepositoryMock = $this->getMock('Magento\Quote\Model\QuoteRepository', [], [], '', false); + $this->quoteRepositoryMock = $this->getMock('\Magento\Quote\Api\CartRepositoryInterface'); $this->messageFactoryMock = $this->getMock( 'Magento\GiftMessage\Model\MessageFactory', [ diff --git a/app/code/Magento/GiftMessage/Test/Unit/Model/ItemRepositoryTest.php b/app/code/Magento/GiftMessage/Test/Unit/Model/ItemRepositoryTest.php index 999783fb546b92a641732ce9e1e02c1e69cdb06c..3c1204fd1bc835252271677d3cfb3606e5e694f6 100644 --- a/app/code/Magento/GiftMessage/Test/Unit/Model/ItemRepositoryTest.php +++ b/app/code/Magento/GiftMessage/Test/Unit/Model/ItemRepositoryTest.php @@ -69,7 +69,7 @@ class ItemRepositoryTest extends \PHPUnit_Framework_TestCase protected function setUp() { - $this->quoteRepositoryMock = $this->getMock('Magento\Quote\Model\QuoteRepository', [], [], '', false); + $this->quoteRepositoryMock = $this->getMock('\Magento\Quote\Api\CartRepositoryInterface'); $this->messageFactoryMock = $this->getMock( 'Magento\GiftMessage\Model\MessageFactory', [ diff --git a/app/code/Magento/Multishipping/Model/Checkout/Type/Multishipping.php b/app/code/Magento/Multishipping/Model/Checkout/Type/Multishipping.php index b56d7b532df76e618588ade7e7fe563cdca47087..3c92d5594490fe7ee6afc8057a8a57d6f483456a 100644 --- a/app/code/Magento/Multishipping/Model/Checkout/Type/Multishipping.php +++ b/app/code/Magento/Multishipping/Model/Checkout/Type/Multishipping.php @@ -100,7 +100,7 @@ class Multishipping extends \Magento\Framework\DataObject protected $priceCurrency; /** - * @var \Magento\Quote\Model\QuoteRepository + * @var \Magento\Quote\Api\CartRepositoryInterface */ protected $quoteRepository; @@ -157,7 +157,7 @@ class Multishipping extends \Magento\Framework\DataObject * @param \Magento\Multishipping\Helper\Data $helper * @param OrderSender $orderSender * @param PriceCurrencyInterface $priceCurrency - * @param \Magento\Quote\Model\QuoteRepository $quoteRepository + * @param \Magento\Quote\Api\CartRepositoryInterface $quoteRepository * @param \Magento\Framework\Api\SearchCriteriaBuilder $searchCriteriaBuilder * @param \Magento\Framework\Api\FilterBuilder $filterBuilder * @param \Magento\Quote\Model\Quote\TotalsCollector $totalsCollector @@ -182,7 +182,7 @@ class Multishipping extends \Magento\Framework\DataObject \Magento\Multishipping\Helper\Data $helper, OrderSender $orderSender, PriceCurrencyInterface $priceCurrency, - \Magento\Quote\Model\QuoteRepository $quoteRepository, + \Magento\Quote\Api\CartRepositoryInterface $quoteRepository, \Magento\Framework\Api\SearchCriteriaBuilder $searchCriteriaBuilder, \Magento\Framework\Api\FilterBuilder $filterBuilder, \Magento\Quote\Model\Quote\TotalsCollector $totalsCollector, @@ -289,35 +289,8 @@ class Multishipping extends \Magento\Framework\DataObject if ($this->_quoteShippingAddressesItems !== null) { return $this->_quoteShippingAddressesItems; } - $items = []; - $addresses = $this->getQuote()->getAllAddresses(); - foreach ($addresses as $address) { - foreach ($address->getAllItems() as $item) { - if ($item->getParentItemId()) { - continue; - } - if ($item->getProduct()->getIsVirtual()) { - $items[] = $item; - continue; - } - if ($item->getQty() > 1) { - for ($i = 0, $n = $item->getQty(); $i < $n; $i++) { - if ($i == 0) { - $addressItem = $item; - } else { - $addressItem = clone $item; - } - $addressItem->setQty(1)->setCustomerAddressId($address->getCustomerAddressId())->save(); - $items[] = $addressItem; - } - } else { - $item->setCustomerAddressId($address->getCustomerAddressId()); - $items[] = $item; - } - } - } - $this->_quoteShippingAddressesItems = $items; - return $items; + $this->_quoteShippingAddressesItems = $this->getQuote()->getShippingAddressesItems(); + return $this->_quoteShippingAddressesItems; } /** diff --git a/app/code/Magento/Multishipping/Test/Unit/Model/Checkout/Type/MultishippingTest.php b/app/code/Magento/Multishipping/Test/Unit/Model/Checkout/Type/MultishippingTest.php index cb72f0b778a04bc35e2b1c3a754dd5029aa152eb..23afb4bef143722a830ef1aa3a634d34c33cce67 100644 --- a/app/code/Magento/Multishipping/Test/Unit/Model/Checkout/Type/MultishippingTest.php +++ b/app/code/Magento/Multishipping/Test/Unit/Model/Checkout/Type/MultishippingTest.php @@ -75,7 +75,7 @@ class MultishippingTest extends \PHPUnit_Framework_TestCase $this->helperMock = $this->getMock('\Magento\Multishipping\Helper\Data', [], [], '', false); $orderSenderMock = $this->getMock('\Magento\Sales\Model\Order\Email\Sender\OrderSender', [], [], '', false); $priceMock = $this->getMock('\Magento\Framework\Pricing\PriceCurrencyInterface', [], [], '', false); - $quoteRepositoryMock = $this->getMock('\Magento\Quote\Model\QuoteRepository', [], [], '', false); + $quoteRepositoryMock = $this->getMock('\Magento\Quote\Api\CartRepositoryInterface'); $this->filterBuilderMock = $this->getMock('\Magento\Framework\Api\FilterBuilder', [], [], '', false); $this->searchCriteriaBuilderMock = $this->getMock( '\Magento\Framework\Api\SearchCriteriaBuilder', @@ -260,4 +260,12 @@ class MultishippingTest extends \PHPUnit_Framework_TestCase $this->assertEquals($this->model, $this->model->setQuoteCustomerBillingAddress($addressId)); } + + public function testGetQuoteShippingAddressesItems() + { + $quoteItem = $this->getMock('Magento\Quote\Model\Quote\Address\Item', [], [], '', false); + $this->checkoutSessionMock->expects($this->once())->method('getQuote')->willReturn($this->quoteMock); + $this->quoteMock->expects($this->once())->method('getShippingAddressesItems')->willReturn($quoteItem); + $this->model->getQuoteShippingAddressesItems(); + } } diff --git a/app/code/Magento/Payment/Test/Unit/Gateway/Data/Quote/QuoteAdapterTest.php b/app/code/Magento/Payment/Test/Unit/Gateway/Data/Quote/QuoteAdapterTest.php index 019dcf03ef3fc563a2e8647ba7ffde3323fae5ae..1044bb8d4e792de1ef7233ecbe7743283d00d4c9 100644 --- a/app/code/Magento/Payment/Test/Unit/Gateway/Data/Quote/QuoteAdapterTest.php +++ b/app/code/Magento/Payment/Test/Unit/Gateway/Data/Quote/QuoteAdapterTest.php @@ -29,8 +29,7 @@ class QuoteAdapterTest extends \PHPUnit_Framework_TestCase protected function setUp() { - $this->quoteMock = $this->getMockBuilder('Magento\Quote\Api\Data\CartInterface') - ->getMockForAbstractClass(); + $this->quoteMock = $this->getMock('Magento\Quote\Model\Quote', [], [], '', false); $this->addressAdapterFactoryMock = $this->getMockBuilder('Magento\Payment\Gateway\Data\Quote\AddressAdapterFactory') diff --git a/app/code/Magento/Paypal/Controller/Express/AbstractExpress/ShippingOptionsCallback.php b/app/code/Magento/Paypal/Controller/Express/AbstractExpress/ShippingOptionsCallback.php index ca53012f5346d1a202c42438b3d085f757a1be8d..66cca6c22ecd21583501657cb9c954f538e7df35 100644 --- a/app/code/Magento/Paypal/Controller/Express/AbstractExpress/ShippingOptionsCallback.php +++ b/app/code/Magento/Paypal/Controller/Express/AbstractExpress/ShippingOptionsCallback.php @@ -9,7 +9,7 @@ namespace Magento\Paypal\Controller\Express\AbstractExpress; class ShippingOptionsCallback extends \Magento\Paypal\Controller\Express\AbstractExpress { /** - * @var \Magento\Quote\Model\QuoteRepository + * @var \Magento\Quote\Api\CartRepositoryInterface */ protected $quoteRepository; @@ -22,7 +22,7 @@ class ShippingOptionsCallback extends \Magento\Paypal\Controller\Express\Abstrac * @param \Magento\Framework\Session\Generic $paypalSession * @param \Magento\Framework\Url\Helper\Data $urlHelper * @param \Magento\Customer\Model\Url $customerUrl - * @param \Magento\Quote\Model\QuoteRepository $quoteRepository + * @param \Magento\Quote\Api\CartRepositoryInterface $quoteRepository */ public function __construct( \Magento\Framework\App\Action\Context $context, @@ -33,7 +33,7 @@ class ShippingOptionsCallback extends \Magento\Paypal\Controller\Express\Abstrac \Magento\Framework\Session\Generic $paypalSession, \Magento\Framework\Url\Helper\Data $urlHelper, \Magento\Customer\Model\Url $customerUrl, - \Magento\Quote\Model\QuoteRepository $quoteRepository + \Magento\Quote\Api\CartRepositoryInterface $quoteRepository ) { $this->quoteRepository = $quoteRepository; parent::__construct( diff --git a/app/code/Magento/Paypal/Model/Express/Checkout.php b/app/code/Magento/Paypal/Model/Express/Checkout.php index d3b0cf72fc76bf9047b4a82e4cdc663380834123..2df901f5ce5199b1d3478d1e12aa6cd173e3efe6 100644 --- a/app/code/Magento/Paypal/Model/Express/Checkout.php +++ b/app/code/Magento/Paypal/Model/Express/Checkout.php @@ -260,12 +260,12 @@ class Checkout protected $paypalQuote; /** - * @var \Magento\Quote\Model\QuoteRepository + * @var \Magento\Quote\Api\CartRepositoryInterface */ protected $quoteRepository; /** - * @var \Magento\Quote\Model\QuoteManagement + * @var \Magento\Quote\Api\CartManagementInterface */ protected $quoteManagement; @@ -287,7 +287,7 @@ class Checkout * @param \Magento\Framework\UrlInterface $coreUrl * @param \Magento\Paypal\Model\CartFactory $cartFactory * @param \Magento\Checkout\Model\Type\OnepageFactory $onepageFactory - * @param \Magento\Quote\Model\QuoteManagement $quoteManagement + * @param \Magento\Quote\Api\CartManagementInterface $quoteManagement * @param \Magento\Paypal\Model\Billing\AgreementFactory $agreementFactory * @param \Magento\Paypal\Model\Api\Type\Factory $apiTypeFactory * @param DataObject\Copy $objectCopyService @@ -298,7 +298,7 @@ class Checkout * @param AccountManagement $accountManagement * @param PaypalQuote $paypalQuote * @param OrderSender $orderSender - * @param \Magento\Quote\Model\QuoteRepository $quoteRepository + * @param \Magento\Quote\Api\CartRepositoryInterface $quoteRepository * @param \Magento\Quote\Model\Quote\TotalsCollector $totalsCollector * @param array $params * @throws \Exception @@ -317,7 +317,7 @@ class Checkout \Magento\Framework\UrlInterface $coreUrl, \Magento\Paypal\Model\CartFactory $cartFactory, \Magento\Checkout\Model\Type\OnepageFactory $onepageFactory, - \Magento\Quote\Model\QuoteManagement $quoteManagement, + \Magento\Quote\Api\CartManagementInterface $quoteManagement, \Magento\Paypal\Model\Billing\AgreementFactory $agreementFactory, \Magento\Paypal\Model\Api\Type\Factory $apiTypeFactory, \Magento\Framework\DataObject\Copy $objectCopyService, @@ -328,7 +328,7 @@ class Checkout AccountManagement $accountManagement, PaypalQuote $paypalQuote, OrderSender $orderSender, - \Magento\Quote\Model\QuoteRepository $quoteRepository, + \Magento\Quote\Api\CartRepositoryInterface $quoteRepository, \Magento\Quote\Model\Quote\TotalsCollector $totalsCollector, $params = [] ) { diff --git a/app/code/Magento/Paypal/Model/Payflow/Service/Response/Transaction.php b/app/code/Magento/Paypal/Model/Payflow/Service/Response/Transaction.php index 03525721e42fd772cc4dbb6c964d3fb2f5dcf57c..899a4f4c0ac89e85f6a812eb0b396de1fe242046 100644 --- a/app/code/Magento/Paypal/Model/Payflow/Service/Response/Transaction.php +++ b/app/code/Magento/Paypal/Model/Payflow/Service/Response/Transaction.php @@ -11,7 +11,7 @@ use Magento\Payment\Model\Method\Logger; use Magento\Paypal\Model\Payflow\Service\Response\Handler\HandlerInterface; use Magento\Framework\Session\Generic; use Magento\Payment\Model\InfoInterface; -use Magento\Quote\Model\QuoteRepository; +use Magento\Quote\Api\CartRepositoryInterface; use Magento\Paypal\Model\Payflow\Transparent; use Magento\Quote\Api\PaymentMethodManagementInterface; @@ -26,7 +26,7 @@ class Transaction protected $sessionTransparent; /** - * @var QuoteRepository + * @var CartRepositoryInterface */ protected $quoteRepository; @@ -54,7 +54,7 @@ class Transaction * Constructor * * @param Generic $sessionTransparent - * @param QuoteRepository $quoteRepository + * @param CartRepositoryInterface $quoteRepository * @param Transparent $transparent * @param PaymentMethodManagementInterface $paymentManagement * @param HandlerInterface $errorHandler @@ -62,7 +62,7 @@ class Transaction */ public function __construct( Generic $sessionTransparent, - QuoteRepository $quoteRepository, + CartRepositoryInterface $quoteRepository, Transparent $transparent, PaymentMethodManagementInterface $paymentManagement, HandlerInterface $errorHandler, diff --git a/app/code/Magento/Paypal/Model/Payflow/Service/Response/Validator/AbstractFilterValidator.php b/app/code/Magento/Paypal/Model/Payflow/Service/Response/Validator/AbstractFilterValidator.php index 1a0b550b7f0d41f143c738c0cf5009f836b7de9c..13fc20ac06cf6185ceb4d9abe91d330e1f41a5ac 100644 --- a/app/code/Magento/Paypal/Model/Payflow/Service/Response/Validator/AbstractFilterValidator.php +++ b/app/code/Magento/Paypal/Model/Payflow/Service/Response/Validator/AbstractFilterValidator.php @@ -6,7 +6,7 @@ namespace Magento\Paypal\Model\Payflow\Service\Response\Validator; use Magento\Framework\Session\Generic; -use Magento\Quote\Model\QuoteRepository; +use Magento\Quote\Api\CartRepositoryInterface; use Magento\Payment\Model\Method\ConfigInterface; use Magento\Quote\Api\PaymentMethodManagementInterface; @@ -16,7 +16,7 @@ use Magento\Quote\Api\PaymentMethodManagementInterface; abstract class AbstractFilterValidator { /** - * @var QuoteRepository + * @var \Magento\Quote\Api\CartRepositoryInterface */ protected $quoteRepository; @@ -34,11 +34,11 @@ abstract class AbstractFilterValidator * Constructor * * @param Generic $sessionTransparent - * @param QuoteRepository $quoteRepository + * @param CartRepositoryInterface $quoteRepository * @param PaymentMethodManagementInterface $paymentManagement */ public function __construct( - QuoteRepository $quoteRepository, + CartRepositoryInterface $quoteRepository, Generic $sessionTransparent, PaymentMethodManagementInterface $paymentManagement ) { diff --git a/app/code/Magento/Paypal/Model/Payflowlink.php b/app/code/Magento/Paypal/Model/Payflowlink.php index 91513032674c6250ab1a55306609cb533e432932..b8b64e481932c9a6db3d0cc08429d42d90f5f8e2 100644 --- a/app/code/Magento/Paypal/Model/Payflowlink.php +++ b/app/code/Magento/Paypal/Model/Payflowlink.php @@ -92,7 +92,7 @@ class Payflowlink extends \Magento\Paypal\Model\Payflowpro protected $_requestFactory; /** - * @var \Magento\Quote\Model\QuoteRepository + * @var \Magento\Quote\Api\CartRepositoryInterface */ protected $quoteRepository; @@ -127,7 +127,7 @@ class Payflowlink extends \Magento\Paypal\Model\Payflowpro * @param HandlerInterface $errorHandler * @param \Magento\Framework\Math\Random $mathRandom * @param Payflow\RequestFactory $requestFactory - * @param \Magento\Quote\Model\QuoteRepository $quoteRepository + * @param \Magento\Quote\Api\CartRepositoryInterface $quoteRepository * @param \Magento\Sales\Model\OrderFactory $orderFactory * @param \Magento\Framework\App\RequestInterface $requestHttp * @param \Magento\Store\Model\WebsiteFactory $websiteFactory @@ -153,7 +153,7 @@ class Payflowlink extends \Magento\Paypal\Model\Payflowpro HandlerInterface $errorHandler, \Magento\Framework\Math\Random $mathRandom, \Magento\Paypal\Model\Payflow\RequestFactory $requestFactory, - \Magento\Quote\Model\QuoteRepository $quoteRepository, + \Magento\Quote\Api\CartRepositoryInterface $quoteRepository, \Magento\Sales\Model\OrderFactory $orderFactory, \Magento\Framework\App\RequestInterface $requestHttp, \Magento\Store\Model\WebsiteFactory $websiteFactory, diff --git a/app/code/Magento/Paypal/Test/Unit/Model/Payflow/Service/Response/TransactionTest.php b/app/code/Magento/Paypal/Test/Unit/Model/Payflow/Service/Response/TransactionTest.php index b81b9acce9e089c67e54e8f6117d72fb67fc3ce0..14d2412226922c8e34c7de8f977a009b07162cf2 100644 --- a/app/code/Magento/Paypal/Test/Unit/Model/Payflow/Service/Response/TransactionTest.php +++ b/app/code/Magento/Paypal/Test/Unit/Model/Payflow/Service/Response/TransactionTest.php @@ -26,7 +26,7 @@ class TransactionTest extends \PHPUnit_Framework_TestCase protected $sessionTransparent; /** - * @var \PHPUnit_Framework_MockObject_MockObject|\Magento\Quote\Model\QuoteRepository + * @var \PHPUnit_Framework_MockObject_MockObject|\Magento\Quote\Api\CartRepositoryInterface */ protected $quoteRepository; @@ -53,7 +53,7 @@ class TransactionTest extends \PHPUnit_Framework_TestCase protected function setUp() { $this->sessionTransparent = $this->getMock('Magento\Framework\Session\Generic', ['getQuoteId'], [], '', false); - $this->quoteRepository = $this->getMock('Magento\Quote\Model\QuoteRepository', [], [], '', false); + $this->quoteRepository = $this->getMock('\Magento\Quote\Api\CartRepositoryInterface'); $this->transparent = $this->getMock('Magento\Paypal\Model\Payflow\Transparent', [], [], '', false); $this->paymentMethodManagementInterface = $this->getMock( 'Magento\Quote\Api\PaymentMethodManagementInterface', diff --git a/app/code/Magento/Paypal/Test/Unit/Model/Payflow/Service/Response/Validator/AVSResponseTest.php b/app/code/Magento/Paypal/Test/Unit/Model/Payflow/Service/Response/Validator/AVSResponseTest.php index 745ae62f8be19899d18bbff6c681d4a9d2fc91be..830f8022ac459df02177b72358e0fc272c7b51ad 100644 --- a/app/code/Magento/Paypal/Test/Unit/Model/Payflow/Service/Response/Validator/AVSResponseTest.php +++ b/app/code/Magento/Paypal/Test/Unit/Model/Payflow/Service/Response/Validator/AVSResponseTest.php @@ -31,9 +31,7 @@ class AVSResponseTest extends \PHPUnit_Framework_TestCase */ protected function setUp() { - $quoteRepositoryMock = $this->getMockBuilder('Magento\Quote\Model\QuoteRepository') - ->disableOriginalConstructor() - ->getMock(); + $quoteRepositoryMock = $this->getMock('\Magento\Quote\Api\CartRepositoryInterface'); $sessionTransparentMock = $this->getMockBuilder('Magento\Framework\Session\Generic') ->setMethods(['getQuoteId']) ->disableOriginalConstructor() diff --git a/app/code/Magento/Paypal/Test/Unit/Model/Payflow/Service/Response/Validator/CVV2MatchTest.php b/app/code/Magento/Paypal/Test/Unit/Model/Payflow/Service/Response/Validator/CVV2MatchTest.php index 4202cd7080ec5f46ac89212ca5f721b90375802f..7f45469cfd0fe5d8dcea22d359e85e72c95d169b 100644 --- a/app/code/Magento/Paypal/Test/Unit/Model/Payflow/Service/Response/Validator/CVV2MatchTest.php +++ b/app/code/Magento/Paypal/Test/Unit/Model/Payflow/Service/Response/Validator/CVV2MatchTest.php @@ -31,9 +31,7 @@ class CVV2MatchTest extends \PHPUnit_Framework_TestCase */ protected function setUp() { - $quoteRepositoryMock = $this->getMockBuilder('Magento\Quote\Model\QuoteRepository') - ->disableOriginalConstructor() - ->getMock(); + $quoteRepositoryMock = $this->getMock('\Magento\Quote\Api\CartRepositoryInterface'); $sessionTransparentMock = $this->getMockBuilder('Magento\Framework\Session\Generic') ->setMethods(['getQuoteId']) ->disableOriginalConstructor() diff --git a/app/code/Magento/Persistent/Model/QuoteManager.php b/app/code/Magento/Persistent/Model/QuoteManager.php index a594a0d734120755a11f007834c51d48b5981cfe..bbf5667ea6423c994296b2e21c6957f699c32e4d 100644 --- a/app/code/Magento/Persistent/Model/QuoteManager.php +++ b/app/code/Magento/Persistent/Model/QuoteManager.php @@ -39,7 +39,7 @@ class QuoteManager protected $_setQuotePersistent = true; /** - * @var \Magento\Quote\Model\QuoteRepository + * @var \Magento\Quote\Api\CartRepositoryInterface */ protected $quoteRepository; @@ -47,13 +47,13 @@ class QuoteManager * @param \Magento\Persistent\Helper\Session $persistentSession * @param \Magento\Persistent\Helper\Data $persistentData * @param \Magento\Checkout\Model\Session $checkoutSession - * @param \Magento\Quote\Model\QuoteRepository $quoteRepository + * @param \Magento\Quote\Api\CartRepositoryInterface $quoteRepository */ public function __construct( \Magento\Persistent\Helper\Session $persistentSession, \Magento\Persistent\Helper\Data $persistentData, \Magento\Checkout\Model\Session $checkoutSession, - \Magento\Quote\Model\QuoteRepository $quoteRepository + \Magento\Quote\Api\CartRepositoryInterface $quoteRepository ) { $this->persistentSession = $persistentSession; $this->persistentData = $persistentData; diff --git a/app/code/Magento/Persistent/Test/Unit/Model/QuoteManagerTest.php b/app/code/Magento/Persistent/Test/Unit/Model/QuoteManagerTest.php index b34259efc21ad9ece92cff34206e3826df18adf9..51c44b5bbfae72706409bb3ca8d1a8076bdf48e1 100644 --- a/app/code/Magento/Persistent/Test/Unit/Model/QuoteManagerTest.php +++ b/app/code/Magento/Persistent/Test/Unit/Model/QuoteManagerTest.php @@ -76,9 +76,7 @@ class QuoteManagerTest extends \PHPUnit_Framework_TestCase $this->abstractCollectionMock = $this->getMock('Magento\Eav\Model\Entity\Collection\AbstractCollection', [], [], '', false); - $this->quoteRepositoryMock = - $this->getMock('Magento\Quote\Model\QuoteRepository', [], [], '', false); - + $this->quoteRepositoryMock = $this->getMock('\Magento\Quote\Api\CartRepositoryInterface'); $this->quoteMock = $this->getMock('Magento\Quote\Model\Quote', [ 'getId', diff --git a/app/code/Magento/Quote/Api/CartRepositoryInterface.php b/app/code/Magento/Quote/Api/CartRepositoryInterface.php index ff00459a79136454d6eb91bec905506a264ebd80..7fcaa869b5ec1d282e068e21225fd7201fbb1eca 100644 --- a/app/code/Magento/Quote/Api/CartRepositoryInterface.php +++ b/app/code/Magento/Quote/Api/CartRepositoryInterface.php @@ -27,4 +27,50 @@ interface CartRepositoryInterface * @return \Magento\Quote\Api\Data\CartSearchResultsInterface */ public function getList(\Magento\Framework\Api\SearchCriteria $searchCriteria); + + /** + * Get quote by customer Id + * + * @param int $customerId + * @param int[] $sharedStoreIds + * @return \Magento\Quote\Api\Data\CartInterface + * @throws \Magento\Framework\Exception\NoSuchEntityException + */ + public function getForCustomer($customerId, array $sharedStoreIds = []); + + /** + * Get active quote by id + * + * @param int $cartId + * @param int[] $sharedStoreIds + * @return \Magento\Quote\Api\Data\CartInterface + * @throws \Magento\Framework\Exception\NoSuchEntityException + */ + public function getActive($cartId, array $sharedStoreIds = []); + + /** + * Get active quote by customer Id + * + * @param int $customerId + * @param int[] $sharedStoreIds + * @return \Magento\Quote\Api\Data\CartInterface + * @throws \Magento\Framework\Exception\NoSuchEntityException + */ + public function getActiveForCustomer($customerId, array $sharedStoreIds = []); + + /** + * Save quote + * + * @param \Magento\Quote\Api\Data\CartInterface $quote + * @return void + */ + public function save(\Magento\Quote\Api\Data\CartInterface $quote); + + /** + * Delete quote + * + * @param \Magento\Quote\Api\Data\CartInterface $quote + * @return void + */ + public function delete(\Magento\Quote\Api\Data\CartInterface $quote); } diff --git a/app/code/Magento/Quote/Api/Data/CartInterface.php b/app/code/Magento/Quote/Api/Data/CartInterface.php index a663618a0b81fba68dca3b123ee9f0b43466e243..17489d01d4edf6db9a3e922ae76de6c2d23604ee 100644 --- a/app/code/Magento/Quote/Api/Data/CartInterface.php +++ b/app/code/Magento/Quote/Api/Data/CartInterface.php @@ -202,36 +202,6 @@ interface CartInterface extends \Magento\Framework\Api\ExtensibleDataInterface */ public function setCustomer(\Magento\Customer\Api\Data\CustomerInterface $customer = null); - /** - * Returns the payment method that is used to process the cart. - * - * @return string|null Payment method. Otherwise, null. - */ - public function getCheckoutMethod(); - - /** - * Sets the payment method that is used to process the cart. - * - * @param string $checkoutMethod - * @return $this - */ - public function setCheckoutMethod($checkoutMethod); - - /** - * Returns the cart shipping address. - * - * @return \Magento\Quote\Api\Data\AddressInterface|null Cart shipping address. Otherwise, null. - */ - public function getShippingAddress(); - - /** - * Sets the cart shipping address. - * - * @param \Magento\Quote\Api\Data\AddressInterface $shippingAddress - * @return $this - */ - public function setShippingAddress(\Magento\Quote\Api\Data\AddressInterface $shippingAddress = null); - /** * Returns the cart billing address. * diff --git a/app/code/Magento/Quote/Api/GuestShippingMethodManagementInterface.php b/app/code/Magento/Quote/Api/GuestShippingMethodManagementInterface.php index 29c4a07ca8d46c9d85d9f1a901c9303a86eaec3e..883a7b4e1acdde0e1cf49325a5d0eea3e871289e 100644 --- a/app/code/Magento/Quote/Api/GuestShippingMethodManagementInterface.php +++ b/app/code/Magento/Quote/Api/GuestShippingMethodManagementInterface.php @@ -11,31 +11,6 @@ namespace Magento\Quote\Api; */ interface GuestShippingMethodManagementInterface { - /** - * Set the carrier and shipping methods codes for a specified cart. - * - * @param string $cartId The shopping cart ID. - * @param string $carrierCode The carrier code. - * @param string $methodCode The shipping method code. - * @return bool - * @throws \Magento\Framework\Exception\InputException The shipping method is not valid for an empty cart. - * @throws \Magento\Framework\Exception\CouldNotSaveException The shipping method could not be saved. - * @throws \Magento\Framework\Exception\StateException The billing or shipping address is not set. - * @throws \Magento\Framework\Exception\NoSuchEntityException The specified cart contains only virtual products - * so the shipping method does not apply. - */ - public function set($cartId, $carrierCode, $methodCode); - - /** - * Return selected shipping method for a specified quote. - * - * @param string $cartId The shopping cart ID. - * @return \Magento\Quote\Api\Data\ShippingMethodInterface Shipping method. - * @throws \Magento\Framework\Exception\NoSuchEntityException The specified shopping cart does not exist. - * @throws \Magento\Framework\Exception\StateException The shipping address is not set. - */ - public function get($cartId); - /** * List applicable shipping methods for a specified quote. * diff --git a/app/code/Magento/Quote/Api/ShippingMethodManagementInterface.php b/app/code/Magento/Quote/Api/ShippingMethodManagementInterface.php index e9edbf4241fd0fa6d0decfeacad347b10aa2c04a..41aa4e5719ff631ffde068c9d5a133647253eb2d 100644 --- a/app/code/Magento/Quote/Api/ShippingMethodManagementInterface.php +++ b/app/code/Magento/Quote/Api/ShippingMethodManagementInterface.php @@ -11,21 +11,6 @@ namespace Magento\Quote\Api; */ interface ShippingMethodManagementInterface { - /** - * Sets the carrier and shipping methods codes for a specified cart. - * - * @param int $cartId The shopping cart ID. - * @param string $carrierCode The carrier code. - * @param string $methodCode The shipping method code. - * @return bool - * @throws \Magento\Framework\Exception\InputException The shipping method is not valid for an empty cart. - * @throws \Magento\Framework\Exception\CouldNotSaveException The shipping method could not be saved. - * @throws \Magento\Framework\Exception\StateException The billing or shipping address is not set. - * @throws \Magento\Framework\Exception\NoSuchEntityException The specified cart contains only virtual products - * so the shipping method does not apply. - */ - public function set($cartId, $carrierCode, $methodCode); - /** * Estimate shipping * @@ -44,16 +29,6 @@ interface ShippingMethodManagementInterface */ public function estimateByAddressId($cartId, $addressId); - /** - * Returns selected shipping method for a specified quote. - * - * @param int $cartId The shopping cart ID. - * @return \Magento\Quote\Api\Data\ShippingMethodInterface Shipping method. - * @throws \Magento\Framework\Exception\NoSuchEntityException The specified shopping cart does not exist. - * @throws \Magento\Framework\Exception\StateException The shipping address is not set. - */ - public function get($cartId); - /** * Lists applicable shipping methods for a specified quote. * diff --git a/app/code/Magento/Quote/Model/BillingAddressManagement.php b/app/code/Magento/Quote/Model/BillingAddressManagement.php index 02c8046d6880514533be508a9819751708dcac27..1c9dd809f89c7619b84dac57d39ddbed43240fd3 100644 --- a/app/code/Magento/Quote/Model/BillingAddressManagement.php +++ b/app/code/Magento/Quote/Model/BillingAddressManagement.php @@ -5,7 +5,7 @@ */ namespace Magento\Quote\Model; -use Magento\Quote\Model\QuoteRepository; +use Magento\Quote\Api\CartRepositoryInterface; use Magento\Framework\Exception\InputException; use Psr\Log\LoggerInterface as Logger; use Magento\Quote\Api\BillingAddressManagementInterface; @@ -31,7 +31,7 @@ class BillingAddressManagement implements BillingAddressManagementInterface /** * Quote repository. * - * @var QuoteRepository + * @var \Magento\Quote\Api\CartRepositoryInterface */ protected $quoteRepository; @@ -43,13 +43,13 @@ class BillingAddressManagement implements BillingAddressManagementInterface /** * Constructs a quote billing address service object. * - * @param QuoteRepository $quoteRepository Quote repository. + * @param \Magento\Quote\Api\CartRepositoryInterface $quoteRepository Quote repository. * @param QuoteAddressValidator $addressValidator Address validator. * @param Logger $logger Logger. * @param \Magento\Customer\Api\AddressRepositoryInterface $addressRepository */ public function __construct( - QuoteRepository $quoteRepository, + \Magento\Quote\Api\CartRepositoryInterface $quoteRepository, QuoteAddressValidator $addressValidator, Logger $logger, \Magento\Customer\Api\AddressRepositoryInterface $addressRepository diff --git a/app/code/Magento/Quote/Model/Cart/CartTotalRepository.php b/app/code/Magento/Quote/Model/Cart/CartTotalRepository.php index 77802348230abc4923fb529f29ff8011c297eaa5..c6b5d331bc7e76600117c87b21f1bba0385b5747 100644 --- a/app/code/Magento/Quote/Model/Cart/CartTotalRepository.php +++ b/app/code/Magento/Quote/Model/Cart/CartTotalRepository.php @@ -6,7 +6,7 @@ namespace Magento\Quote\Model\Cart; use Magento\Quote\Api; -use Magento\Quote\Model\QuoteRepository; +use Magento\Quote\Api\CartRepositoryInterface; use Magento\Quote\Api\CartTotalRepositoryInterface; use Magento\Catalog\Helper\Product\ConfigurationPool; use Magento\Framework\Api\DataObjectHelper; @@ -29,7 +29,7 @@ class CartTotalRepository implements CartTotalRepositoryInterface /** * Quote repository. * - * @var QuoteRepository + * @var \Magento\Quote\Api\CartRepositoryInterface */ private $quoteRepository; @@ -55,7 +55,7 @@ class CartTotalRepository implements CartTotalRepositoryInterface /** * @param Api\Data\TotalsInterfaceFactory $totalsFactory - * @param QuoteRepository $quoteRepository + * @param CartRepositoryInterface $quoteRepository * @param DataObjectHelper $dataObjectHelper * @param CouponManagementInterface $couponService * @param TotalsConverter $totalsConverter @@ -63,7 +63,7 @@ class CartTotalRepository implements CartTotalRepositoryInterface */ public function __construct( Api\Data\TotalsInterfaceFactory $totalsFactory, - QuoteRepository $quoteRepository, + CartRepositoryInterface $quoteRepository, DataObjectHelper $dataObjectHelper, CouponManagementInterface $couponService, TotalsConverter $totalsConverter, diff --git a/app/code/Magento/Quote/Model/CouponManagement.php b/app/code/Magento/Quote/Model/CouponManagement.php index c57172b122c8bf323810b012fd8c8414b49e0b0c..77732e6133c19cd2d1c91671e9b49cc072f76c1a 100644 --- a/app/code/Magento/Quote/Model/CouponManagement.php +++ b/app/code/Magento/Quote/Model/CouponManagement.php @@ -20,17 +20,17 @@ class CouponManagement implements CouponManagementInterface /** * Quote repository. * - * @var \Magento\Quote\Model\QuoteRepository + * @var \Magento\Quote\Api\CartRepositoryInterface */ protected $quoteRepository; /** * Constructs a coupon read service object. * - * @param \Magento\Quote\Model\QuoteRepository $quoteRepository Quote repository. + * @param \Magento\Quote\Api\CartRepositoryInterface $quoteRepository Quote repository. */ public function __construct( - \Magento\Quote\Model\QuoteRepository $quoteRepository + \Magento\Quote\Api\CartRepositoryInterface $quoteRepository ) { $this->quoteRepository = $quoteRepository; } diff --git a/app/code/Magento/Quote/Model/GuestCart/GuestCartItemRepository.php b/app/code/Magento/Quote/Model/GuestCart/GuestCartItemRepository.php index c0519dbf6fcac58a579b7f267914fde25839ffe7..b15c2225b7f5f9a5e718497bd045c3e5325d29a9 100644 --- a/app/code/Magento/Quote/Model/GuestCart/GuestCartItemRepository.php +++ b/app/code/Magento/Quote/Model/GuestCart/GuestCartItemRepository.php @@ -7,7 +7,7 @@ namespace Magento\Quote\Model\GuestCart; use Magento\Quote\Api\Data\CartItemInterface; -use Magento\Quote\Model\Quote\Item\Repository; +use Magento\Quote\Api\CartItemRepositoryInterface; use Magento\Quote\Model\QuoteIdMask; use Magento\Quote\Model\QuoteIdMaskFactory; @@ -17,7 +17,7 @@ use Magento\Quote\Model\QuoteIdMaskFactory; class GuestCartItemRepository implements \Magento\Quote\Api\GuestCartItemRepositoryInterface { /** - * @var Repository + * @var \Magento\Quote\Api\CartItemRepositoryInterface */ protected $repository; @@ -29,11 +29,11 @@ class GuestCartItemRepository implements \Magento\Quote\Api\GuestCartItemReposit /** * Constructs a read service object. * - * @param \Magento\Quote\Model\Quote\Item\Repository $repository + * @param \Magento\Quote\Api\CartItemRepositoryInterface $repository * @param QuoteIdMaskFactory $quoteIdMaskFactory */ public function __construct( - \Magento\Quote\Model\Quote\Item\Repository $repository, + \Magento\Quote\Api\CartItemRepositoryInterface $repository, QuoteIdMaskFactory $quoteIdMaskFactory ) { $this->quoteIdMaskFactory = $quoteIdMaskFactory; diff --git a/app/code/Magento/Quote/Model/GuestCart/GuestCartTotalManagement.php b/app/code/Magento/Quote/Model/GuestCart/GuestCartTotalManagement.php index 92a806211f093bfcc92bb6126db9c61c5e677d99..10220a262974edbb428e637d79891d38b3e5b91e 100644 --- a/app/code/Magento/Quote/Model/GuestCart/GuestCartTotalManagement.php +++ b/app/code/Magento/Quote/Model/GuestCart/GuestCartTotalManagement.php @@ -14,7 +14,7 @@ use Magento\Quote\Api\GuestCartTotalManagementInterface; class GuestCartTotalManagement implements GuestCartTotalManagementInterface { /** - * @var \Magento\Quote\Model\Cart\CartTotalManagement + * @var \Magento\Quote\Api\CartTotalManagementInterface */ protected $cartTotalManagement; @@ -24,11 +24,11 @@ class GuestCartTotalManagement implements GuestCartTotalManagementInterface protected $quoteIdMaskFactory; /** - * @param \Magento\Quote\Model\Cart\CartTotalManagement $cartTotalManagement + * @param \Magento\Quote\Api\CartTotalManagementInterface $cartTotalManagement * @param QuoteIdMaskFactory $quoteIdMaskFactory */ public function __construct( - \Magento\Quote\Model\Cart\CartTotalManagement $cartTotalManagement, + \Magento\Quote\Api\CartTotalManagementInterface $cartTotalManagement, QuoteIdMaskFactory $quoteIdMaskFactory ) { $this->cartTotalManagement = $cartTotalManagement; diff --git a/app/code/Magento/Quote/Model/GuestCart/GuestShippingAddressManagement.php b/app/code/Magento/Quote/Model/GuestCart/GuestShippingAddressManagement.php index 789466d1e0421446dfee67c09eacc09563f11c1b..8180e372a9c2e54ab9e30c46dc282849787d32b3 100644 --- a/app/code/Magento/Quote/Model/GuestCart/GuestShippingAddressManagement.php +++ b/app/code/Magento/Quote/Model/GuestCart/GuestShippingAddressManagement.php @@ -5,10 +5,10 @@ */ namespace Magento\Quote\Model\GuestCart; -use Magento\Quote\Api\GuestShippingAddressManagementInterface; +use Magento\Quote\Model\GuestCart\GuestShippingAddressManagementInterface; use Magento\Quote\Model\QuoteIdMask; use Magento\Quote\Model\QuoteIdMaskFactory; -use Magento\Quote\Api\ShippingAddressManagementInterface; +use Magento\Quote\Model\ShippingAddressManagementInterface; /** * Shipping address management class for guest carts. diff --git a/app/code/Magento/Quote/Api/GuestShippingAddressManagementInterface.php b/app/code/Magento/Quote/Model/GuestCart/GuestShippingAddressManagementInterface.php similarity index 96% rename from app/code/Magento/Quote/Api/GuestShippingAddressManagementInterface.php rename to app/code/Magento/Quote/Model/GuestCart/GuestShippingAddressManagementInterface.php index 79207e8af1b114f9f17531d070ebfd6d4ae47b37..fd4054293452b644a635fc45e1be434d866893ba 100644 --- a/app/code/Magento/Quote/Api/GuestShippingAddressManagementInterface.php +++ b/app/code/Magento/Quote/Model/GuestCart/GuestShippingAddressManagementInterface.php @@ -3,7 +3,7 @@ * Copyright © 2015 Magento. All rights reserved. * See COPYING.txt for license details. */ -namespace Magento\Quote\Api; +namespace Magento\Quote\Model\GuestCart; /** * Shipping address management interface for guest carts. diff --git a/app/code/Magento/Quote/Model/GuestCart/GuestShippingMethodManagement.php b/app/code/Magento/Quote/Model/GuestCart/GuestShippingMethodManagement.php index 6026ff8f8da0406a98dcc1beaf5212c816e81df6..7201ba0d035abf56215b58076d9101f33275cdaa 100644 --- a/app/code/Magento/Quote/Model/GuestCart/GuestShippingMethodManagement.php +++ b/app/code/Magento/Quote/Model/GuestCart/GuestShippingMethodManagement.php @@ -6,7 +6,6 @@ namespace Magento\Quote\Model\GuestCart; -use Magento\Quote\Api\GuestShippingMethodManagementInterface; use Magento\Quote\Api\ShippingMethodManagementInterface; use Magento\Quote\Model\QuoteIdMask; use Magento\Quote\Model\QuoteIdMaskFactory; @@ -14,7 +13,9 @@ use Magento\Quote\Model\QuoteIdMaskFactory; /** * Shipping method management class for guest carts. */ -class GuestShippingMethodManagement implements GuestShippingMethodManagementInterface +class GuestShippingMethodManagement implements + \Magento\Quote\Api\GuestShippingMethodManagementInterface, + \Magento\Quote\Model\GuestCart\GuestShippingMethodManagementInterface { /** * @var ShippingMethodManagementInterface diff --git a/app/code/Magento/Quote/Model/GuestCart/GuestShippingMethodManagementInterface.php b/app/code/Magento/Quote/Model/GuestCart/GuestShippingMethodManagementInterface.php new file mode 100644 index 0000000000000000000000000000000000000000..0e292dbf512e24911da205d9ac3b7e5d6346f0b7 --- /dev/null +++ b/app/code/Magento/Quote/Model/GuestCart/GuestShippingMethodManagementInterface.php @@ -0,0 +1,34 @@ +<?php +/** + * Copyright © 2015 Magento. All rights reserved. + * See COPYING.txt for license details. + */ +namespace Magento\Quote\Model\GuestCart; + +interface GuestShippingMethodManagementInterface +{ + /** + * Set the carrier and shipping methods codes for a specified cart. + * + * @param string $cartId The shopping cart ID. + * @param string $carrierCode The carrier code. + * @param string $methodCode The shipping method code. + * @return bool + * @throws \Magento\Framework\Exception\InputException The shipping method is not valid for an empty cart. + * @throws \Magento\Framework\Exception\CouldNotSaveException The shipping method could not be saved. + * @throws \Magento\Framework\Exception\StateException The billing or shipping address is not set. + * @throws \Magento\Framework\Exception\NoSuchEntityException The specified cart contains only virtual products + * so the shipping method does not apply. + */ + public function set($cartId, $carrierCode, $methodCode); + + /** + * Return selected shipping method for a specified quote. + * + * @param string $cartId The shopping cart ID. + * @return \Magento\Quote\Api\Data\ShippingMethodInterface Shipping method. + * @throws \Magento\Framework\Exception\NoSuchEntityException The specified shopping cart does not exist. + * @throws \Magento\Framework\Exception\StateException The shipping address is not set. + */ + public function get($cartId); +} diff --git a/app/code/Magento/Quote/Model/Quote.php b/app/code/Magento/Quote/Model/Quote.php index 29779c1e22ab2d74badb06587ae4b4bd9782333d..46908d940705b04ab92fc50b5dff07ce806b79d6 100644 --- a/app/code/Magento/Quote/Model/Quote.php +++ b/app/code/Magento/Quote/Model/Quote.php @@ -344,6 +344,13 @@ class Quote extends AbstractExtensibleModel implements \Magento\Quote\Api\Data\C */ protected $shippingAssignmentFactory; + /** + * Quote shipping addresses items cache + * + * @var array + */ + protected $shippingAddressesItems; + /** * @param \Magento\Framework\Model\Context $context * @param \Magento\Framework\Registry $registry @@ -1861,28 +1868,13 @@ class Quote extends AbstractExtensibleModel implements \Magento\Quote\Api\Data\C return $payment; } - /** - * @param string $paymentId - * @return bool - * @SuppressWarnings(PHPMD.BooleanGetMethodName) - */ - public function getPaymentById($paymentId) - { - foreach ($this->getPaymentsCollection() as $payment) { - if ($payment->getId() == $paymentId) { - return $payment; - } - } - return false; - } - /** * Adds a payment to quote * * @param PaymentInterface $payment * @return $this */ - public function addPayment(PaymentInterface $payment) + protected function addPayment(PaymentInterface $payment) { $payment->setQuote($this); if (!$payment->getId()) { @@ -2413,6 +2405,48 @@ class Quote extends AbstractExtensibleModel implements \Magento\Quote\Api\Data\C return $this->_getData(self::KEY_CHECKOUT_METHOD); } + /** + * Get quote items assigned to different quote addresses populated per item qty. + * Based on result array we can display each item separately + * + * @return array + */ + public function getShippingAddressesItems() + { + if ($this->shippingAddressesItems !== null) { + return $this->shippingAddressesItems; + } + $items = []; + $addresses = $this->getAllAddresses(); + foreach ($addresses as $address) { + foreach ($address->getAllItems() as $item) { + if ($item->getParentItemId()) { + continue; + } + if ($item->getProduct()->getIsVirtual()) { + $items[] = $item; + continue; + } + if ($item->getQty() > 1) { + for ($itemIndex = 0, $itemQty = $item->getQty(); $itemIndex < $itemQty; $itemIndex++) { + if ($itemIndex == 0) { + $addressItem = $item; + } else { + $addressItem = clone $item; + } + $addressItem->setQty(1)->setCustomerAddressId($address->getCustomerAddressId())->save(); + $items[] = $addressItem; + } + } else { + $item->setCustomerAddressId($address->getCustomerAddressId()); + $items[] = $item; + } + } + } + $this->shippingAddressesItems = $items; + return $items; + } + /** * Sets the payment method that is used to process the cart. * diff --git a/app/code/Magento/Quote/Model/Quote/Item/Repository.php b/app/code/Magento/Quote/Model/Quote/Item/Repository.php index 3d28a4c84fbca31e970b6c2600b9664ec9ec2057..b5234d081be57a0a5bc4b9ee07347745fc3e6012 100644 --- a/app/code/Magento/Quote/Model/Quote/Item/Repository.php +++ b/app/code/Magento/Quote/Model/Quote/Item/Repository.php @@ -16,7 +16,7 @@ class Repository implements \Magento\Quote\Api\CartItemRepositoryInterface /** * Quote repository. * - * @var \Magento\Quote\Model\QuoteRepository + * @var \Magento\Quote\Api\CartRepositoryInterface */ protected $quoteRepository; @@ -38,13 +38,13 @@ class Repository implements \Magento\Quote\Api\CartItemRepositoryInterface protected $cartItemProcessors; /** - * @param \Magento\Quote\Model\QuoteRepository $quoteRepository + * @param \Magento\Quote\Api\CartRepositoryInterface $quoteRepository * @param \Magento\Catalog\Api\ProductRepositoryInterface $productRepository * @param \Magento\Quote\Api\Data\CartItemInterfaceFactory $itemDataFactory * @param CartItemProcessorInterface[] $cartItemProcessors */ public function __construct( - \Magento\Quote\Model\QuoteRepository $quoteRepository, + \Magento\Quote\Api\CartRepositoryInterface $quoteRepository, \Magento\Catalog\Api\ProductRepositoryInterface $productRepository, \Magento\Quote\Api\Data\CartItemInterfaceFactory $itemDataFactory, array $cartItemProcessors = [] diff --git a/app/code/Magento/Quote/Model/QuoteManagement.php b/app/code/Magento/Quote/Model/QuoteManagement.php index 89e1471e362310d508b6ba37f249786d6f664fb8..76c56739e840d8755721ef060d2ac89f0a2d7c2a 100644 --- a/app/code/Magento/Quote/Model/QuoteManagement.php +++ b/app/code/Magento/Quote/Model/QuoteManagement.php @@ -80,7 +80,7 @@ class QuoteManagement implements \Magento\Quote\Api\CartManagementInterface protected $userContext; /** - * @var QuoteRepository + * @var \Magento\Quote\Api\CartRepositoryInterface */ protected $quoteRepository; @@ -119,6 +119,11 @@ class QuoteManagement implements \Magento\Quote\Api\CartManagementInterface */ protected $accountManagement; + /** + * @var QuoteFactory + */ + protected $quoteFactory; + /** * @param EventManager $eventManager * @param QuoteValidator $quoteValidator @@ -130,7 +135,7 @@ class QuoteManagement implements \Magento\Quote\Api\CartManagementInterface * @param ToOrderItemConverter $quoteItemToOrderItem * @param ToOrderPaymentConverter $quotePaymentToOrderPayment * @param UserContextInterface $userContext - * @param QuoteRepository $quoteRepository + * @param \Magento\Quote\Api\CartRepositoryInterface $quoteRepository * @param \Magento\Customer\Api\CustomerRepositoryInterface $customerRepository * @param \Magento\Customer\Model\CustomerFactory $customerModelFactory * @param \Magento\Framework\Api\DataObjectHelper $dataObjectHelper @@ -138,6 +143,7 @@ class QuoteManagement implements \Magento\Quote\Api\CartManagementInterface * @param \Magento\Checkout\Model\Session $checkoutSession * @param \Magento\Customer\Model\Session $customerSession * @param \Magento\Customer\Api\AccountManagementInterface $accountManagement + * @param QuoteFactory $quoteFactory * @SuppressWarnings(PHPMD.ExcessiveParameterList) */ public function __construct( @@ -151,14 +157,15 @@ class QuoteManagement implements \Magento\Quote\Api\CartManagementInterface ToOrderItemConverter $quoteItemToOrderItem, ToOrderPaymentConverter $quotePaymentToOrderPayment, UserContextInterface $userContext, - QuoteRepository $quoteRepository, + \Magento\Quote\Api\CartRepositoryInterface $quoteRepository, \Magento\Customer\Api\CustomerRepositoryInterface $customerRepository, \Magento\Customer\Model\CustomerFactory $customerModelFactory, \Magento\Framework\Api\DataObjectHelper $dataObjectHelper, StoreManagerInterface $storeManager, \Magento\Checkout\Model\Session $checkoutSession, \Magento\Customer\Model\Session $customerSession, - \Magento\Customer\Api\AccountManagementInterface $accountManagement + \Magento\Customer\Api\AccountManagementInterface $accountManagement, + \Magento\Quote\Model\QuoteFactory $quoteFactory ) { $this->eventManager = $eventManager; $this->quoteValidator = $quoteValidator; @@ -178,6 +185,7 @@ class QuoteManagement implements \Magento\Quote\Api\CartManagementInterface $this->checkoutSession = $checkoutSession; $this->accountManagement = $accountManagement; $this->customerSession = $customerSession; + $this->quoteFactory = $quoteFactory; } /** @@ -256,7 +264,7 @@ class QuoteManagement implements \Magento\Quote\Api\CartManagementInterface protected function createAnonymousCart($storeId) { /** @var \Magento\Quote\Model\Quote $quote */ - $quote = $this->quoteRepository->create(); + $quote = $this->quoteFactory->create(); $quote->setStoreId($storeId); return $quote; } @@ -277,7 +285,7 @@ class QuoteManagement implements \Magento\Quote\Api\CartManagementInterface $quote = $this->quoteRepository->getActiveForCustomer($customerId); } catch (\Magento\Framework\Exception\NoSuchEntityException $e) { /** @var \Magento\Quote\Model\Quote $quote */ - $quote = $this->quoteRepository->create(); + $quote = $this->quoteFactory->create(); $quote->setStoreId($storeId); $quote->setCustomer($customer); $quote->setCustomerIsGuest(0); @@ -343,7 +351,7 @@ class QuoteManagement implements \Magento\Quote\Api\CartManagementInterface } /** - * Delete quote item + * Submit quote * * @param Quote $quote * @param array $orderData diff --git a/app/code/Magento/Quote/Model/QuoteRepository.php b/app/code/Magento/Quote/Model/QuoteRepository.php index 58ba4a79e94f01b45b0853c22ea4bb85f63041a0..d788275f40fffecfe12e82b07abb964f818c26ef 100644 --- a/app/code/Magento/Quote/Model/QuoteRepository.php +++ b/app/code/Magento/Quote/Model/QuoteRepository.php @@ -78,23 +78,7 @@ class QuoteRepository implements \Magento\Quote\Api\CartRepositoryInterface } /** - * Create new quote - * - * @param array $data - * @return Quote - */ - public function create(array $data = []) - { - return $this->quoteFactory->create($data); - } - - /** - * Get quote by id - * - * @param int $cartId - * @param int[] $sharedStoreIds - * @throws NoSuchEntityException - * @return \Magento\Quote\Api\Data\CartInterface + * {@inheritdoc} */ public function get($cartId, array $sharedStoreIds = []) { @@ -107,12 +91,7 @@ class QuoteRepository implements \Magento\Quote\Api\CartRepositoryInterface } /** - * Get quote by customer Id - * - * @param int $customerId - * @param int[] $sharedStoreIds - * @return Quote - * @throws NoSuchEntityException + * {@inheritdoc} */ public function getForCustomer($customerId, array $sharedStoreIds = []) { @@ -125,12 +104,7 @@ class QuoteRepository implements \Magento\Quote\Api\CartRepositoryInterface } /** - * Get active quote by id - * - * @param int $cartId - * @param int[] $sharedStoreIds - * @return Quote - * @throws NoSuchEntityException + * {@inheritdoc} */ public function getActive($cartId, array $sharedStoreIds = []) { @@ -142,12 +116,7 @@ class QuoteRepository implements \Magento\Quote\Api\CartRepositoryInterface } /** - * Get active quote by customer Id - * - * @param int $customerId - * @param int[] $sharedStoreIds - * @return Quote - * @throws NoSuchEntityException + * {@inheritdoc} */ public function getActiveForCustomer($customerId, array $sharedStoreIds = []) { @@ -159,12 +128,9 @@ class QuoteRepository implements \Magento\Quote\Api\CartRepositoryInterface } /** - * Save quote - * - * @param Quote $quote - * @return void + * {@inheritdoc} */ - public function save(Quote $quote) + public function save(\Magento\Quote\Api\Data\CartInterface $quote) { $quote->save(); unset($this->quotesById[$quote->getId()]); @@ -172,12 +138,9 @@ class QuoteRepository implements \Magento\Quote\Api\CartRepositoryInterface } /** - * Delete quote - * - * @param Quote $quote - * @return void + * {@inheritdoc} */ - public function delete(Quote $quote) + public function delete(\Magento\Quote\Api\Data\CartInterface $quote) { $quoteId = $quote->getId(); $customerId = $quote->getCustomerId(); diff --git a/app/code/Magento/Quote/Model/QuoteRepository/Plugin/Authorization.php b/app/code/Magento/Quote/Model/QuoteRepository/Plugin/Authorization.php index 14b7752728d1143352592b7a567cac0f57653c48..8f710a2f9cb4f104b56e60a2c34c74c85d1021f5 100644 --- a/app/code/Magento/Quote/Model/QuoteRepository/Plugin/Authorization.php +++ b/app/code/Magento/Quote/Model/QuoteRepository/Plugin/Authorization.php @@ -28,14 +28,14 @@ class Authorization /** * Check if quote is allowed * - * @param \Magento\Quote\Model\QuoteRepository $subject + * @param \Magento\Quote\Api\CartRepositoryInterface $subject * @param \Magento\Quote\Model\Quote $quote * @return \Magento\Quote\Model\Quote * @throws \Magento\Framework\Exception\NoSuchEntityException * @SuppressWarnings(PHPMD.UnusedFormalParameter) */ public function afterGetActive( - \Magento\Quote\Model\QuoteRepository $subject, + \Magento\Quote\Api\CartRepositoryInterface $subject, \Magento\Quote\Model\Quote $quote ) { if (!$this->isAllowed($quote)) { @@ -47,14 +47,14 @@ class Authorization /** * Check if quote is allowed * - * @param \Magento\Quote\Model\QuoteRepository $subject + * @param \Magento\Quote\Api\CartRepositoryInterface $subject * @param \Magento\Quote\Model\Quote $quote * @return \Magento\Quote\Model\Quote * @throws \Magento\Framework\Exception\NoSuchEntityException * @SuppressWarnings(PHPMD.UnusedFormalParameter) */ public function afterGetActiveForCustomer( - \Magento\Quote\Model\QuoteRepository $subject, + \Magento\Quote\Api\CartRepositoryInterface $subject, \Magento\Quote\Model\Quote $quote ) { if (!$this->isAllowed($quote)) { diff --git a/app/code/Magento/Quote/Model/ShippingAddressManagement.php b/app/code/Magento/Quote/Model/ShippingAddressManagement.php index d87ea33696b52e134be3c2d659e2d68221b59c6e..2726458a946383209f4cb0405de716c89e0f73df 100644 --- a/app/code/Magento/Quote/Model/ShippingAddressManagement.php +++ b/app/code/Magento/Quote/Model/ShippingAddressManagement.php @@ -8,18 +8,17 @@ namespace Magento\Quote\Model; use Magento\Framework\Exception\InputException; use Magento\Framework\Exception\NoSuchEntityException; use Psr\Log\LoggerInterface as Logger; -use Magento\Quote\Api\ShippingAddressManagementInterface; /** * Quote shipping address write service object. * @SuppressWarnings(PHPMD.CouplingBetweenObjects) */ -class ShippingAddressManagement implements ShippingAddressManagementInterface +class ShippingAddressManagement implements \Magento\Quote\Model\ShippingAddressManagementInterface { /** * Quote repository. * - * @var \Magento\Quote\Model\QuoteRepository + * @var \Magento\Quote\Api\CartRepositoryInterface */ protected $quoteRepository; @@ -53,7 +52,7 @@ class ShippingAddressManagement implements ShippingAddressManagementInterface protected $totalsCollector; /** - * @param QuoteRepository $quoteRepository + * @param \Magento\Quote\Api\CartRepositoryInterface $quoteRepository * @param QuoteAddressValidator $addressValidator * @param Logger $logger * @param \Magento\Customer\Api\AddressRepositoryInterface $addressRepository @@ -62,7 +61,7 @@ class ShippingAddressManagement implements ShippingAddressManagementInterface * */ public function __construct( - \Magento\Quote\Model\QuoteRepository $quoteRepository, + \Magento\Quote\Api\CartRepositoryInterface $quoteRepository, QuoteAddressValidator $addressValidator, Logger $logger, \Magento\Customer\Api\AddressRepositoryInterface $addressRepository, diff --git a/app/code/Magento/Quote/Api/ShippingAddressManagementInterface.php b/app/code/Magento/Quote/Model/ShippingAddressManagementInterface.php similarity index 97% rename from app/code/Magento/Quote/Api/ShippingAddressManagementInterface.php rename to app/code/Magento/Quote/Model/ShippingAddressManagementInterface.php index be106920d34e3053d49f29a65671fc2a4bdf7620..3b810511fc7559886653b5c663cf5062ebf24a98 100644 --- a/app/code/Magento/Quote/Api/ShippingAddressManagementInterface.php +++ b/app/code/Magento/Quote/Model/ShippingAddressManagementInterface.php @@ -3,7 +3,7 @@ * Copyright © 2015 Magento. All rights reserved. * See COPYING.txt for license details. */ -namespace Magento\Quote\Api; +namespace Magento\Quote\Model; /** * Interface ShippingAddressManagementInterface diff --git a/app/code/Magento/Quote/Model/ShippingMethodManagement.php b/app/code/Magento/Quote/Model/ShippingMethodManagement.php index 88e778e4363bc43a771a67105dea70c08d5c0e22..400591f71cd131e077911cb6a91c6e81ba0e2e30 100644 --- a/app/code/Magento/Quote/Model/ShippingMethodManagement.php +++ b/app/code/Magento/Quote/Model/ShippingMethodManagement.php @@ -9,18 +9,19 @@ use Magento\Framework\Exception\InputException; use Magento\Framework\Exception\StateException; use Magento\Framework\Exception\NoSuchEntityException; use Magento\Framework\Exception\CouldNotSaveException; -use Magento\Quote\Api\ShippingMethodManagementInterface; /** * Shipping method read service. * @SuppressWarnings(PHPMD.CouplingBetweenObjects) */ -class ShippingMethodManagement implements ShippingMethodManagementInterface +class ShippingMethodManagement implements + \Magento\Quote\Api\ShippingMethodManagementInterface, + \Magento\Quote\Model\ShippingMethodManagementInterface { /** * Quote repository. * - * @var QuoteRepository + * @var \Magento\Quote\Api\CartRepositoryInterface */ protected $quoteRepository; @@ -46,13 +47,13 @@ class ShippingMethodManagement implements ShippingMethodManagementInterface /** * Constructs a shipping method read service object. * - * @param QuoteRepository $quoteRepository + * @param \Magento\Quote\Api\CartRepositoryInterface $quoteRepository * @param Cart\ShippingMethodConverter $converter * @param \Magento\Customer\Api\AddressRepositoryInterface $addressRepository * @param Quote\TotalsCollector $totalsCollector */ public function __construct( - QuoteRepository $quoteRepository, + \Magento\Quote\Api\CartRepositoryInterface $quoteRepository, Cart\ShippingMethodConverter $converter, \Magento\Customer\Api\AddressRepositoryInterface $addressRepository, \Magento\Quote\Model\Quote\TotalsCollector $totalsCollector diff --git a/app/code/Magento/Quote/Model/ShippingMethodManagementInterface.php b/app/code/Magento/Quote/Model/ShippingMethodManagementInterface.php new file mode 100644 index 0000000000000000000000000000000000000000..c58dfba3cdcde069c6413dc9b76872a825e95d32 --- /dev/null +++ b/app/code/Magento/Quote/Model/ShippingMethodManagementInterface.php @@ -0,0 +1,34 @@ +<?php +/** + * Copyright © 2015 Magento. All rights reserved. + * See COPYING.txt for license details. + */ +namespace Magento\Quote\Model; + +interface ShippingMethodManagementInterface +{ + /** + * Sets the carrier and shipping methods codes for a specified cart. + * + * @param int $cartId The shopping cart ID. + * @param string $carrierCode The carrier code. + * @param string $methodCode The shipping method code. + * @return bool + * @throws \Magento\Framework\Exception\InputException The shipping method is not valid for an empty cart. + * @throws \Magento\Framework\Exception\CouldNotSaveException The shipping method could not be saved. + * @throws \Magento\Framework\Exception\StateException The billing or shipping address is not set. + * @throws \Magento\Framework\Exception\NoSuchEntityException The specified cart contains only virtual products + * so the shipping method does not apply. + */ + public function set($cartId, $carrierCode, $methodCode); + + /** + * Returns selected shipping method for a specified quote. + * + * @param int $cartId The shopping cart ID. + * @return \Magento\Quote\Api\Data\ShippingMethodInterface Shipping method. + * @throws \Magento\Framework\Exception\NoSuchEntityException The specified shopping cart does not exist. + * @throws \Magento\Framework\Exception\StateException The shipping address is not set. + */ + public function get($cartId); +} diff --git a/app/code/Magento/Quote/Observer/Backend/CustomerQuoteObserver.php b/app/code/Magento/Quote/Observer/Backend/CustomerQuoteObserver.php index 36ef6b156a074c428c667ada00be93013d345a61..479c8e731f8f039b40e71024161f310ea07082a1 100644 --- a/app/code/Magento/Quote/Observer/Backend/CustomerQuoteObserver.php +++ b/app/code/Magento/Quote/Observer/Backend/CustomerQuoteObserver.php @@ -7,7 +7,7 @@ namespace Magento\Quote\Observer\Backend; use Magento\Store\Model\StoreManagerInterface; use Magento\Customer\Model\Config\Share as ShareConfig; -use Magento\Quote\Model\QuoteRepository; +use Magento\Quote\Api\CartRepositoryInterface; use Magento\Framework\Event\Observer; use Magento\Framework\Event\ObserverInterface; @@ -27,19 +27,19 @@ class CustomerQuoteObserver implements ObserverInterface protected $storeManager; /** - * @var QuoteRepository + * @var \Magento\Quote\Api\CartRepositoryInterface */ protected $quoteRepository; /** * @param StoreManagerInterface $storeManager * @param ShareConfig $config - * @param QuoteRepository $quoteRepository + * @param CartRepositoryInterface $quoteRepository */ public function __construct( StoreManagerInterface $storeManager, ShareConfig $config, - QuoteRepository $quoteRepository + CartRepositoryInterface $quoteRepository ) { $this->storeManager = $storeManager; $this->config = $config; diff --git a/app/code/Magento/Quote/Test/Unit/Model/BillingAddressManagementTest.php b/app/code/Magento/Quote/Test/Unit/Model/BillingAddressManagementTest.php index 8ddc3c5f8b7fbd0d69f65f53280129243219e160..bf9600b344529aff76c7d097c2cda85c8a1efc30 100644 --- a/app/code/Magento/Quote/Test/Unit/Model/BillingAddressManagementTest.php +++ b/app/code/Magento/Quote/Test/Unit/Model/BillingAddressManagementTest.php @@ -43,7 +43,7 @@ class BillingAddressManagementTest extends \PHPUnit_Framework_TestCase protected function setUp() { $this->objectManager = new ObjectManager($this); - $this->quoteRepositoryMock = $this->getMock('\Magento\Quote\Model\QuoteRepository', [], [], '', false); + $this->quoteRepositoryMock = $this->getMock('\Magento\Quote\Api\CartRepositoryInterface'); $this->validatorMock = $this->getMock('\Magento\Quote\Model\QuoteAddressValidator', [], [], '', false); $this->addressRepository = $this->getMock('\Magento\Customer\Api\AddressRepositoryInterface'); $logger = $this->getMock('\Psr\Log\LoggerInterface'); diff --git a/app/code/Magento/Quote/Test/Unit/Model/Cart/CartTotalManagementTest.php b/app/code/Magento/Quote/Test/Unit/Model/Cart/CartTotalManagementTest.php index 949d05f360fde87683b73e2ec86031be2f7793f7..0f2d98bc8d731b88db8092b1956475e1ea5cbb40 100644 --- a/app/code/Magento/Quote/Test/Unit/Model/Cart/CartTotalManagementTest.php +++ b/app/code/Magento/Quote/Test/Unit/Model/Cart/CartTotalManagementTest.php @@ -32,14 +32,14 @@ class CartTotalManagementTest extends \PHPUnit_Framework_TestCase protected $cartTotalMock; /** - * @var \Magento\Quote\Model\Cart\CartTotalManagement + * @var \Magento\Quote\Api\CartTotalManagementInterface */ protected $model; protected function setUp() { $this->objectManager = new ObjectManager($this); - $this->shippingMock = $this->getMock('\Magento\Quote\Api\ShippingMethodManagementInterface', [], [], '', false); + $this->shippingMock = $this->getMock('\Magento\Quote\Model\ShippingMethodManagement', [], [], '', false); $this->paymentMock = $this->getMock('\Magento\Quote\Api\PaymentMethodManagementInterface', [], [], '', false); $this->cartTotalMock = $this->getMock('\Magento\Quote\Api\CartTotalRepositoryInterface', [], [], '', false); $this->model = $this->objectManager->getObject( diff --git a/app/code/Magento/Quote/Test/Unit/Model/Cart/CartTotalRepositoryTest.php b/app/code/Magento/Quote/Test/Unit/Model/Cart/CartTotalRepositoryTest.php index bdc8c37af0cc38941b190b4b730628b8b5aa2c7a..11291ed01b8160328158865194e2acdf2c5f2baf 100644 --- a/app/code/Magento/Quote/Test/Unit/Model/Cart/CartTotalRepositoryTest.php +++ b/app/code/Magento/Quote/Test/Unit/Model/Cart/CartTotalRepositoryTest.php @@ -85,7 +85,7 @@ class CartTotalRepositoryTest extends \PHPUnit_Framework_TestCase '', false ); - $this->quoteRepositoryMock = $this->getMock('Magento\Quote\Model\QuoteRepository', [], [], '', false); + $this->quoteRepositoryMock = $this->getMock('\Magento\Quote\Api\CartRepositoryInterface'); $this->addressMock = $this->getMock( 'Magento\Quote\Model\Quote\Address', ['getData', 'getTotals'], diff --git a/app/code/Magento/Quote/Test/Unit/Model/CouponManagementTest.php b/app/code/Magento/Quote/Test/Unit/Model/CouponManagementTest.php index dc119a34be8a532f02115b22d1482bac427f8b56..dc2a22b3aa15b365f4bd91f4f6c29624f2a81bfa 100644 --- a/app/code/Magento/Quote/Test/Unit/Model/CouponManagementTest.php +++ b/app/code/Magento/Quote/Test/Unit/Model/CouponManagementTest.php @@ -40,7 +40,7 @@ class CouponManagementTest extends \PHPUnit_Framework_TestCase protected function setUp() { - $this->quoteRepositoryMock = $this->getMock('\Magento\Quote\Model\QuoteRepository', [], [], '', false); + $this->quoteRepositoryMock = $this->getMock('\Magento\Quote\Api\CartRepositoryInterface'); $this->storeMock = $this->getMock('\Magento\Store\Model\Store', [], [], '', false); $this->quoteMock = $this->getMock( '\Magento\Quote\Model\Quote', diff --git a/app/code/Magento/Quote/Test/Unit/Model/GuestCart/GuestCartItemRepositoryTest.php b/app/code/Magento/Quote/Test/Unit/Model/GuestCart/GuestCartItemRepositoryTest.php index 9535e3c1c7455e063d9fa7770e48e15616ede6a0..6d8fd124e76aaff5c90c280ebba3ca607bd1cf8f 100644 --- a/app/code/Magento/Quote/Test/Unit/Model/GuestCart/GuestCartItemRepositoryTest.php +++ b/app/code/Magento/Quote/Test/Unit/Model/GuestCart/GuestCartItemRepositoryTest.php @@ -79,7 +79,7 @@ class GuestCartItemRepositoryTest extends \PHPUnit_Framework_TestCase ->method('setQuoteId') ->with($this->cartId); - $this->cartItemRepositoryMock = $this->getMock('\Magento\Quote\Model\Quote\Item\Repository', [], [], '', false); + $this->cartItemRepositoryMock = $this->getMock('\Magento\Quote\Api\CartItemRepositoryInterface'); $this->guestCartItemRepository = $objectManager->getObject( 'Magento\Quote\Model\GuestCart\GuestCartItemRepository', diff --git a/app/code/Magento/Quote/Test/Unit/Model/GuestCart/GuestCartManagementTest.php b/app/code/Magento/Quote/Test/Unit/Model/GuestCart/GuestCartManagementTest.php index 63d84bec059de46d29a4662cd3c7fec5cc82229c..bab6ee59683e4e07d3ab6207e384bf89b9787c31 100644 --- a/app/code/Magento/Quote/Test/Unit/Model/GuestCart/GuestCartManagementTest.php +++ b/app/code/Magento/Quote/Test/Unit/Model/GuestCart/GuestCartManagementTest.php @@ -72,13 +72,7 @@ class GuestCartManagementTest extends \PHPUnit_Framework_TestCase false ); - $this->cartRepositoryMock = $this->getMock( - 'Magento\Quote\Api\CartRepositoryInterface', - ['get', 'getList'], - [], - '', - false - ); + $this->cartRepositoryMock = $this->getMock('Magento\Quote\Api\CartRepositoryInterface'); $this->quoteMock = $this->getMockForAbstractClass( 'Magento\Quote\Api\Data\CartInterface', diff --git a/app/code/Magento/Quote/Test/Unit/Model/GuestCart/GuestShippingAddressManagementTest.php b/app/code/Magento/Quote/Test/Unit/Model/GuestCart/GuestShippingAddressManagementTest.php index 67e35a93bf73c07409993caf9926d5fc77232301..f32a480cd883544a44a58cdb2bb2d2daf392e6c2 100644 --- a/app/code/Magento/Quote/Test/Unit/Model/GuestCart/GuestShippingAddressManagementTest.php +++ b/app/code/Magento/Quote/Test/Unit/Model/GuestCart/GuestShippingAddressManagementTest.php @@ -9,7 +9,7 @@ namespace Magento\Quote\Test\Unit\Model\GuestCart; class GuestShippingAddressManagementTest extends \PHPUnit_Framework_TestCase { /** - * @var \Magento\Quote\Api\GuestShippingAddressManagementInterface + * @var \Magento\Quote\Model\GuestCart\GuestShippingAddressManagementInterface */ protected $model; @@ -48,7 +48,7 @@ class GuestShippingAddressManagementTest extends \PHPUnit_Framework_TestCase $objectManager = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this); $this->shippingAddressManagementMock = $this->getMock( - 'Magento\Quote\Api\ShippingAddressManagementInterface', + 'Magento\Quote\Model\ShippingAddressManagementInterface', [], [], '', diff --git a/app/code/Magento/Quote/Test/Unit/Model/GuestCart/GuestShippingMethodManagementTest.php b/app/code/Magento/Quote/Test/Unit/Model/GuestCart/GuestShippingMethodManagementTest.php index c91510a165fac2c1ecbacf3400cfba4b6f6d5be1..8b691214af989639cdd55207887777a6331b4ab4 100644 --- a/app/code/Magento/Quote/Test/Unit/Model/GuestCart/GuestShippingMethodManagementTest.php +++ b/app/code/Magento/Quote/Test/Unit/Model/GuestCart/GuestShippingMethodManagementTest.php @@ -44,8 +44,7 @@ class GuestShippingMethodManagementTest extends \PHPUnit_Framework_TestCase $objectManager = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this); $this->shippingMethodManagementMock = - $this->getMockBuilder('Magento\Quote\Api\ShippingMethodManagementInterface') - ->getMockForAbstractClass(); + $this->getMock('Magento\Quote\Model\ShippingMethodManagement', [], [], '', false); $this->maskedCartId = 'f216207248d65c789b17be8545e0aa73'; $this->cartId = 867; diff --git a/app/code/Magento/Quote/Test/Unit/Model/Quote/Item/RepositoryTest.php b/app/code/Magento/Quote/Test/Unit/Model/Quote/Item/RepositoryTest.php index e4a2901609c6eae9df103748002f446e176c8d36..3a957b4936bc390a6684258ed0015e12771b6300 100644 --- a/app/code/Magento/Quote/Test/Unit/Model/Quote/Item/RepositoryTest.php +++ b/app/code/Magento/Quote/Test/Unit/Model/Quote/Item/RepositoryTest.php @@ -7,12 +7,10 @@ namespace Magento\Quote\Test\Unit\Model\Quote\Item; -use Magento\Quote\Model\Quote\Item\Repository; - class RepositoryTest extends \PHPUnit_Framework_TestCase { /** - * @var Repository + * @var \Magento\Quote\Api\CartItemRepositoryInterface */ protected $repository; @@ -59,10 +57,8 @@ class RepositoryTest extends \PHPUnit_Framework_TestCase */ protected function setUp() { - $this->quoteRepositoryMock = - $this->getMock('\Magento\Quote\Model\QuoteRepository', [], [], '', false); - $this->productRepositoryMock = - $this->getMock('Magento\Catalog\Api\ProductRepositoryInterface', [], [], '', false); + $this->quoteRepositoryMock = $this->getMock('\Magento\Quote\Api\CartRepositoryInterface'); + $this->productRepositoryMock = $this->getMock('Magento\Catalog\Api\ProductRepositoryInterface'); $this->itemDataFactoryMock = $this->getMock('Magento\Quote\Api\Data\CartItemInterfaceFactory', ['create'], [], '', false); $this->dataMock = $this->getMock('Magento\Quote\Model\Quote\Item', [], [], '', false); @@ -79,7 +75,7 @@ class RepositoryTest extends \PHPUnit_Framework_TestCase false ); - $this->repository = new Repository( + $this->repository = new \Magento\Quote\Model\Quote\Item\Repository( $this->quoteRepositoryMock, $this->productRepositoryMock, $this->itemDataFactoryMock, @@ -386,7 +382,7 @@ class RepositoryTest extends \PHPUnit_Framework_TestCase $itemId = 5; $buyRequest = $this->getMock('Magento\Framework\DataObject', [], [], '', false); $cartItemProcessorMock = $this->getMock('\Magento\Quote\Model\Quote\Item\CartItemProcessorInterface'); - $this->repository = new Repository( + $this->repository = new \Magento\Quote\Model\Quote\Item\Repository( $this->quoteRepositoryMock, $this->productRepositoryMock, $this->itemDataFactoryMock, diff --git a/app/code/Magento/Quote/Test/Unit/Model/QuoteManagementTest.php b/app/code/Magento/Quote/Test/Unit/Model/QuoteManagementTest.php index b316ad767ad7dd8de65cc94513a784c5f899d12b..01ea8e48b752c776c090cfd7778f96304071be3f 100644 --- a/app/code/Magento/Quote/Test/Unit/Model/QuoteManagementTest.php +++ b/app/code/Magento/Quote/Test/Unit/Model/QuoteManagementTest.php @@ -6,7 +6,6 @@ namespace Magento\Quote\Test\Unit\Model; -use \Magento\Quote\Model\QuoteManagement; use \Magento\Quote\Model\CustomerManagement; use \Magento\Framework\Exception\NoSuchEntityException; @@ -18,7 +17,7 @@ use \Magento\Framework\Exception\NoSuchEntityException; class QuoteManagementTest extends \PHPUnit_Framework_TestCase { /** - * @var QuoteManagement + * @var \Magento\Quote\Model\QuoteManagement */ protected $model; @@ -63,7 +62,7 @@ class QuoteManagementTest extends \PHPUnit_Framework_TestCase protected $orderManagement; /** - * @var \Magento\Quote\Model\QuoteRepository|\PHPUnit_Framework_MockObject_MockObject + * @var \Magento\Quote\Api\CartRepositoryInterface|\PHPUnit_Framework_MockObject_MockObject */ protected $quoteRepositoryMock; @@ -117,6 +116,11 @@ class QuoteManagementTest extends \PHPUnit_Framework_TestCase */ protected $quoteMock; + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $quoteFactoryMock; + /** * @SuppressWarnings(PHPMD.ExcessiveMethodLength) */ @@ -157,7 +161,7 @@ class QuoteManagementTest extends \PHPUnit_Framework_TestCase $this->quoteItemToOrderItem = $this->getMock('Magento\Quote\Model\Quote\Item\ToOrderItem', [], [], '', false); $this->orderManagement = $this->getMock('Magento\Sales\Api\OrderManagementInterface', [], [], '', false); $this->customerManagement = $this->getMock('Magento\Quote\Model\CustomerManagement', [], [], '', false); - $this->quoteRepositoryMock = $this->getMock('\Magento\Quote\Model\QuoteRepository', [], [], '', false); + $this->quoteRepositoryMock = $this->getMock('\Magento\Quote\Api\CartRepositoryInterface'); $this->userContextMock = $this->getMock('\Magento\Authorization\Model\UserContextInterface', [], [], '', false); $this->customerRepositoryMock = $this->getMock( @@ -220,8 +224,10 @@ class QuoteManagementTest extends \PHPUnit_Framework_TestCase false ); + $this->quoteFactoryMock = $this->getMock('\Magento\Quote\Model\QuoteFactory', ['create'], [], '', false); + $this->model = $objectManager->getObject( - 'Magento\Quote\Model\QuoteManagement', + '\Magento\Quote\Model\QuoteManagement', [ 'eventManager' => $this->eventManager, 'quoteValidator' => $this->quoteValidator, @@ -241,6 +247,7 @@ class QuoteManagementTest extends \PHPUnit_Framework_TestCase 'checkoutSession' => $this->checkoutSessionMock, 'customerSession' => $this->customerSessionMock, 'accountManagement' => $this->accountManagementMock, + 'quoteFactory' => $this->quoteFactoryMock ] ); } @@ -252,7 +259,7 @@ class QuoteManagementTest extends \PHPUnit_Framework_TestCase $quoteMock = $this->getMock('\Magento\Quote\Model\Quote', [], [], '', false); - $this->quoteRepositoryMock->expects($this->once())->method('create')->willReturn($quoteMock); + $this->quoteFactoryMock->expects($this->once())->method('create')->willReturn($quoteMock); $quoteMock->expects($this->any())->method('setStoreId')->with($storeId); $this->quoteRepositoryMock->expects($this->once())->method('save')->with($quoteMock); @@ -278,7 +285,7 @@ class QuoteManagementTest extends \PHPUnit_Framework_TestCase ->with($userId) ->willThrowException(new NoSuchEntityException()); - $this->quoteRepositoryMock->expects($this->once())->method('create')->willReturn($quoteMock); + $this->quoteFactoryMock->expects($this->once())->method('create')->willReturn($quoteMock); $quoteMock->expects($this->any())->method('setStoreId')->with($storeId); $quoteMock->expects($this->any())->method('setCustomerIsGuest')->with(0); @@ -303,7 +310,7 @@ class QuoteManagementTest extends \PHPUnit_Framework_TestCase ->method('getActiveForCustomer') ->with($userId)->willReturn($quoteMock); - $this->quoteRepositoryMock->expects($this->never())->method('create')->willReturn($quoteMock); + $this->quoteFactoryMock->expects($this->never())->method('create')->willReturn($quoteMock); $this->quoteRepositoryMock->expects($this->once())->method('save')->with($quoteMock); $this->storeManagerMock->expects($this->once())->method('getStore')->willReturnSelf(); @@ -686,6 +693,7 @@ class QuoteManagementTest extends \PHPUnit_Framework_TestCase 'checkoutSession' => $this->checkoutSessionMock, 'customerSession' => $this->customerSessionMock, 'accountManagement' => $this->accountManagementMock, + 'quoteFactory' => $this->quoteFactoryMock ] ); $orderMock = $this->getMock( @@ -742,6 +750,7 @@ class QuoteManagementTest extends \PHPUnit_Framework_TestCase 'checkoutSession' => $this->checkoutSessionMock, 'customerSession' => $this->customerSessionMock, 'accountManagement' => $this->accountManagementMock, + 'quoteFactory' => $this->quoteFactoryMock ] ); $orderMock = $this->getMock( diff --git a/app/code/Magento/Quote/Test/Unit/Model/QuoteRepository/Plugin/AuthorizationTest.php b/app/code/Magento/Quote/Test/Unit/Model/QuoteRepository/Plugin/AuthorizationTest.php index da8e89cb3435ed016de3acc05432047af14f8394..24c72dc676b437f4026ea0f6a87a89da4a64b0d4 100644 --- a/app/code/Magento/Quote/Test/Unit/Model/QuoteRepository/Plugin/AuthorizationTest.php +++ b/app/code/Magento/Quote/Test/Unit/Model/QuoteRepository/Plugin/AuthorizationTest.php @@ -37,7 +37,7 @@ class AuthorizationTest extends \PHPUnit_Framework_TestCase { // Quote without customer ID $quoteMock = $this->getMock('Magento\Quote\Model\Quote', [], [], '', false); - $quoteRepositoryMock = $this->getMock('Magento\Quote\Model\QuoteRepository', [], [], '', false); + $quoteRepositoryMock = $this->getMock('\Magento\Quote\Api\CartRepositoryInterface'); $this->userContextMock->expects($this->any()) ->method('getUserType') ->willReturn(UserContextInterface::USER_TYPE_CUSTOMER); @@ -48,7 +48,7 @@ class AuthorizationTest extends \PHPUnit_Framework_TestCase public function testAfterGetActiveReturnsQuoteIfQuoteIsAllowedForCurrentUserContext() { $quoteMock = $this->getMock('Magento\Quote\Model\Quote', [], [], '', false); - $quoteRepositoryMock = $this->getMock('Magento\Quote\Model\QuoteRepository', [], [], '', false); + $quoteRepositoryMock = $this->getMock('\Magento\Quote\Api\CartRepositoryInterface'); $this->userContextMock->expects($this->any()) ->method('getUserType') ->willReturn(UserContextInterface::USER_TYPE_GUEST); @@ -63,7 +63,7 @@ class AuthorizationTest extends \PHPUnit_Framework_TestCase { // Quote without customer ID $quoteMock = $this->getMock('Magento\Quote\Model\Quote', [], [], '', false); - $quoteRepositoryMock = $this->getMock('Magento\Quote\Model\QuoteRepository', [], [], '', false); + $quoteRepositoryMock = $this->getMock('\Magento\Quote\Api\CartRepositoryInterface'); $this->userContextMock->expects($this->any())->method('getUserType')->willReturn( UserContextInterface::USER_TYPE_CUSTOMER ); @@ -74,7 +74,7 @@ class AuthorizationTest extends \PHPUnit_Framework_TestCase public function testAfterGetActiveForCustomerReturnsQuoteIfQuoteIsAllowedForCurrentUserContext() { $quoteMock = $this->getMock('Magento\Quote\Model\Quote', [], [], '', false); - $quoteRepositoryMock = $this->getMock('Magento\Quote\Model\QuoteRepository', [], [], '', false); + $quoteRepositoryMock = $this->getMock('\Magento\Quote\Api\CartRepositoryInterface'); $this->userContextMock->expects($this->any()) ->method('getUserType') ->willReturn(UserContextInterface::USER_TYPE_GUEST); diff --git a/app/code/Magento/Quote/Test/Unit/Model/QuoteRepositoryTest.php b/app/code/Magento/Quote/Test/Unit/Model/QuoteRepositoryTest.php index 3213329b5e1ec812d63c01ba85645909131d998f..4b4cd113eb70b6fab4b871e674d49e5fa32839be 100644 --- a/app/code/Magento/Quote/Test/Unit/Model/QuoteRepositoryTest.php +++ b/app/code/Magento/Quote/Test/Unit/Model/QuoteRepositoryTest.php @@ -7,7 +7,7 @@ namespace Magento\Quote\Test\Unit\Model; -use \Magento\Quote\Model\QuoteRepository; +use Magento\Quote\Api\CartRepositoryInterface; use Magento\Framework\Api\SortOrder; use Magento\Framework\Api\ExtensionAttribute\JoinProcessorInterface; @@ -15,7 +15,7 @@ use Magento\Framework\Api\ExtensionAttribute\JoinProcessorInterface; class QuoteRepositoryTest extends \PHPUnit_Framework_TestCase { /** - * @var QuoteRepository + * @var \Magento\Quote\Api\CartRepositoryInterface */ protected $model; @@ -109,21 +109,6 @@ class QuoteRepositoryTest extends \PHPUnit_Framework_TestCase ); } - public function testCreate() - { - $this->quoteFactoryMock->expects($this->once()) - ->method('create') - ->with([1, 2, 3]) - ->willReturn($this->quoteMock); - $this->storeManagerMock->expects($this->never())->method('getStore'); - $this->storeMock->expects($this->never())->method('getId'); - $this->quoteMock->expects($this->never())->method('setSharedStoreIds'); - $this->quoteMock->expects($this->never())->method('load'); - $this->quoteMock->expects($this->never())->method('getId'); - - $this->assertEquals($this->quoteMock, $this->model->create([1, 2, 3])); - } - /** * @expectedException \Magento\Framework\Exception\NoSuchEntityException * @expectedExceptionMessage No such entity with cartId = 14 diff --git a/app/code/Magento/Quote/Test/Unit/Model/ShippingAddressManagementTest.php b/app/code/Magento/Quote/Test/Unit/Model/ShippingAddressManagementTest.php index a62cb7f5598eb887ebe1573e16ab17be19af3571..55c9b862a60cbee55220ac6e3b8835454297cf53 100644 --- a/app/code/Magento/Quote/Test/Unit/Model/ShippingAddressManagementTest.php +++ b/app/code/Magento/Quote/Test/Unit/Model/ShippingAddressManagementTest.php @@ -50,7 +50,7 @@ class ShippingAddressManagementTest extends \PHPUnit_Framework_TestCase protected function setUp() { $this->objectManager = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this); - $this->quoteRepositoryMock = $this->getMock('\Magento\Quote\Model\QuoteRepository', [], [], '', false); + $this->quoteRepositoryMock = $this->getMock('\Magento\Quote\Api\CartRepositoryInterface'); $this->scopeConfigMock = $this->getMock('Magento\Framework\App\Config\ScopeConfigInterface'); $this->quoteAddressMock = $this->getMock( diff --git a/app/code/Magento/Quote/Test/Unit/Model/ShippingMethodManagementTest.php b/app/code/Magento/Quote/Test/Unit/Model/ShippingMethodManagementTest.php index fd760977a6c89f57308b2142d4acd827af06bfa4..64241f12923e6911c328a99bdadfdf2e4d9e8c6f 100644 --- a/app/code/Magento/Quote/Test/Unit/Model/ShippingMethodManagementTest.php +++ b/app/code/Magento/Quote/Test/Unit/Model/ShippingMethodManagementTest.php @@ -57,7 +57,7 @@ class ShippingMethodManagementTest extends \PHPUnit_Framework_TestCase protected function setUp() { $this->objectManager = new ObjectManager($this); - $this->quoteRepositoryMock = $this->getMock('\Magento\Quote\Model\QuoteRepository', [], [], '', false); + $this->quoteRepositoryMock = $this->getMock('\Magento\Quote\Api\CartRepositoryInterface'); $this->methodDataFactoryMock = $this->getMock( '\Magento\Quote\Api\Data\ShippingMethodInterfaceFactory', [ diff --git a/app/code/Magento/Quote/Test/Unit/Observer/Backend/CustomerQuoteObserverTest.php b/app/code/Magento/Quote/Test/Unit/Observer/Backend/CustomerQuoteObserverTest.php index 27470a6fad0ab6ed469995abcda0b6016228bdda..64813788601e5d8d4e3fe26e69d2a29fe82872a0 100644 --- a/app/code/Magento/Quote/Test/Unit/Observer/Backend/CustomerQuoteObserverTest.php +++ b/app/code/Magento/Quote/Test/Unit/Observer/Backend/CustomerQuoteObserverTest.php @@ -26,7 +26,7 @@ class CustomerQuoteObserverTest extends \PHPUnit_Framework_TestCase protected $configMock; /** - * @var \PHPUnit_Framework_MockObject_MockObject|\\Magento\Quote\Model\QuoteRepository + * @var \PHPUnit_Framework_MockObject_MockObject|\Magento\Quote\Api\CartRepositoryInterface */ protected $quoteRepositoryMock; @@ -48,10 +48,7 @@ class CustomerQuoteObserverTest extends \PHPUnit_Framework_TestCase $this->configMock = $this->getMockBuilder('Magento\Customer\Model\Config\Share') ->disableOriginalConstructor() ->getMock(); - $this->quoteRepositoryMock = $this->getMockBuilder('\Magento\Quote\Model\QuoteRepository') - ->disableOriginalConstructor() - ->setMethods(['getForCustomer', 'save']) - ->getMock(); + $this->quoteRepositoryMock = $this->getMock('\Magento\Quote\Api\CartRepositoryInterface'); $this->observerMock = $this->getMockBuilder('Magento\Framework\Event\Observer') ->disableOriginalConstructor() ->getMock(); diff --git a/app/code/Magento/Quote/etc/di.xml b/app/code/Magento/Quote/etc/di.xml index 17cadb026c9cbd4692c9fa2ae9ab1807c960d37d..035be5e144cf59a6625434ac34b18d6d77ff605d 100644 --- a/app/code/Magento/Quote/etc/di.xml +++ b/app/code/Magento/Quote/etc/di.xml @@ -9,7 +9,7 @@ <preference for="Magento\Quote\Api\ShippingMethodManagementInterface" type="Magento\Quote\Model\ShippingMethodManagement" /> <preference for="Magento\Quote\Api\Data\ShippingMethodInterface" type="Magento\Quote\Model\Cart\ShippingMethod" /> <preference for="Magento\Quote\Api\BillingAddressManagementInterface" type="Magento\Quote\Model\BillingAddressManagement" /> - <preference for="Magento\Quote\Api\ShippingAddressManagementInterface" type="Magento\Quote\Model\ShippingAddressManagement" /> + <preference for="Magento\Quote\Model\ShippingAddressManagementInterface" type="Magento\Quote\Model\ShippingAddressManagement" /> <preference for="Magento\Quote\Api\Data\AddressInterface" type="Magento\Quote\Model\Quote\Address" /> <preference for="Magento\Quote\Api\Data\CartItemInterface" type="Magento\Quote\Model\Quote\Item" /> <preference for="Magento\Quote\Api\Data\CartInterface" type="Magento\Quote\Model\Quote" /> @@ -33,7 +33,7 @@ <preference for="Magento\Quote\Api\GuestCouponManagementInterface" type="Magento\Quote\Model\GuestCart\GuestCouponManagement" /> <preference for="Magento\Quote\Api\GuestPaymentMethodManagementInterface" type="Magento\Quote\Model\GuestCart\GuestPaymentMethodManagement" /> <preference for="Magento\Quote\Api\GuestCartTotalRepositoryInterface" type="Magento\Quote\Model\GuestCart\GuestCartTotalRepository" /> - <preference for="Magento\Quote\Api\GuestShippingAddressManagementInterface" type="Magento\Quote\Model\GuestCart\GuestShippingAddressManagement" /> + <preference for="Magento\Quote\Model\GuestCart\GuestShippingAddressManagementInterface" type="Magento\Quote\Model\GuestCart\GuestShippingAddressManagement" /> <preference for="Magento\Quote\Api\GuestShippingMethodManagementInterface" type="Magento\Quote\Model\GuestCart\GuestShippingMethodManagement" /> <preference for="Magento\Quote\Api\GuestBillingAddressManagementInterface" type="Magento\Quote\Model\GuestCart\GuestBillingAddressManagement" /> <preference for="Magento\Quote\Api\GuestCartTotalManagementInterface" type="\Magento\Quote\Model\GuestCart\GuestCartTotalManagement" /> @@ -85,4 +85,6 @@ <preference for="Magento\Quote\Api\Data\TotalsAdditionalDataInterface" type="Magento\Quote\Model\Cart\TotalsAdditionalData" /> <preference for="Magento\Quote\Model\Quote\Address\CustomAttributeListInterface" type="Magento\Quote\Model\Quote\Address\CustomAttributeList" /> <preference for="Magento\Quote\Model\Quote\Address\FreeShippingInterface" type="Magento\Quote\Model\Quote\Address\FreeShipping" /> + <preference for="Magento\Quote\Model\GuestCart\GuestShippingMethodManagementInterface" type="Magento\Quote\Model\GuestCart\GuestShippingMethodManagement" /> + <preference for="Magento\Quote\Model\ShippingMethodManagementInterface" type="Magento\Quote\Model\ShippingMethodManagement" /> </config> diff --git a/app/code/Magento/Quote/etc/webapi.xml b/app/code/Magento/Quote/etc/webapi.xml index 51edb6dc074a6afe71303e627128ba2470302f1d..49bb504c59928bf2e62e9b66f33a35e464f80b87 100644 --- a/app/code/Magento/Quote/etc/webapi.xml +++ b/app/code/Magento/Quote/etc/webapi.xml @@ -98,18 +98,6 @@ </route> <!-- Managing Cart Shipment Method --> - <route url="/V1/carts/:cartId/selected-shipping-method" method="PUT"> - <service class="Magento\Quote\Api\ShippingMethodManagementInterface" method="set"/> - <resources> - <resource ref="Magento_Cart::manage" /> - </resources> - </route> - <route url="/V1/carts/:cartId/selected-shipping-method" method="GET"> - <service class="Magento\Quote\Api\ShippingMethodManagementInterface" method="get"/> - <resources> - <resource ref="anonymous" /> - </resources> - </route> <route url="/V1/carts/:cartId/shipping-methods" method="GET"> <service class="Magento\Quote\Api\ShippingMethodManagementInterface" method="getList"/> <resources> @@ -118,24 +106,6 @@ </route> <!-- Managing My Cart Shipment Method --> - <route url="/V1/carts/mine/selected-shipping-method" method="PUT"> - <service class="Magento\Quote\Api\ShippingMethodManagementInterface" method="set"/> - <resources> - <resource ref="self" /> - </resources> - <data> - <parameter name="cartId" force="true">%cart_id%</parameter> - </data> - </route> - <route url="/V1/carts/mine/selected-shipping-method" method="GET"> - <service class="Magento\Quote\Api\ShippingMethodManagementInterface" method="get"/> - <resources> - <resource ref="self" /> - </resources> - <data> - <parameter name="cartId" force="true">%cart_id%</parameter> - </data> - </route> <route url="/V1/carts/mine/shipping-methods" method="GET"> <service class="Magento\Quote\Api\ShippingMethodManagementInterface" method="getList"/> <resources> @@ -165,18 +135,6 @@ </route> <!-- Managing Guest Cart Shipment Method --> - <route url="/V1/guest-carts/:cartId/selected-shipping-method" method="PUT"> - <service class="Magento\Quote\Api\GuestShippingMethodManagementInterface" method="set"/> - <resources> - <resource ref="anonymous" /> - </resources> - </route> - <route url="/V1/guest-carts/:cartId/selected-shipping-method" method="GET"> - <service class="Magento\Quote\Api\GuestShippingMethodManagementInterface" method="get"/> - <resources> - <resource ref="anonymous" /> - </resources> - </route> <route url="/V1/guest-carts/:cartId/shipping-methods" method="GET"> <service class="Magento\Quote\Api\GuestShippingMethodManagementInterface" method="getList"/> <resources> @@ -197,13 +155,13 @@ <resource ref="Magento_Cart::manage" /> </resources> </route> - <route url="/V1/carts/items" method="POST"> + <route url="/V1/carts/:cartId/items" method="POST"> <service class="Magento\Quote\Api\CartItemRepositoryInterface" method="save"/> <resources> <resource ref="Magento_Catalog::products" /> </resources> </route> - <route url="/V1/carts/items/:itemId" method="PUT"> + <route url="/V1/carts/:cartId/items/:itemId" method="PUT"> <service class="Magento\Quote\Api\CartItemRepositoryInterface" method="save"/> <resources> <resource ref="Magento_Cart::manage" /> @@ -223,13 +181,13 @@ <resource ref="anonymous" /> </resources> </route> - <route url="/V1/guest-carts/items" method="POST"> + <route url="/V1/guest-carts/:cartId/items" method="POST"> <service class="Magento\Quote\Api\GuestCartItemRepositoryInterface" method="save"/> <resources> <resource ref="anonymous" /> </resources> </route> - <route url="/V1/guest-carts/items/:itemId" method="PUT"> + <route url="/V1/guest-carts/:cartId/items/:itemId" method="PUT"> <service class="Magento\Quote\Api\GuestCartItemRepositoryInterface" method="save"/> <resources> <resource ref="anonymous" /> @@ -466,54 +424,6 @@ </data> </route> - <!-- Managing Cart Shipping address --> - <route url="/V1/carts/:cartId/shipping-address" method="GET"> - <service class="Magento\Quote\Api\ShippingAddressManagementInterface" method="get"/> - <resources> - <resource ref="Magento_Cart::manage" /> - </resources> - </route> - <route url="/V1/carts/:cartId/shipping-address" method="POST"> - <service class="Magento\Quote\Api\ShippingAddressManagementInterface" method="assign"/> - <resources> - <resource ref="Magento_Cart::manage" /> - </resources> - </route> - - <!-- Managing Guest Cart Shipping address --> - <route url="/V1/guest-carts/:cartId/shipping-address" method="GET"> - <service class="Magento\Quote\Api\GuestShippingAddressManagementInterface" method="get"/> - <resources> - <resource ref="anonymous" /> - </resources> - </route> - <route url="/V1/guest-carts/:cartId/shipping-address" method="POST"> - <service class="Magento\Quote\Api\GuestShippingAddressManagementInterface" method="assign"/> - <resources> - <resource ref="anonymous" /> - </resources> - </route> - - <!-- Managing My Cart Shipping address --> - <route url="/V1/carts/mine/shipping-address" method="GET"> - <service class="Magento\Quote\Api\ShippingAddressManagementInterface" method="get"/> - <resources> - <resource ref="self" /> - </resources> - <data> - <parameter name="cartId" force="true">%cart_id%</parameter> - </data> - </route> - <route url="/V1/carts/mine/shipping-address" method="POST"> - <service class="Magento\Quote\Api\ShippingAddressManagementInterface" method="assign"/> - <resources> - <resource ref="self" /> - </resources> - <data> - <parameter name="cartId" force="true">%cart_id%</parameter> - </data> - </route> - <!-- Managing Cart Order --> <route url="/V1/carts/:cartId/order" method="PUT"> <service class="Magento\Quote\Api\CartManagementInterface" method="placeOrder"/> diff --git a/app/code/Magento/Reports/Model/ResourceModel/Customer/Collection.php b/app/code/Magento/Reports/Model/ResourceModel/Customer/Collection.php index 1f7fe62304519f215152ce6e5932b86ef27d9bbb..4a81d3d4c86ab03f9dad735cc511a67da8c5930e 100644 --- a/app/code/Magento/Reports/Model/ResourceModel/Customer/Collection.php +++ b/app/code/Magento/Reports/Model/ResourceModel/Customer/Collection.php @@ -57,7 +57,7 @@ class Collection extends \Magento\Customer\Model\ResourceModel\Customer\Collecti protected $_orderEntityField; /** - * @var \Magento\Quote\Model\QuoteRepository + * @var \Magento\Quote\Api\CartRepositoryInterface */ protected $quoteRepository; @@ -83,7 +83,7 @@ class Collection extends \Magento\Customer\Model\ResourceModel\Customer\Collecti * @param \Magento\Framework\Validator\UniversalFactory $universalFactory * @param \Magento\Framework\Model\ResourceModel\Db\VersionControl\Snapshot $entitySnapshot * @param \Magento\Framework\DataObject\Copy\Config $fieldsetConfig - * @param \Magento\Quote\Model\QuoteRepository $quoteRepository + * @param \Magento\Quote\Api\CartRepositoryInterface $quoteRepository * @param \Magento\Quote\Model\ResourceModel\Quote\Item\CollectionFactory $quoteItemFactory * @param \Magento\Sales\Model\ResourceModel\Order\Collection $orderResource * @param mixed $connection @@ -103,7 +103,7 @@ class Collection extends \Magento\Customer\Model\ResourceModel\Customer\Collecti \Magento\Framework\Validator\UniversalFactory $universalFactory, \Magento\Framework\Model\ResourceModel\Db\VersionControl\Snapshot $entitySnapshot, \Magento\Framework\DataObject\Copy\Config $fieldsetConfig, - \Magento\Quote\Model\QuoteRepository $quoteRepository, + \Magento\Quote\Api\CartRepositoryInterface $quoteRepository, \Magento\Quote\Model\ResourceModel\Quote\Item\CollectionFactory $quoteItemFactory, \Magento\Sales\Model\ResourceModel\Order\Collection $orderResource, \Magento\Framework\DB\Adapter\AdapterInterface $connection = null, diff --git a/app/code/Magento/Review/Block/Form.php b/app/code/Magento/Review/Block/Form.php index 2bcc859bdd4f7f557c630d186297a5bdf8a2f185..8efe29b58e719a8c421ccd2e09bd7b9c96565d13 100644 --- a/app/code/Magento/Review/Block/Form.php +++ b/app/code/Magento/Review/Block/Form.php @@ -158,7 +158,13 @@ class Form extends \Magento\Framework\View\Element\Template */ public function getAction() { - return $this->getUrl('review/product/post', ['id' => $this->getProductId()]); + return $this->getUrl( + 'review/product/post', + [ + '_secure' => $this->getRequest()->isSecure(), + 'id' => $this->getProductId(), + ] + ); } /** diff --git a/app/code/Magento/Review/Block/Product/Review.php b/app/code/Magento/Review/Block/Product/Review.php index 02764dc5123f1f59535e6865bb9024a361f9d635..bae4bd8dc5db56001f9e808f34b0fe5533ba7bbc 100644 --- a/app/code/Magento/Review/Block/Product/Review.php +++ b/app/code/Magento/Review/Block/Product/Review.php @@ -66,7 +66,13 @@ class Review extends Template implements IdentityInterface */ public function getProductReviewUrl() { - return $this->getUrl('review/product/listAjax', ['id' => $this->getProductId()]); + return $this->getUrl( + 'review/product/listAjax', + [ + '_secure' => $this->getRequest()->isSecure(), + 'id' => $this->getProductId(), + ] + ); } /** diff --git a/app/code/Magento/Review/Test/Unit/Block/FormTest.php b/app/code/Magento/Review/Test/Unit/Block/FormTest.php index 03f004f470c5727ad38c252c7503bd00dfca163e..b237ddc28be2ec8e4316e7bb988d4cce24f1218a 100644 --- a/app/code/Magento/Review/Test/Unit/Block/FormTest.php +++ b/app/code/Magento/Review/Test/Unit/Block/FormTest.php @@ -34,6 +34,9 @@ class FormTest extends \PHPUnit_Framework_TestCase /** @var \Magento\Store\Model\StoreManagerInterface|\PHPUnit_Framework_MockObject_MockObject */ protected $storeManager; + /** @var \Magento\Framework\UrlInterface|PHPUnit_Framework_MockObject_MockObject */ + protected $urlBuilder; + protected function setUp() { $this->storeManager = $this->getMock('\Magento\Store\Model\StoreManagerInterface'); @@ -46,6 +49,7 @@ class FormTest extends \PHPUnit_Framework_TestCase ->method('getIsGuestAllowToWrite') ->willReturn(true); + $this->urlBuilder = $this->getMockBuilder('Magento\Framework\UrlInterface')->getMockForAbstractClass(); $this->context = $this->getMock('Magento\Framework\View\Element\Template\Context', [], [], '', false); $this->context->expects( $this->any() @@ -57,6 +61,7 @@ class FormTest extends \PHPUnit_Framework_TestCase $this->context->expects($this->any()) ->method('getRequest') ->willReturn($this->requestMock); + $this->context->expects($this->any())->method('getUrlBuilder')->willReturn($this->urlBuilder); $this->productRepository = $this->getMock('\Magento\Catalog\Api\ProductRepositoryInterface'); $this->objectManagerHelper = new ObjectManagerHelper($this); @@ -96,4 +101,35 @@ class FormTest extends \PHPUnit_Framework_TestCase $this->assertSame($productMock, $this->object->getProductInfo()); } + + /** + * @param bool $isSecure + * @param string $actionUrl + * @param int $productId + * @dataProvider getActionDataProvider + */ + public function testGetAction($isSecure, $actionUrl, $productId) + { + $this->urlBuilder->expects($this->any()) + ->method('getUrl') + ->with('review/product/post', ['_secure' => $isSecure, 'id' => $productId]) + ->willReturn($actionUrl . '/id/' . $productId); + $this->requestMock->expects($this->any()) + ->method('getParam') + ->with('id', false) + ->willReturn($productId); + $this->requestMock->expects($this->any()) + ->method('isSecure') + ->willReturn($isSecure); + + $this->assertEquals($actionUrl . '/id/' . $productId, $this->object->getAction()); + } + + public function getActionDataProvider() + { + return [ + [false, 'http://localhost/review/product/post', 3], + [true, 'https://localhost/review/product/post' ,3], + ]; + } } diff --git a/app/code/Magento/Review/Test/Unit/Block/Product/ReviewTest.php b/app/code/Magento/Review/Test/Unit/Block/Product/ReviewTest.php index 0bc6dd49473e2f59ec96f7313e98a4bdc1f32963..2ed841081169cfda04fbeb58a7f2f4e443bb7b26 100644 --- a/app/code/Magento/Review/Test/Unit/Block/Product/ReviewTest.php +++ b/app/code/Magento/Review/Test/Unit/Block/Product/ReviewTest.php @@ -58,6 +58,15 @@ class ReviewTest extends \PHPUnit_Framework_TestCase */ private $store; + /** @var \Magento\Framework\View\Element\Template\Context|\PHPUnit_Framework_MockObject_MockObject */ + protected $context; + + /** @var \Magento\Framework\UrlInterface|PHPUnit_Framework_MockObject_MockObject */ + protected $urlBuilder; + + /** @var \Magento\Framework\App\RequestInterface|\PHPUnit_Framework_MockObject_MockObject */ + protected $requestMock; + protected function setUp() { $this->initContextMock(); @@ -66,7 +75,7 @@ class ReviewTest extends \PHPUnit_Framework_TestCase $helper = new ObjectManager($this); $this->block = $helper->getObject(ReviewBlock::class, [ - 'storeManager' => $this->storeManager, + 'context' => $this->context, 'registry' => $this->registry, 'collectionFactory' => $this->collectionFactory, ]); @@ -124,7 +133,7 @@ class ReviewTest extends \PHPUnit_Framework_TestCase ->setMethods(['registry']) ->getMock(); - $this->registry->expects(static::once()) + $this->registry->expects($this->any()) ->method('registry') ->with('product') ->willReturn($this->product); @@ -159,5 +168,44 @@ class ReviewTest extends \PHPUnit_Framework_TestCase $this->storeManager->expects(static::any()) ->method('getStore') ->willReturn($this->store); + $this->urlBuilder = $this->getMockBuilder('Magento\Framework\UrlInterface')->getMockForAbstractClass(); + $this->requestMock = $this->getMockBuilder('Magento\Framework\App\RequestInterface') + ->getMockForAbstractClass(); + $this->context = $this->getMockBuilder('Magento\Framework\View\Element\Template\Context') + ->disableOriginalConstructor() + ->getMock(); + $this->context->expects($this->any())->method('getRequest')->willReturn($this->requestMock); + $this->context->expects($this->any())->method('getUrlBuilder')->willReturn($this->urlBuilder); + $this->context->expects($this->any())->method('getStoreManager')->willReturn($this->storeManager); + } + + /** + * @param bool $isSecure + * @param string $actionUrl + * @param int $productId + * @dataProvider getProductReviewUrlDataProvider + */ + public function testGetProductReviewUrl($isSecure, $actionUrl, $productId) + { + $this->urlBuilder->expects($this->any()) + ->method('getUrl') + ->with('review/product/listAjax', ['_secure' => $isSecure, 'id' => $productId]) + ->willReturn($actionUrl . '/id/' . $productId); + $this->product->expects($this->any()) + ->method('getId') + ->willReturn($productId); + $this->requestMock->expects($this->any()) + ->method('isSecure') + ->willReturn($isSecure); + + $this->assertEquals($actionUrl . '/id/' . $productId, $this->block->getProductReviewUrl()); + } + + public function getProductReviewUrlDataProvider() + { + return [ + [false, 'http://localhost/review/product/listAjax', 3], + [true, 'https://localhost/review/product/listAjax' ,3], + ]; } } diff --git a/app/code/Magento/Sales/Model/AdminOrder/Create.php b/app/code/Magento/Sales/Model/AdminOrder/Create.php index 244cc11fdb3840949ca2e2927141ef51152fb424..0f3c58cfd6098bdf8b93ad9bc8b1d4b33218b894 100644 --- a/app/code/Magento/Sales/Model/AdminOrder/Create.php +++ b/app/code/Magento/Sales/Model/AdminOrder/Create.php @@ -200,12 +200,12 @@ class Create extends \Magento\Framework\DataObject implements \Magento\Checkout\ protected $customerMapper; /** - * @var \Magento\Quote\Model\QuoteRepository + * @var \Magento\Quote\Api\CartRepositoryInterface */ protected $quoteRepository; /** - * @var \Magento\Quote\Model\QuoteManagement + * @var \Magento\Quote\Api\CartManagementInterface */ protected $quoteManagement; @@ -219,6 +219,11 @@ class Create extends \Magento\Framework\DataObject implements \Magento\Checkout\ */ protected $orderManagement; + /** + * @var \Magento\Quote\Model\QuoteFactory + */ + protected $quoteFactory; + /** * @param \Magento\Framework\ObjectManagerInterface $objectManager * @param \Magento\Framework\Event\ManagerInterface $eventManager @@ -239,13 +244,14 @@ class Create extends \Magento\Framework\DataObject implements \Magento\Checkout\ * @param \Magento\CatalogInventory\Api\StockRegistryInterface $stockRegistry * @param Item\Updater $quoteItemUpdater * @param \Magento\Framework\DataObject\Factory $objectFactory - * @param \Magento\Quote\Model\QuoteRepository $quoteRepository + * @param \Magento\Quote\Api\CartRepositoryInterface $quoteRepository * @param \Magento\Customer\Api\AccountManagementInterface $accountManagement * @param \Magento\Customer\Api\Data\CustomerInterfaceFactory $customerFactory * @param \Magento\Customer\Model\Customer\Mapper $customerMapper - * @param \Magento\Quote\Model\QuoteManagement $quoteManagement + * @param \Magento\Quote\Api\CartManagementInterface $quoteManagement * @param \Magento\Framework\Api\DataObjectHelper $dataObjectHelper * @param \Magento\Sales\Api\OrderManagementInterface $orderManagement + * @param \Magento\Quote\Model\QuoteFactory $quoteFactory * @param array $data * @SuppressWarnings(PHPMD.ExcessiveParameterList) */ @@ -269,13 +275,14 @@ class Create extends \Magento\Framework\DataObject implements \Magento\Checkout\ \Magento\CatalogInventory\Api\StockRegistryInterface $stockRegistry, \Magento\Quote\Model\Quote\Item\Updater $quoteItemUpdater, \Magento\Framework\DataObject\Factory $objectFactory, - \Magento\Quote\Model\QuoteRepository $quoteRepository, + \Magento\Quote\Api\CartRepositoryInterface $quoteRepository, \Magento\Customer\Api\AccountManagementInterface $accountManagement, \Magento\Customer\Api\Data\CustomerInterfaceFactory $customerFactory, \Magento\Customer\Model\Customer\Mapper $customerMapper, - \Magento\Quote\Model\QuoteManagement $quoteManagement, + \Magento\Quote\Api\CartManagementInterface $quoteManagement, \Magento\Framework\Api\DataObjectHelper $dataObjectHelper, \Magento\Sales\Api\OrderManagementInterface $orderManagement, + \Magento\Quote\Model\QuoteFactory $quoteFactory, array $data = [] ) { $this->_objectManager = $objectManager; @@ -304,6 +311,7 @@ class Create extends \Magento\Framework\DataObject implements \Magento\Checkout\ $this->quoteManagement = $quoteManagement; $this->dataObjectHelper = $dataObjectHelper; $this->orderManagement = $orderManagement; + $this->quoteFactory = $quoteFactory; parent::__construct($data); } @@ -681,7 +689,7 @@ class Create extends \Magento\Framework\DataObject implements \Magento\Checkout\ return $this->_cart; } - $this->_cart = $this->quoteRepository->create(); + $this->_cart = $this->quoteFactory->create(); $customerId = (int)$this->getSession()->getCustomerId(); if ($customerId) { diff --git a/dev/tests/api-functional/testsuite/Magento/Bundle/Api/CartItemRepositoryTest.php b/dev/tests/api-functional/testsuite/Magento/Bundle/Api/CartItemRepositoryTest.php index 9cb6aebe8099e0f566fb09382288dd1b5664eb54..8442c0cfc8bb9283fe98fd4b1c8d9e028116a548 100644 --- a/dev/tests/api-functional/testsuite/Magento/Bundle/Api/CartItemRepositoryTest.php +++ b/dev/tests/api-functional/testsuite/Magento/Bundle/Api/CartItemRepositoryTest.php @@ -94,7 +94,7 @@ class CartItemRepositoryTest extends WebapiAbstract $serviceInfo = [ 'rest' => [ - 'resourcePath' => self::RESOURCE_PATH . 'items', + 'resourcePath' => self::RESOURCE_PATH . $cartId . '/items', 'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_POST, ], 'soap' => [ @@ -161,7 +161,7 @@ class CartItemRepositoryTest extends WebapiAbstract $serviceInfo = [ 'rest' => [ - 'resourcePath' => self::RESOURCE_PATH . 'items/' . $itemId, + 'resourcePath' => self::RESOURCE_PATH . $cartId . '/items/' . $itemId, 'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_PUT, ], 'soap' => [ diff --git a/dev/tests/api-functional/testsuite/Magento/Catalog/Api/CartItemRepositoryTest.php b/dev/tests/api-functional/testsuite/Magento/Catalog/Api/CartItemRepositoryTest.php index dbd5c8b3d2eeb6e72499a855bba0de053f446ca3..27a0c4b31552dc770a3ab9b25c7e17798ac4bf7c 100644 --- a/dev/tests/api-functional/testsuite/Magento/Catalog/Api/CartItemRepositoryTest.php +++ b/dev/tests/api-functional/testsuite/Magento/Catalog/Api/CartItemRepositoryTest.php @@ -13,7 +13,6 @@ class CartItemRepositoryTest extends WebapiAbstract { const SERVICE_NAME = 'quoteCartItemRepositoryV1'; const SERVICE_VERSION = 'V1'; - const RESOURCE_PATH = '/V1/carts/items'; const SIMPLE_PRODUCT_SKU = 'simple'; /** @@ -43,7 +42,7 @@ class CartItemRepositoryTest extends WebapiAbstract $serviceInfo = [ 'rest' => [ - 'resourcePath' => self::RESOURCE_PATH, + 'resourcePath' => '/V1/carts/' . $cartId . '/items', 'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_POST ], 'soap' => [ diff --git a/dev/tests/api-functional/testsuite/Magento/ConfigurableProduct/Api/CartItemRepositoryTest.php b/dev/tests/api-functional/testsuite/Magento/ConfigurableProduct/Api/CartItemRepositoryTest.php index 07e00fa1a0bec28ff8b998dceaeee155683d338a..f2b73461e04fac6f74371d717249fe389ebecb92 100644 --- a/dev/tests/api-functional/testsuite/Magento/ConfigurableProduct/Api/CartItemRepositoryTest.php +++ b/dev/tests/api-functional/testsuite/Magento/ConfigurableProduct/Api/CartItemRepositoryTest.php @@ -12,7 +12,6 @@ class CartItemRepositoryTest extends WebapiAbstract { const SERVICE_NAME = 'quoteCartItemRepositoryV1'; const SERVICE_VERSION = 'V1'; - const RESOURCE_PATH = '/V1/carts/items'; const CONFIGURABLE_PRODUCT_SKU = 'configurable'; /** @@ -38,7 +37,7 @@ class CartItemRepositoryTest extends WebapiAbstract $serviceInfo = [ 'rest' => [ - 'resourcePath' => self::RESOURCE_PATH, + 'resourcePath' => '/V1/carts/' . $cartId . '/items', 'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_POST ], 'soap' => [ @@ -83,7 +82,7 @@ class CartItemRepositoryTest extends WebapiAbstract $serviceInfo = [ 'rest' => [ - 'resourcePath' => self::RESOURCE_PATH, + 'resourcePath' => '/V1/carts/' . $cartId . '/items', 'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_POST ], 'soap' => [ @@ -122,7 +121,7 @@ class CartItemRepositoryTest extends WebapiAbstract $serviceInfo = [ 'rest' => [ - 'resourcePath' => self::RESOURCE_PATH . '/1000', + 'resourcePath' => '/V1/carts/' . $cartId . '/items/1000', 'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_PUT ], 'soap' => [ @@ -171,7 +170,7 @@ class CartItemRepositoryTest extends WebapiAbstract $serviceInfo = [ 'rest' => [ - 'resourcePath' => self::RESOURCE_PATH . '/' . $item->getId(), + 'resourcePath' => '/V1/carts/' . $cartId . '/items/' . $item->getId(), 'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_PUT ], 'soap' => [ @@ -248,7 +247,7 @@ class CartItemRepositoryTest extends WebapiAbstract $serviceInfo = [ 'rest' => [ - 'resourcePath' => self::RESOURCE_PATH . '/' . $item->getId(), + 'resourcePath' => '/V1/carts/' . $cartId . '/items/' . $item->getId(), 'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_PUT ], 'soap' => [ diff --git a/dev/tests/api-functional/testsuite/Magento/Downloadable/Api/CartItemRepositoryTest.php b/dev/tests/api-functional/testsuite/Magento/Downloadable/Api/CartItemRepositoryTest.php index 9e3512653a71820ada050b1b8dabd1cc3dd5cad6..bc6cc445e62c6c9723874a70f2f5c16b6c66de3e 100644 --- a/dev/tests/api-functional/testsuite/Magento/Downloadable/Api/CartItemRepositoryTest.php +++ b/dev/tests/api-functional/testsuite/Magento/Downloadable/Api/CartItemRepositoryTest.php @@ -11,7 +11,6 @@ class CartItemRepositoryTest extends WebapiAbstract { const SERVICE_VERSION = 'V1'; const SERVICE_NAME = 'quoteCartItemRepositoryV1'; - const RESOURCE_PATH = '/V1/carts/'; /** * @var \Magento\TestFramework\ObjectManager @@ -38,7 +37,7 @@ class CartItemRepositoryTest extends WebapiAbstract $cartId = $quote->getId(); $serviceInfo = [ 'rest' => [ - 'resourcePath' => self::RESOURCE_PATH . 'items', + 'resourcePath' => '/V1/carts/' . $cartId . '/items', 'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_POST, ], 'soap' => [ @@ -95,7 +94,7 @@ class CartItemRepositoryTest extends WebapiAbstract $productSku = $product->getSku(); $serviceInfo = [ 'rest' => [ - 'resourcePath' => self::RESOURCE_PATH . 'items', + 'resourcePath' => '/V1/carts/' . $cartId . '/items', 'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_POST, ], 'soap' => [ @@ -139,7 +138,7 @@ class CartItemRepositoryTest extends WebapiAbstract $itemId = $quote->getAllItems()[0]->getId(); $serviceInfo = [ 'rest' => [ - 'resourcePath' => self::RESOURCE_PATH . 'items/' . $itemId, + 'resourcePath' => '/V1/carts/' . $cartId . '/items/' . $itemId, 'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_PUT, ], 'soap' => [ @@ -202,7 +201,7 @@ class CartItemRepositoryTest extends WebapiAbstract 'operation' => self::SERVICE_NAME . 'Save', ], 'rest' => [ - 'resourcePath' => self::RESOURCE_PATH . 'items/' . $itemId, + 'resourcePath' => '/V1/carts/' . $cartId . '/items/' . $itemId, 'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_PUT, ], ]; @@ -262,7 +261,7 @@ class CartItemRepositoryTest extends WebapiAbstract $serviceInfo = [ 'rest' => [ - 'resourcePath' => self::RESOURCE_PATH . $cartId . '/items', + 'resourcePath' => '/V1/carts/' . $cartId . '/items', 'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_GET, ], 'soap' => [ @@ -291,7 +290,7 @@ class CartItemRepositoryTest extends WebapiAbstract $itemId = $quote->getAllItems()[0]->getId(); $serviceInfo = [ 'rest' => [ - 'resourcePath' => self::RESOURCE_PATH . 'items/' . $itemId, + 'resourcePath' => '/V1/carts/' . $cartId . '/items/' . $itemId, 'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_PUT, ], 'soap' => [ diff --git a/dev/tests/api-functional/testsuite/Magento/Quote/Api/CartItemRepositoryTest.php b/dev/tests/api-functional/testsuite/Magento/Quote/Api/CartItemRepositoryTest.php index fd3039508d8a176de0b5e3e043832d77d149f0b0..b1bf5b93236513b4ec4c961c31dc3c66a43cf6a2 100644 --- a/dev/tests/api-functional/testsuite/Magento/Quote/Api/CartItemRepositoryTest.php +++ b/dev/tests/api-functional/testsuite/Magento/Quote/Api/CartItemRepositoryTest.php @@ -79,7 +79,7 @@ class CartItemRepositoryTest extends WebapiAbstract $cartId = $quote->getId(); $serviceInfo = [ 'rest' => [ - 'resourcePath' => self::RESOURCE_PATH . 'items', + 'resourcePath' => self::RESOURCE_PATH . $cartId . '/items', 'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_POST, ], 'soap' => [ @@ -151,7 +151,7 @@ class CartItemRepositoryTest extends WebapiAbstract $itemId = $quote->getItemByProduct($product)->getId(); $serviceInfo = [ 'rest' => [ - 'resourcePath' => self::RESOURCE_PATH . 'items/' . $itemId, + 'resourcePath' => self::RESOURCE_PATH . $cartId . '/items/' . $itemId, 'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_PUT, ], 'soap' => [ diff --git a/dev/tests/api-functional/testsuite/Magento/Quote/Api/GuestCartItemRepositoryTest.php b/dev/tests/api-functional/testsuite/Magento/Quote/Api/GuestCartItemRepositoryTest.php index e36284a6f980304829690a9059a589eaa52498dd..0ec5b0c876957abdc51ed47240e558847686d589 100644 --- a/dev/tests/api-functional/testsuite/Magento/Quote/Api/GuestCartItemRepositoryTest.php +++ b/dev/tests/api-functional/testsuite/Magento/Quote/Api/GuestCartItemRepositoryTest.php @@ -99,7 +99,7 @@ class GuestCartItemRepositoryTest extends WebapiAbstract $serviceInfo = [ 'rest' => [ - 'resourcePath' => self::RESOURCE_PATH . 'items', + 'resourcePath' => self::RESOURCE_PATH . $cartId . '/items', 'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_POST, ], 'soap' => [ @@ -189,7 +189,7 @@ class GuestCartItemRepositoryTest extends WebapiAbstract $itemId = $quote->getItemByProduct($product)->getId(); $serviceInfo = [ 'rest' => [ - 'resourcePath' => self::RESOURCE_PATH . 'items/' . $itemId, + 'resourcePath' => self::RESOURCE_PATH . $cartId . '/items/' . $itemId, 'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_PUT, ], 'soap' => [ diff --git a/dev/tests/api-functional/testsuite/Magento/Quote/Api/GuestShippingAddressManagementTest.php b/dev/tests/api-functional/testsuite/Magento/Quote/Api/GuestShippingAddressManagementTest.php deleted file mode 100644 index 6ac15b22292da1603e0c56f1f49f99bbab2c5509..0000000000000000000000000000000000000000 --- a/dev/tests/api-functional/testsuite/Magento/Quote/Api/GuestShippingAddressManagementTest.php +++ /dev/null @@ -1,244 +0,0 @@ -<?php -/** - * Copyright © 2015 Magento. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Quote\Api; - -use Magento\Quote\Api\Data\AddressInterface; -use Magento\TestFramework\TestCase\WebapiAbstract; - -class GuestShippingAddressManagementTest extends WebapiAbstract -{ - const SERVICE_VERSION = 'V1'; - const SERVICE_NAME = 'quoteGuestShippingAddressManagementV1'; - const RESOURCE_PATH = '/V1/guest-carts/'; - - /** - * @var \Magento\TestFramework\ObjectManager - */ - protected $objectManager; - - protected function setUp() - { - $this->objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager(); - } - - public function tearDown() - { - $createdQuotes = ['test_order_1', 'test_order_with_virtual_product']; - /** @var \Magento\Quote\Model\Quote $quote */ - $quote = $this->objectManager->create('Magento\Quote\Model\Quote'); - foreach ($createdQuotes as $quoteId) { - $quote->load($quoteId, 'reserved_order_id'); - $quote->delete(); - /** @var \Magento\Quote\Model\QuoteIdMask $quoteIdMask */ - $quoteIdMask = $this->objectManager->create('Magento\Quote\Model\QuoteIdMask'); - $quoteIdMask->load($quote->getId(), 'quote_id'); - $quoteIdMask->delete(); - } - } - - protected function getQuoteMaskedId($quoteId) - { - /** @var \Magento\Quote\Model\QuoteIdMask $quoteIdMask */ - $quoteIdMask = $this->objectManager->create('Magento\Quote\Model\QuoteIdMaskFactory')->create(); - $quoteIdMask->load($quoteId, 'quote_id'); - return $quoteIdMask->getMaskedId(); - } - - /** - * @magentoApiDataFixture Magento/Checkout/_files/quote_with_address_saved.php - */ - public function testGetAddress() - { - $quote = $this->objectManager->create('Magento\Quote\Model\Quote'); - $quote->load('test_order_1', 'reserved_order_id'); - - /** @var \Magento\Quote\Model\Quote\Address $address */ - $address = $quote->getShippingAddress(); - - $data = [ - AddressInterface::KEY_COUNTRY_ID => $address->getCountryId(), - AddressInterface::KEY_ID => (int)$address->getId(), - AddressInterface::KEY_CUSTOMER_ID => $address->getCustomerId(), - AddressInterface::KEY_REGION => $address->getRegion(), - AddressInterface::KEY_REGION_ID => $address->getRegionId(), - AddressInterface::KEY_REGION_CODE => $address->getRegionCode(), - AddressInterface::KEY_STREET => $address->getStreet(), - AddressInterface::KEY_COMPANY => $address->getCompany(), - AddressInterface::KEY_TELEPHONE => $address->getTelephone(), - AddressInterface::KEY_POSTCODE => $address->getPostcode(), - AddressInterface::KEY_CITY => $address->getCity(), - AddressInterface::KEY_FIRSTNAME => $address->getFirstname(), - AddressInterface::KEY_LASTNAME => $address->getLastname(), - AddressInterface::KEY_EMAIL => $address->getEmail(), - AddressInterface::SAME_AS_BILLING => $address->getSameAsBilling(), - AddressInterface::CUSTOMER_ADDRESS_ID => $address->getCustomerAddressId(), - AddressInterface::SAVE_IN_ADDRESS_BOOK => $address->getSaveInAddressBook() - ]; - - $cartId = $this->getQuoteMaskedId($quote->getId()); - - $serviceInfo = [ - 'rest' => [ - 'resourcePath' => self::RESOURCE_PATH . $cartId . '/shipping-address', - 'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_GET, - ], - 'soap' => [ - 'service' => self::SERVICE_NAME, - 'serviceVersion' => self::SERVICE_VERSION, - 'operation' => self::SERVICE_NAME . 'Get', - ], - ]; - - $requestData = ["cartId" => $cartId]; - $response = $this->_webApiCall($serviceInfo, $requestData); - - asort($data); - asort($response); - $this->assertEquals($data, $response); - } - - /** - * @magentoApiDataFixture Magento/Checkout/_files/quote_with_virtual_product_and_address.php - * - * @expectedException \Exception - * @expectedExceptionMessage Cart contains virtual product(s) only. Shipping address is not applicable - */ - public function testGetAddressOfQuoteWithVirtualProduct() - { - $quote = $this->objectManager->create('Magento\Quote\Model\Quote'); - $quote->load('test_order_with_virtual_product', 'reserved_order_id'); - $cartId = $this->getQuoteMaskedId($quote->getId()); - - $serviceInfo = [ - 'rest' => [ - 'resourcePath' => self::RESOURCE_PATH . $cartId . '/shipping-address', - 'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_GET, - ], - 'soap' => [ - 'service' => self::SERVICE_NAME, - 'serviceVersion' => self::SERVICE_VERSION, - 'operation' => self::SERVICE_NAME . 'Get', - ], - ]; - - $this->_webApiCall($serviceInfo, ["cartId" => $cartId]); - } - - /** - * @magentoApiDataFixture Magento/Checkout/_files/quote_with_address_saved.php - */ - public function testSetAddress() - { - /** @var \Magento\Quote\Model\Quote $quote */ - $quote = $this->objectManager->create('Magento\Quote\Model\Quote'); - $quote->load('test_order_1', 'reserved_order_id'); - $cartId = $this->getQuoteMaskedId($quote->getId()); - - $serviceInfo = [ - 'rest' => [ - 'resourcePath' => self::RESOURCE_PATH . $cartId . '/shipping-address', - 'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_POST, - ], - 'soap' => [ - 'service' => self::SERVICE_NAME, - 'serviceVersion' => self::SERVICE_VERSION, - 'operation' => self::SERVICE_NAME . 'Assign', - ], - ]; - - $addressData = [ - 'firstname' => 'John', - 'lastname' => 'Smith', - 'email' => '', - 'company' => 'eBay Inc', - 'street' => ['Typical Street', 'Tiny House 18'], - 'city' => 'Big City', - 'region_id' => 12, - 'region' => 'California', - 'region_code' => 'CA', - 'postcode' => '0985432', - 'country_id' => 'US', - 'telephone' => '88776655', - 'fax' => '44332255', - ]; - $requestData = [ - "cartId" => $cartId, - 'address' => $addressData, - ]; - - $addressId = $this->_webApiCall($serviceInfo, $requestData); - - //reset $quote to reload data - $quote = $this->objectManager->create('Magento\Quote\Model\Quote'); - $quote->load('test_order_1', 'reserved_order_id'); - $address = $quote->getShippingAddress(); - $address->getRegionCode(); - $savedData = $address->getData(); - $this->assertEquals($addressId, $savedData['address_id'], 'Invalid address ID'); - $this->assertEquals(0, $savedData['same_as_billing']); - //custom checks for street, region and address_type - $this->assertEquals($addressData['street'], $quote->getShippingAddress()->getStreet()); - unset($addressData['street']); - unset($addressData['email']); - - $this->assertEquals('shipping', $savedData['address_type']); - //check the rest of fields - foreach ($addressData as $key => $value) { - $this->assertEquals($value, $savedData[$key], 'Invalid value for ' . $key); - } - } - - /** - * Set address to quote with virtual products only - * - * @expectedException \Exception - * @expectedExceptionMessage Cart contains virtual product(s) only. Shipping address is not applicable - * - * @magentoApiDataFixture Magento/Checkout/_files/quote_with_virtual_product_and_address.php - */ - public function testSetAddressForVirtualQuote() - { - /** @var \Magento\Quote\Model\Quote $quote */ - $quote = $this->objectManager->create('Magento\Quote\Model\Quote'); - $quote->load('test_order_with_virtual_product', 'reserved_order_id'); - $cartId = $this->getQuoteMaskedId($quote->getId()); - - $serviceInfo = [ - 'rest' => [ - 'resourcePath' => self::RESOURCE_PATH . $cartId . '/shipping-address', - 'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_POST, - ], - 'soap' => [ - 'service' => self::SERVICE_NAME, - 'serviceVersion' => self::SERVICE_VERSION, - 'operation' => self::SERVICE_NAME . 'Assign', - ], - ]; - - $addressData = [ - 'firstname' => 'John', - 'lastname' => 'Smith', - 'email' => 'cat@dog.com', - 'company' => 'eBay Inc', - 'street' => ['Typical Street', 'Tiny House 18'], - 'city' => 'Big City', - 'region_id' => 12, - 'region' => 'California', - 'region_code' => 'CA', - 'postcode' => '0985432', - 'country_id' => 'US', - 'telephone' => '88776655', - 'fax' => '44332255', - ]; - $requestData = [ - "cartId" => $cartId, - 'address' => $addressData, - ]; - - $this->_webApiCall($serviceInfo, $requestData); - } -} diff --git a/dev/tests/api-functional/testsuite/Magento/Quote/Api/GuestShippingMethodManagementTest.php b/dev/tests/api-functional/testsuite/Magento/Quote/Api/GuestShippingMethodManagementTest.php index 6dbbc52e76ed71dd2888ad1abcbdfb697b82b6ee..a5f406e30aeade3e9936e0c1f555f8e536ca8c9f 100644 --- a/dev/tests/api-functional/testsuite/Magento/Quote/Api/GuestShippingMethodManagementTest.php +++ b/dev/tests/api-functional/testsuite/Magento/Quote/Api/GuestShippingMethodManagementTest.php @@ -37,203 +37,6 @@ class GuestShippingMethodManagementTest extends WebapiAbstract $this->totalsCollector = $this->objectManager->create('Magento\Quote\Model\Quote\TotalsCollector'); } - protected function getServiceInfo() - { - return [ - 'rest' => [ - 'resourcePath' => '/V1/carts/' . $this->quote->getId() . '/selected-shipping-method', - 'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_PUT, - ], - 'soap' => [ - 'service' => self::SERVICE_NAME, - 'serviceVersion' => self::SERVICE_VERSION, - 'operation' => self::SERVICE_NAME . 'Set', - ], - ]; - } - - /** - * @magentoApiDataFixture Magento/Checkout/_files/quote_with_address_saved.php - */ - public function testSetMethod() - { - $this->quote->load('test_order_1', 'reserved_order_id'); - $serviceInfo = $this->getServiceInfo(); - - $cartId = $this->quote->getId(); - /** @var \Magento\Quote\Model\QuoteIdMask $quoteIdMask */ - $quoteIdMask = \Magento\TestFramework\Helper\Bootstrap::getObjectManager() - ->create('Magento\Quote\Model\QuoteIdMaskFactory') - ->create(); - $quoteIdMask->load($cartId, 'quote_id'); - //Use masked cart Id - $cartId = $quoteIdMask->getMaskedId(); - $shippingAddress = $this->quote->getShippingAddress(); - $shippingAddress->setCollectShippingRates(true); - $this->totalsCollector->collectAddressTotals($this->quote, $shippingAddress); - $shippingAddress->save(); - $requestData = [ - 'cartId' => $cartId, - 'carrierCode' => 'flatrate', - 'methodCode' => 'flatrate', - ]; - $result = $this->_webApiCall($serviceInfo, $requestData); - $this->assertEquals(true, $result); - } - - /** - * @magentoApiDataFixture Magento/Checkout/_files/quote_with_address_saved.php - */ - public function testSetMethodWrongMethod() - { - $expectedMessage = 'Carrier with such method not found: %1, %2'; - $this->quote->load('test_order_1', 'reserved_order_id'); - $serviceInfo = $this->getServiceInfo(); - $carrierCode = 'flatrate'; - $methodCode = 'wrongMethod'; - - $cartId = $this->quote->getId(); - /** @var \Magento\Quote\Model\QuoteIdMask $quoteIdMask */ - $quoteIdMask = \Magento\TestFramework\Helper\Bootstrap::getObjectManager() - ->create('Magento\Quote\Model\QuoteIdMaskFactory') - ->create(); - $quoteIdMask->load($cartId, 'quote_id'); - //Use masked cart Id - $cartId = $quoteIdMask->getMaskedId(); - - $requestData = [ - 'cartId' => $cartId, - 'carrierCode' => $carrierCode, - 'methodCode' => $methodCode, - ]; - try { - $this->_webApiCall($serviceInfo, $requestData); - } catch (\SoapFault $e) { - $this->assertContains( - $expectedMessage, - $e->getMessage(), - 'SoapFault does not contain expected message.' - ); - } catch (\Exception $e) { - $errorObj = $this->processRestExceptionResult($e); - $this->assertEquals($expectedMessage, $errorObj['message']); - $this->assertEquals([$carrierCode, $methodCode], $errorObj['parameters']); - } - } - - /** - * @magentoApiDataFixture Magento/Checkout/_files/quote_with_simple_product_saved.php - */ - public function testSetMethodWithoutShippingAddress() - { - $this->quote->load('test_order_with_simple_product_without_address', 'reserved_order_id'); - $serviceInfo = $this->getServiceInfo(); - - $cartId = $this->quote->getId(); - /** @var \Magento\Quote\Model\QuoteIdMask $quoteIdMask */ - $quoteIdMask = \Magento\TestFramework\Helper\Bootstrap::getObjectManager() - ->create('Magento\Quote\Model\QuoteIdMaskFactory') - ->create(); - $quoteIdMask->load($cartId, 'quote_id'); - //Use masked cart Id - $cartId = $quoteIdMask->getMaskedId(); - - $requestData = [ - 'cartId' => $cartId, - 'carrierCode' => 'flatrate', - 'methodCode' => 'flatrate', - ]; - try { - $this->_webApiCall($serviceInfo, $requestData); - } catch (\SoapFault $e) { - $message = $e->getMessage(); - } catch (\Exception $e) { - $message = json_decode($e->getMessage())->message; - } - $this->assertEquals('Shipping address is not set', $message); - } - - /** - * @magentoApiDataFixture Magento/Checkout/_files/quote_with_shipping_method.php - */ - public function testGetMethod() - { - /** @var \Magento\Quote\Model\Quote $quote */ - $quote = $this->objectManager->create('Magento\Quote\Model\Quote'); - $quote->load('test_order_1', 'reserved_order_id'); - - $cartId = $quote->getId(); - /** @var \Magento\Quote\Model\QuoteIdMask $quoteIdMask */ - $quoteIdMask = \Magento\TestFramework\Helper\Bootstrap::getObjectManager() - ->create('Magento\Quote\Model\QuoteIdMaskFactory') - ->create(); - $quoteIdMask->load($cartId, 'quote_id'); - //Use masked cart Id - $cartId = $quoteIdMask->getMaskedId(); - - $shippingAddress = $quote->getShippingAddress(); - $shippingAddress->setCollectShippingRates(true); - $this->totalsCollector->collectAddressTotals($this->quote, $shippingAddress); - $shippingAddress->save(); - list($carrierCode, $methodCode) = explode('_', $shippingAddress->getShippingMethod()); - list($carrierTitle, $methodTitle) = explode(' - ', $shippingAddress->getShippingDescription()); - $data = [ - ShippingMethodInterface::KEY_CARRIER_CODE => $carrierCode, - ShippingMethodInterface::KEY_METHOD_CODE => $methodCode, - ShippingMethodInterface::KEY_CARRIER_TITLE => $carrierTitle, - ShippingMethodInterface::KEY_METHOD_TITLE => $methodTitle, - ShippingMethodInterface::KEY_SHIPPING_AMOUNT => $shippingAddress->getShippingAmount(), - ShippingMethodInterface::KEY_BASE_SHIPPING_AMOUNT => $shippingAddress->getBaseShippingAmount(), - ShippingMethodInterface::KEY_AVAILABLE => true, - ShippingMethodInterface::KEY_ERROR_MESSAGE => null, - ]; - $requestData = ["cartId" => $cartId]; - $actual = $this->_webApiCall($this->getSelectedMethodServiceInfo($cartId), $requestData); - unset($actual[ShippingMethodInterface::KEY_PRICE_EXCL_TAX]); - unset($actual[ShippingMethodInterface::KEY_PRICE_INCL_TAX ]); - $this->assertEquals($data, $actual); - } - - /** - * @magentoApiDataFixture Magento/Checkout/_files/quote_with_virtual_product_and_address.php - */ - public function testGetMethodOfVirtualCart() - { - $quote = $this->objectManager->create('Magento\Quote\Model\Quote'); - $cartId = $quote->load('test_order_with_virtual_product', 'reserved_order_id')->getId(); - - /** @var \Magento\Quote\Model\QuoteIdMask $quoteIdMask */ - $quoteIdMask = \Magento\TestFramework\Helper\Bootstrap::getObjectManager() - ->create('Magento\Quote\Model\QuoteIdMaskFactory') - ->create(); - $quoteIdMask->load($cartId, 'quote_id'); - //Use masked cart Id - $cartId = $quoteIdMask->getMaskedId(); - - $result = $this->_webApiCall($this->getSelectedMethodServiceInfo($cartId), ["cartId" => $cartId]); - $this->assertEquals([], $result); - } - - /** - * @magentoApiDataFixture Magento/Checkout/_files/quote_with_address_saved.php - */ - public function testGetMethodOfCartWithNoShippingMethod() - { - $quote = $this->objectManager->create('Magento\Quote\Model\Quote'); - $cartId = $quote->load('test_order_1', 'reserved_order_id')->getId(); - - /** @var \Magento\Quote\Model\QuoteIdMask $quoteIdMask */ - $quoteIdMask = \Magento\TestFramework\Helper\Bootstrap::getObjectManager() - ->create('Magento\Quote\Model\QuoteIdMaskFactory') - ->create(); - $quoteIdMask->load($cartId, 'quote_id'); - //Use masked cart Id - $cartId = $quoteIdMask->getMaskedId(); - - $result = $this->_webApiCall($this->getSelectedMethodServiceInfo($cartId), ["cartId" => $cartId]); - $this->assertEquals([], $result); - } - /** * @magentoApiDataFixture Magento/Checkout/_files/quote_with_virtual_product_and_address.php * @@ -286,26 +89,6 @@ class GuestShippingMethodManagementTest extends WebapiAbstract $this->assertEquals($expectedData, $returnedRates); } - /** - * @param string $cartId - * @return array - * @SuppressWarnings(PHPMD.UnusedLocalVariable) - */ - protected function getSelectedMethodServiceInfo($cartId) - { - return $serviceInfo = [ - 'rest' => [ - 'resourcePath' => self::RESOURCE_PATH . $cartId . '/selected-shipping-method', - 'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_GET, - ], - 'soap' => [ - 'service' => self::SERVICE_NAME, - 'serviceVersion' => self::SERVICE_VERSION, - 'operation' => self::SERVICE_NAME . 'Get', - ], - ]; - } - /** * Service info * diff --git a/dev/tests/api-functional/testsuite/Magento/Quote/Api/ShippingAddressManagementTest.php b/dev/tests/api-functional/testsuite/Magento/Quote/Api/ShippingAddressManagementTest.php deleted file mode 100644 index a15ea0d24fbc85d7e741e329dc266fe4cc5a8b18..0000000000000000000000000000000000000000 --- a/dev/tests/api-functional/testsuite/Magento/Quote/Api/ShippingAddressManagementTest.php +++ /dev/null @@ -1,345 +0,0 @@ -<?php -/** - * Copyright © 2015 Magento. All rights reserved. - * See COPYING.txt for license details. - */ - -namespace Magento\Quote\Api; - -use Magento\Quote\Api\Data\AddressInterface; -use Magento\TestFramework\TestCase\WebapiAbstract; - -class ShippingAddressManagementTest extends WebapiAbstract -{ - const SERVICE_VERSION = 'V1'; - const SERVICE_NAME = 'quoteShippingAddressManagementV1'; - const RESOURCE_PATH = '/V1/carts/'; - - /** - * @var \Magento\TestFramework\ObjectManager - */ - protected $objectManager; - - protected function setUp() - { - $this->objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager(); - } - - /** - * @magentoApiDataFixture Magento/Checkout/_files/quote_with_address_saved.php - */ - public function testGetAddress() - { - $quote = $this->objectManager->create('Magento\Quote\Model\Quote'); - $quote->load('test_order_1', 'reserved_order_id'); - - /** @var \Magento\Quote\Model\Quote\Address $address */ - $address = $quote->getShippingAddress(); - - $data = [ - AddressInterface::KEY_ID => (int)$address->getId(), - AddressInterface::KEY_REGION => $address->getRegion(), - AddressInterface::KEY_REGION_ID => $address->getRegionId(), - AddressInterface::KEY_REGION_CODE => $address->getRegionCode(), - AddressInterface::KEY_COUNTRY_ID => $address->getCountryId(), - AddressInterface::KEY_STREET => $address->getStreet(), - AddressInterface::KEY_COMPANY => $address->getCompany(), - AddressInterface::KEY_TELEPHONE => $address->getTelephone(), - AddressInterface::KEY_POSTCODE => $address->getPostcode(), - AddressInterface::KEY_CITY => $address->getCity(), - AddressInterface::KEY_FIRSTNAME => $address->getFirstname(), - AddressInterface::KEY_LASTNAME => $address->getLastname(), - AddressInterface::KEY_CUSTOMER_ID => $address->getCustomerId(), - AddressInterface::KEY_EMAIL => $address->getEmail(), - AddressInterface::SAME_AS_BILLING => $address->getSameAsBilling(), - AddressInterface::CUSTOMER_ADDRESS_ID => $address->getCustomerAddressId(), - AddressInterface::SAVE_IN_ADDRESS_BOOK => $address->getSaveInAddressBook() - - ]; - $cartId = $quote->getId(); - - $serviceInfo = [ - 'rest' => [ - 'resourcePath' => self::RESOURCE_PATH . $quote->getId() . '/shipping-address', - 'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_GET, - ], - 'soap' => [ - 'service' => self::SERVICE_NAME, - 'serviceVersion' => self::SERVICE_VERSION, - 'operation' => self::SERVICE_NAME . 'Get', - ], - ]; - - $requestData = ["cartId" => $cartId]; - $response = $this->_webApiCall($serviceInfo, $requestData); - - asort($data); - asort($response); - $this->assertEquals($data, $response); - } - - /** - * @magentoApiDataFixture Magento/Checkout/_files/quote_with_virtual_product_and_address.php - * - * @expectedException \Exception - * @expectedExceptionMessage Cart contains virtual product(s) only. Shipping address is not applicable - */ - public function testGetAddressOfQuoteWithVirtualProduct() - { - $quote = $this->objectManager->create('Magento\Quote\Model\Quote'); - $cartId = $quote->load('test_order_with_virtual_product', 'reserved_order_id')->getId(); - - $serviceInfo = [ - 'rest' => [ - 'resourcePath' => self::RESOURCE_PATH . $quote->getId() . '/shipping-address', - 'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_GET, - ], - 'soap' => [ - 'service' => self::SERVICE_NAME, - 'serviceVersion' => self::SERVICE_VERSION, - 'operation' => self::SERVICE_NAME . 'Get', - ], - ]; - - $this->_webApiCall($serviceInfo, ["cartId" => $cartId]); - } - - /** - * @magentoApiDataFixture Magento/Checkout/_files/quote_with_address_saved.php - */ - public function testSetAddress() - { - /** @var \Magento\Quote\Model\Quote $quote */ - $quote = $this->objectManager->create('Magento\Quote\Model\Quote'); - $quote->load('test_order_1', 'reserved_order_id'); - - $serviceInfo = [ - 'rest' => [ - 'resourcePath' => self::RESOURCE_PATH . $quote->getId() . '/shipping-address', - 'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_POST, - ], - 'soap' => [ - 'service' => self::SERVICE_NAME, - 'serviceVersion' => self::SERVICE_VERSION, - 'operation' => self::SERVICE_NAME . 'Assign', - ], - ]; - - $addressData = [ - 'firstname' => 'John', - 'lastname' => 'Smith', - 'email' => '', - 'company' => 'eBay Inc', - 'street' => ['Typical Street', 'Tiny House 18'], - 'city' => 'Big City', - 'region_id' => 12, - 'region' => 'California', - 'region_code' => 'CA', - 'postcode' => '0985432', - 'country_id' => 'US', - 'telephone' => '88776655', - 'fax' => '44332255', - ]; - $requestData = [ - "cartId" => $quote->getId(), - 'address' => $addressData, - ]; - - $addressId = $this->_webApiCall($serviceInfo, $requestData); - - //reset $quote to reload data - $quote = $this->objectManager->create('Magento\Quote\Model\Quote'); - $quote->load('test_order_1', 'reserved_order_id'); - $address = $quote->getShippingAddress(); - $address->getRegionCode(); - $savedData = $address->getData(); - $this->assertEquals($addressId, $savedData['address_id'], 'Invalid address ID'); - $this->assertEquals(0, $savedData['same_as_billing']); - //custom checks for street, region and address_type - $this->assertEquals($addressData['street'], $quote->getShippingAddress()->getStreet()); - unset($addressData['street']); - unset($addressData['email']); - - $this->assertEquals('shipping', $savedData['address_type']); - //check the rest of fields - foreach ($addressData as $key => $value) { - $this->assertEquals($value, $savedData[$key], 'Invalid value for ' . $key); - } - } - - /** - * Set address to quote with virtual products only - * - * @expectedException \Exception - * @expectedExceptionMessage Cart contains virtual product(s) only. Shipping address is not applicable - * - * @magentoApiDataFixture Magento/Checkout/_files/quote_with_virtual_product_and_address.php - */ - public function testSetAddressForVirtualQuote() - { - /** @var \Magento\Quote\Model\Quote $quote */ - $quote = $this->objectManager->create('Magento\Quote\Model\Quote'); - $quote->load('test_order_with_virtual_product', 'reserved_order_id'); - - $serviceInfo = [ - 'rest' => [ - 'resourcePath' => self::RESOURCE_PATH . $quote->getId() . '/shipping-address', - 'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_POST, - ], - 'soap' => [ - 'service' => self::SERVICE_NAME, - 'serviceVersion' => self::SERVICE_VERSION, - 'operation' => self::SERVICE_NAME . 'Assign', - ], - ]; - - $addressData = [ - 'firstname' => 'John', - 'lastname' => 'Smith', - 'email' => 'cat@dog.com', - 'company' => 'eBay Inc', - 'street' => ['Typical Street', 'Tiny House 18'], - 'city' => 'Big City', - 'region_id' => 12, - 'region' => 'California', - 'region_code' => 'CA', - 'postcode' => '0985432', - 'country_id' => 'US', - 'telephone' => '88776655', - 'fax' => '44332255', - ]; - $requestData = [ - "cartId" => $quote->getId(), - 'address' => $addressData, - ]; - - $this->_webApiCall($serviceInfo, $requestData); - } - - /** - * Test getting shipping address based on the customer's authentication token. - * - * @magentoApiDataFixture Magento/Checkout/_files/quote_with_address_saved.php - */ - public function testGetMyAddress() - { - $this->_markTestAsRestOnly(); - - // get customer ID token - /** @var \Magento\Integration\Api\CustomerTokenServiceInterface $customerTokenService */ - $customerTokenService = $this->objectManager->create( - 'Magento\Integration\Api\CustomerTokenServiceInterface' - ); - $token = $customerTokenService->createCustomerAccessToken('customer@example.com', 'password'); - - /** @var \Magento\Quote\Model\Quote $quote */ - $quote = $this->objectManager->create('Magento\Quote\Model\Quote'); - $quote->load('test_order_1', 'reserved_order_id'); - - /** @var \Magento\Quote\Model\Quote\Address $address */ - $address = $quote->getShippingAddress(); - - $addressData = [ - AddressInterface::KEY_ID => (int)$address->getId(), - AddressInterface::KEY_REGION => $address->getRegion(), - AddressInterface::KEY_REGION_ID => $address->getRegionId(), - AddressInterface::KEY_REGION_CODE => $address->getRegionCode(), - AddressInterface::KEY_COUNTRY_ID => $address->getCountryId(), - AddressInterface::KEY_STREET => $address->getStreet(), - AddressInterface::KEY_COMPANY => $address->getCompany(), - AddressInterface::KEY_TELEPHONE => $address->getTelephone(), - AddressInterface::KEY_POSTCODE => $address->getPostcode(), - AddressInterface::KEY_CITY => $address->getCity(), - AddressInterface::KEY_FIRSTNAME => $address->getFirstname(), - AddressInterface::KEY_LASTNAME => $address->getLastname(), - AddressInterface::KEY_CUSTOMER_ID => $address->getCustomerId(), - AddressInterface::KEY_EMAIL => $address->getEmail(), - AddressInterface::SAME_AS_BILLING => $address->getSameAsBilling(), - AddressInterface::CUSTOMER_ADDRESS_ID => $address->getCustomerAddressId(), - AddressInterface::SAVE_IN_ADDRESS_BOOK => $address->getSaveInAddressBook() - - ]; - - $serviceInfo = [ - 'rest' => [ - 'resourcePath' => self::RESOURCE_PATH . 'mine/shipping-address', - 'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_GET, - 'token' => $token - ], - ]; - - $requestData = []; - $response = $this->_webApiCall($serviceInfo, $requestData); - - asort($addressData); - asort($response); - $this->assertEquals($addressData, $response); - } - - /** - * Test setting shipping address based on the customer's authentication token. - * - * @magentoApiDataFixture Magento/Checkout/_files/quote_with_address_saved.php - */ - public function testSetMyAddress() - { - $this->_markTestAsRestOnly(); - - // get customer ID token - /** @var \Magento\Integration\Api\CustomerTokenServiceInterface $customerTokenService */ - $customerTokenService = $this->objectManager->create( - 'Magento\Integration\Api\CustomerTokenServiceInterface' - ); - $token = $customerTokenService->createCustomerAccessToken('customer@example.com', 'password'); - - /** @var \Magento\Quote\Model\Quote $quote */ - $quote = $this->objectManager->create('Magento\Quote\Model\Quote'); - $quote->load('test_order_1', 'reserved_order_id'); - - $serviceInfo = [ - 'rest' => [ - 'resourcePath' => self::RESOURCE_PATH . 'mine/shipping-address', - 'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_POST, - 'token' => $token - ], - ]; - - $addressData = [ - 'firstname' => 'John', - 'lastname' => 'Smith', - 'company' => 'eBay Inc', - 'street' => ['Typical Street', 'Tiny House 18'], - 'city' => 'Big City', - 'region_id' => 12, - 'region' => 'California', - 'region_code' => 'CA', - 'postcode' => '0985432', - 'country_id' => 'US', - 'telephone' => '88776655', - 'fax' => '44332255', - ]; - $requestData = [ - 'address' => $addressData, - ]; - - $addressId = $this->_webApiCall($serviceInfo, $requestData); - - //reset $quote to reload data - $quote = $this->objectManager->create('Magento\Quote\Model\Quote'); - $quote->load('test_order_1', 'reserved_order_id'); - $address = $quote->getShippingAddress(); - $address->getRegionCode(); - $savedData = $address->getData(); - $this->assertEquals($addressId, $savedData['address_id'], 'Invalid address ID'); - $this->assertEquals(0, $savedData['same_as_billing']); - //custom checks for street, region and address_type - $this->assertEquals($addressData['street'], $quote->getShippingAddress()->getStreet()); - unset($addressData['street']); - - $this->assertEquals('shipping', $savedData['address_type']); - //check the rest of fields - foreach ($addressData as $key => $value) { - $this->assertEquals($value, $savedData[$key], 'Invalid value for ' . $key); - } - } -} diff --git a/dev/tests/api-functional/testsuite/Magento/Quote/Api/ShippingMethodManagementTest.php b/dev/tests/api-functional/testsuite/Magento/Quote/Api/ShippingMethodManagementTest.php index a1ea0c098f373efa6cb55f628657ba751906c282..b41207e377ab0db077d7fef6cd53d08d29b0676d 100644 --- a/dev/tests/api-functional/testsuite/Magento/Quote/Api/ShippingMethodManagementTest.php +++ b/dev/tests/api-functional/testsuite/Magento/Quote/Api/ShippingMethodManagementTest.php @@ -37,241 +37,6 @@ class ShippingMethodManagementTest extends WebapiAbstract $this->totalsCollector = $this->objectManager->create('Magento\Quote\Model\Quote\TotalsCollector'); } - protected function getServiceInfo() - { - return [ - 'rest' => [ - 'resourcePath' => '/V1/carts/' . $this->quote->getId() . '/selected-shipping-method', - 'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_PUT, - ], - 'soap' => [ - 'service' => self::SERVICE_NAME, - 'serviceVersion' => self::SERVICE_VERSION, - 'operation' => self::SERVICE_NAME . 'Set', - ], - ]; - } - - /** - * @magentoApiDataFixture Magento/Checkout/_files/quote_with_address_saved.php - */ - public function testSetMethod() - { - $this->quote->load('test_order_1', 'reserved_order_id'); - $serviceInfo = $this->getServiceInfo(); - $shippingAddress = $this->quote->getShippingAddress(); - $shippingAddress->setCollectShippingRates(true); - $this->totalsCollector->collectAddressTotals($this->quote, $shippingAddress); - $shippingAddress->save(); - $requestData = [ - 'cartId' => $this->quote->getId(), - 'carrierCode' => 'flatrate', - 'methodCode' => 'flatrate', - ]; - $result = $this->_webApiCall($serviceInfo, $requestData); - $this->assertEquals(true, $result); - } - - /** - * @magentoApiDataFixture Magento/Checkout/_files/quote_with_address_saved.php - */ - public function testSetMethodWrongMethod() - { - $expectedMessage = 'Carrier with such method not found: %1, %2'; - $this->quote->load('test_order_1', 'reserved_order_id'); - $serviceInfo = $this->getServiceInfo(); - $carrierCode = 'flatrate'; - $methodCode = 'wrongMethod'; - - $requestData = [ - 'cartId' => $this->quote->getId(), - 'carrierCode' => $carrierCode, - 'methodCode' => $methodCode, - ]; - try { - $this->_webApiCall($serviceInfo, $requestData); - } catch (\SoapFault $e) { - $this->assertContains( - $expectedMessage, - $e->getMessage(), - 'SoapFault does not contain expected message.' - ); - } catch (\Exception $e) { - $errorObj = $this->processRestExceptionResult($e); - $this->assertEquals($expectedMessage, $errorObj['message']); - $this->assertEquals([$carrierCode, $methodCode], $errorObj['parameters']); - } - } - - /** - * @magentoApiDataFixture Magento/Checkout/_files/quote_with_simple_product_saved.php - */ - public function testSetMethodWithoutShippingAddress() - { - $this->quote->load('test_order_with_simple_product_without_address', 'reserved_order_id'); - $serviceInfo = $this->getServiceInfo(); - - $requestData = [ - 'cartId' => $this->quote->getId(), - 'carrierCode' => 'flatrate', - 'methodCode' => 'flatrate', - ]; - try { - $this->_webApiCall($serviceInfo, $requestData); - } catch (\SoapFault $e) { - $message = $e->getMessage(); - } catch (\Exception $e) { - $message = json_decode($e->getMessage())->message; - } - $this->assertEquals('Shipping address is not set', $message); - } - - /** - * @magentoApiDataFixture Magento/Customer/_files/customer.php - * @magentoApiDataFixture Magento/Checkout/_files/quote_with_address_saved.php - */ - public function testSetMethodForMyCart() - { - $this->_markTestAsRestOnly(); - - $this->quote->load('test_order_1', 'reserved_order_id'); - - /** @var \Magento\Integration\Api\CustomerTokenServiceInterface $customerTokenService */ - $customerTokenService = $this->objectManager->create( - 'Magento\Integration\Api\CustomerTokenServiceInterface' - ); - $token = $customerTokenService->createCustomerAccessToken('customer@example.com', 'password'); - - $serviceInfo = [ - 'rest' => [ - 'resourcePath' => '/V1/carts/mine/selected-shipping-method', - 'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_PUT, - 'token' => $token - ] - ]; - - $requestData = [ - 'cartId' => 999, - 'carrierCode' => 'flatrate', - 'methodCode' => 'flatrate', - ]; // cartId 999 will be overridden - $shippingAddress = $this->quote->getShippingAddress(); - $shippingAddress->setCollectShippingRates(true); - $this->totalsCollector->collectAddressTotals($this->quote, $shippingAddress); - $shippingAddress->save(); - $result = $this->_webApiCall($serviceInfo, $requestData); - $this->assertEquals(true, $result); - - /** @var \Magento\Quote\Api\ShippingMethodManagementInterface $shippingMethodManagementService */ - $shippingMethodManagementService = $this->objectManager->create( - 'Magento\Quote\Api\ShippingMethodManagementInterface' - ); - $shippingMethod = $shippingMethodManagementService->get($this->quote->getId()); - - $this->assertNotNull($shippingMethod); - $this->assertEquals('flatrate', $shippingMethod->getCarrierCode()); - $this->assertEquals('flatrate', $shippingMethod->getMethodCode()); - } - - /** - * @magentoApiDataFixture Magento/Checkout/_files/quote_with_shipping_method.php - */ - public function testGetMethod() - { - $this->quote->load('test_order_1', 'reserved_order_id'); - - /** @var \Magento\Quote\Api\ShippingMethodManagementInterface $shippingMethodManagementService */ - $shippingMethodManagementService = $this->objectManager->create( - 'Magento\Quote\Api\ShippingMethodManagementInterface' - ); - - $shippingAddress = $this->quote->getShippingAddress(); - $shippingAddress->setCollectShippingRates(true); - $this->totalsCollector->collectAddressTotals($this->quote, $shippingAddress); - $shippingAddress->save(); - list($carrierCode, $methodCode) = explode('_', $shippingAddress->getShippingMethod()); - list($carrierTitle, $methodTitle) = explode(' - ', $shippingAddress->getShippingDescription()); - $shippingMethod = $shippingMethodManagementService->get($this->quote->getId()); - - $data = [ - ShippingMethodInterface::KEY_CARRIER_CODE => $carrierCode, - ShippingMethodInterface::KEY_METHOD_CODE => $methodCode, - ShippingMethodInterface::KEY_CARRIER_TITLE => $carrierTitle, - ShippingMethodInterface::KEY_METHOD_TITLE => $methodTitle, - ShippingMethodInterface::KEY_BASE_SHIPPING_AMOUNT => $shippingAddress->getBaseShippingAmount(), - ShippingMethodInterface::KEY_SHIPPING_AMOUNT => $shippingAddress->getShippingAmount(), - ShippingMethodInterface::KEY_AVAILABLE => true, - ShippingMethodInterface::KEY_ERROR_MESSAGE => null, - ShippingMethodInterface::KEY_PRICE_EXCL_TAX => $shippingMethod->getPriceExclTax(), - ShippingMethodInterface::KEY_PRICE_INCL_TAX => $shippingMethod->getPriceInclTax(), - ]; - - $requestData = ["cartId" => $this->quote->getId()]; - $this->assertEquals( - $data, - $this->_webApiCall($this->getSelectedMethodServiceInfo($this->quote->getId()), $requestData) - ); - } - - /** - * @magentoApiDataFixture Magento/Checkout/_files/quote_with_virtual_product_and_address.php - */ - public function testGetMethodOfVirtualCart() - { - $quote = $this->objectManager->create('Magento\Quote\Model\Quote'); - $cartId = $quote->load('test_order_with_virtual_product', 'reserved_order_id')->getId(); - - $result = $this->_webApiCall($this->getSelectedMethodServiceInfo($cartId), ["cartId" => $cartId]); - $this->assertEquals([], $result); - } - - /** - * @magentoApiDataFixture Magento/Checkout/_files/quote_with_address_saved.php - */ - public function testGetMethodOfCartWithNoShippingMethod() - { - $quote = $this->objectManager->create('Magento\Quote\Model\Quote'); - $cartId = $quote->load('test_order_1', 'reserved_order_id')->getId(); - - $result = $this->_webApiCall($this->getSelectedMethodServiceInfo($cartId), ["cartId" => $cartId]); - $this->assertEquals([], $result); - } - - /** - * @magentoApiDataFixture Magento/Customer/_files/customer.php - * @magentoApiDataFixture Magento/Checkout/_files/quote_with_shipping_method.php - */ - public function testGetMethodForMyCart() - { - $this->_markTestAsRestOnly(); - - $this->quote->load('test_order_1', 'reserved_order_id'); - - /** @var \Magento\Integration\Api\CustomerTokenServiceInterface $customerTokenService */ - $customerTokenService = $this->objectManager->create( - 'Magento\Integration\Api\CustomerTokenServiceInterface' - ); - $token = $customerTokenService->createCustomerAccessToken('customer@example.com', 'password'); - - /** @var \Magento\Quote\Api\ShippingMethodManagementInterface $shippingMethodManagementService */ - $shippingAddress = $this->quote->getShippingAddress(); - $shippingAddress->setCollectShippingRates(true); - $this->totalsCollector->collectAddressTotals($this->quote, $shippingAddress); - $shippingAddress->save(); - - $serviceInfo = [ - 'rest' => [ - 'resourcePath' => '/V1/carts/mine/selected-shipping-method', - 'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_GET, - 'token' => $token - ] - ]; - - $result = $this->_webApiCall($serviceInfo, []); - $this->assertEquals('flatrate', $result[ShippingMethodInterface::KEY_CARRIER_CODE]); - $this->assertEquals('flatrate', $result[ShippingMethodInterface::KEY_METHOD_CODE]); - } - /** * @magentoApiDataFixture Magento/Checkout/_files/quote_with_virtual_product_and_address.php * @@ -359,26 +124,6 @@ class ShippingMethodManagementTest extends WebapiAbstract $this->assertEquals($expectedData, $result[0]); } - /** - * @param string $cartId - * @return array - * @SuppressWarnings(PHPMD.UnusedLocalVariable) - */ - protected function getSelectedMethodServiceInfo($cartId) - { - return $serviceInfo = [ - 'rest' => [ - 'resourcePath' => self::RESOURCE_PATH . $cartId . '/selected-shipping-method', - 'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_GET, - ], - 'soap' => [ - 'service' => self::SERVICE_NAME, - 'serviceVersion' => self::SERVICE_VERSION, - 'operation' => self::SERVICE_NAME . 'Get', - ], - ]; - } - /** * Service info * diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Handler/OrderInjectable/Webapi.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Handler/OrderInjectable/Webapi.php index bdfbc3b5d157ddb23c3b4b9fab69c1abf2d27738..6e639a8a6e9c49466afd5555dbfbe9c26af9e495 100644 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Handler/OrderInjectable/Webapi.php +++ b/dev/tests/functional/tests/app/Magento/Sales/Test/Handler/OrderInjectable/Webapi.php @@ -62,9 +62,8 @@ class Webapi extends AbstractWebapi implements OrderInjectableInterface $this->url = $_ENV['app_frontend_url'] . 'rest/V1/carts/' . (int)$this->quote; $this->setProducts($fixture); $this->setCoupon($fixture); - $this->setAddress($fixture, 'billing'); - $this->setAddress($fixture, 'shipping'); - $this->setShippingMethod($fixture); + $this->setBillingAddress($fixture); + $this->setShippingInformation($fixture); $this->setPaymentMethod($fixture); $orderId = $this->placeOrder(); @@ -101,7 +100,7 @@ class Webapi extends AbstractWebapi implements OrderInjectableInterface */ protected function setProducts(OrderInjectable $order) { - $url = $_ENV['app_frontend_url'] . 'rest/V1/carts/items'; + $url = $_ENV['app_frontend_url'] . 'rest/V1/carts/' . $this->quote . '/items'; $products = $order->getEntityId()['products']; foreach ($products as $product) { $data = [ @@ -152,26 +151,17 @@ class Webapi extends AbstractWebapi implements OrderInjectableInterface } /** - * Set address to quote. + * Set billing address to quote. * * @param OrderInjectable $order - * @param string $addressType billing|shipping * @return void * @throws \Exception */ - protected function setAddress(OrderInjectable $order, $addressType) + protected function setBillingAddress(OrderInjectable $order) { - $url = $this->url . "/$addressType-address"; - if ($addressType == 'billing') { - $address = $order->getBillingAddressId(); - } else { - if (!$order->hasData('shipping_method')) { - return; - } - $address = $order->hasData('shipping_address_id') - ? $order->getShippingAddressId() - : $order->getBillingAddressId(); - } + $url = $this->url . "/billing-address"; + $address = $order->getBillingAddressId(); + unset($address['default_billing']); unset($address['default_shipping']); foreach (array_keys($this->mappingData) as $key) { @@ -185,32 +175,48 @@ class Webapi extends AbstractWebapi implements OrderInjectableInterface $this->webapiTransport->close(); if (!is_numeric($response)) { $this->eventManager->dispatchEvent(['webapi_failed'], [$response]); - throw new \Exception("Could not set $addressType addresss to quote!"); + throw new \Exception("Could not set billing addresss to quote!"); } } /** - * Set shipping method to quote. + * Set shipping information to quote * * @param OrderInjectable $order - * @return void * @throws \Exception */ - protected function setShippingMethod(OrderInjectable $order) + protected function setShippingInformation(OrderInjectable $order) { if (!$order->hasData('shipping_method')) { return; } - $url = $this->url . '/selected-shipping-method'; + $url = $this->url . '/shipping-information'; list($carrier, $method) = explode('_', $order->getShippingMethod()); + + $address = $order->hasData('shipping_address_id') + ? $order->getShippingAddressId() + : $order->getBillingAddressId(); + + unset($address['default_billing']); + unset($address['default_shipping']); + foreach (array_keys($this->mappingData) as $key) { + if (isset($address[$key])) { + $address[$key] = $this->mappingData[$key][$address[$key]]; + } + } + $data = [ - "carrierCode" => $carrier, - "methodCode" => $method + 'addressInformation' => [ + 'shippingAddress' => $address, + 'shippingMethodCode' => $method, + 'shippingCarrierCode' => $carrier, + ] ]; - $this->webapiTransport->write($url, $data, WebapiDecorator::PUT); + + $this->webapiTransport->write($url, $data, WebapiDecorator::POST); $response = json_decode($this->webapiTransport->read(), true); $this->webapiTransport->close(); - if ($response !== true) { + if (!isset($response['payment_methods'], $response['totals'])) { $this->eventManager->dispatchEvent(['webapi_failed'], [$response]); throw new \Exception('Could not set shipping method to quote!'); } diff --git a/dev/tests/integration/testsuite/Magento/Catalog/_files/quote_with_product_and_custom_options.php b/dev/tests/integration/testsuite/Magento/Catalog/_files/quote_with_product_and_custom_options.php index 1f78762dab688ee589bab2d01986223489463555..490bde24775b262e5c3bb9c499aa2b0d40aeaba0 100644 --- a/dev/tests/integration/testsuite/Magento/Catalog/_files/quote_with_product_and_custom_options.php +++ b/dev/tests/integration/testsuite/Magento/Catalog/_files/quote_with_product_and_custom_options.php @@ -29,8 +29,8 @@ $product = $productRepository->get('simple'); /** @var \Magento\Quote\Model\Quote $quote */ $quote = $objectManager->create('Magento\Quote\Model\Quote'); -/** @var \Magento\Quote\Model\Quote\Item\Repository $quoteItemRepository */ -$quoteItemRepository = $objectManager->create('Magento\Quote\Model\Quote\Item\Repository'); +/** @var \Magento\Quote\Api\CartItemRepositoryInterface $quoteItemRepository */ +$quoteItemRepository = $objectManager->create('\Magento\Quote\Api\CartItemRepositoryInterface'); /** @var \Magento\Quote\Api\Data\CartItemInterface $cartItem */ $cartItem = $objectManager->create('Magento\Quote\Api\Data\CartItemInterface'); /** @var \Magento\Quote\Model\Quote\ProductOption $productOption */ diff --git a/dev/tests/integration/testsuite/Magento/Paypal/_files/quote_payment_express.php b/dev/tests/integration/testsuite/Magento/Paypal/_files/quote_payment_express.php index f6231c2b8ee833218ae6fd24104da5174ab745e1..be4608b73fd656b953ceb49221950e808ee336fa 100644 --- a/dev/tests/integration/testsuite/Magento/Paypal/_files/quote_payment_express.php +++ b/dev/tests/integration/testsuite/Magento/Paypal/_files/quote_payment_express.php @@ -92,7 +92,7 @@ $quote->collectTotals()->save(); $quote->setCustomerEmail('admin@example.com'); -/** @var $service \Magento\Quote\Model\QuoteManagement */ +/** @var $service \Magento\Quote\Api\CartManagementInterface */ $service = \Magento\TestFramework\Helper\Bootstrap::getObjectManager() - ->create('Magento\Quote\Model\QuoteManagement'); + ->create('\Magento\Quote\Api\CartManagementInterface'); $order = $service->submit($quote, ['increment_id' => '100000002']); diff --git a/dev/tests/integration/testsuite/Magento/Paypal/_files/quote_payment_express_with_customer.php b/dev/tests/integration/testsuite/Magento/Paypal/_files/quote_payment_express_with_customer.php index 85bb114f679a206416136fd616703419e5ba796a..50e73b980ef84e5de6690670ff56df93a4dbf1b3 100644 --- a/dev/tests/integration/testsuite/Magento/Paypal/_files/quote_payment_express_with_customer.php +++ b/dev/tests/integration/testsuite/Magento/Paypal/_files/quote_payment_express_with_customer.php @@ -80,7 +80,7 @@ $quote->getShippingAddress()->setCollectShippingRates(true); $quote->getPayment()->setMethod(\Magento\Paypal\Model\Config::METHOD_WPS_EXPRESS); $quote->collectTotals()->save(); -/** @var $service \Magento\Quote\Model\QuoteManagement */ +/** @var $service \Magento\Quote\Api\CartManagementInterface */ $service = \Magento\TestFramework\Helper\Bootstrap::getObjectManager() - ->create('Magento\Quote\Model\QuoteManagement'); + ->create('\Magento\Quote\Api\CartManagementInterface'); $order = $service->submit($quote, ['increment_id' => '100000002']); diff --git a/dev/tests/integration/testsuite/Magento/Paypal/_files/quote_payment_payflow.php b/dev/tests/integration/testsuite/Magento/Paypal/_files/quote_payment_payflow.php index cf20591b91803b5f6a62eed4d48ddd6e94e80591..7a3928f8f41b4ee2bb4bcba6d6d13740b6a0d93e 100644 --- a/dev/tests/integration/testsuite/Magento/Paypal/_files/quote_payment_payflow.php +++ b/dev/tests/integration/testsuite/Magento/Paypal/_files/quote_payment_payflow.php @@ -104,7 +104,7 @@ $payment->setMethod(\Magento\Paypal\Model\Config::METHOD_WPS_EXPRESS); $quote->getPayment()->setMethod(\Magento\Paypal\Model\Config::METHOD_WPS_EXPRESS)->save(); -/** @var $service \Magento\Quote\Model\QuoteManagement */ +/** @var $service \Magento\Quote\Api\CartManagementInterface */ $service = \Magento\TestFramework\Helper\Bootstrap::getObjectManager() - ->create('Magento\Quote\Model\QuoteManagement'); + ->create('\Magento\Quote\Api\CartManagementInterface'); $order = $service->submit($quote, ['increment_id' => '100000001']); diff --git a/dev/tests/integration/testsuite/Magento/Quote/Model/Quote/Item/RepositoryTest.php b/dev/tests/integration/testsuite/Magento/Quote/Model/Quote/Item/RepositoryTest.php index b7e78e977191f0567e6766321b3628c0c506ac4b..d604ba2d9662e8434b5284447655e449e9a6dbcf 100644 --- a/dev/tests/integration/testsuite/Magento/Quote/Model/Quote/Item/RepositoryTest.php +++ b/dev/tests/integration/testsuite/Magento/Quote/Model/Quote/Item/RepositoryTest.php @@ -20,8 +20,8 @@ class RepositoryTest extends \PHPUnit_Framework_TestCase 'email' => 'admin@example.com' ]; - /** @var \Magento\Quote\Model\Quote\Item\Repository $quoteItemRepository */ - $quoteItemRepository = Bootstrap::getObjectManager()->create('Magento\Quote\Model\Quote\Item\Repository'); + /** @var \Magento\Quote\Api\CartItemRepositoryInterface $quoteItemRepository */ + $quoteItemRepository = Bootstrap::getObjectManager()->create('\Magento\Quote\Api\CartItemRepositoryInterface'); /** @var \Magento\Quote\Model\Quote $quote */ $quote = Bootstrap::getObjectManager()->create('Magento\Quote\Model\Quote'); $quoteId = $quote->load('test01', 'reserved_order_id')->getId(); diff --git a/dev/tests/integration/testsuite/Magento/Quote/Model/QuoteManagementTest.php b/dev/tests/integration/testsuite/Magento/Quote/Model/QuoteManagementTest.php index 68635c4369b3c313ebe6c2ef561242bb4763b06a..1b67d126ac6e9a5c9d9ebdda27050d7a32ee42a7 100644 --- a/dev/tests/integration/testsuite/Magento/Quote/Model/QuoteManagementTest.php +++ b/dev/tests/integration/testsuite/Magento/Quote/Model/QuoteManagementTest.php @@ -27,8 +27,8 @@ class QuoteManagementTest extends \PHPUnit_Framework_TestCase $quote->load('test01', 'reserved_order_id'); /** Execute SUT */ - /** @var \Magento\Quote\Model\QuoteManagement $model */ - $model = $objectManager->create('\Magento\Quote\Model\QuoteManagement'); + /** @var \Magento\Quote\Api\CartManagementInterface $model */ + $model = $objectManager->create('\Magento\Quote\Api\CartManagementInterface'); $order = $model->submit($quote); /** Check if SUT caused expected effects */ diff --git a/dev/tests/integration/testsuite/Magento/Quote/Model/QuoteRepositoryTest.php b/dev/tests/integration/testsuite/Magento/Quote/Model/QuoteRepositoryTest.php index 0d7b1ea35f3b7ca356ea0e36875f68e454ebd040..b617f9b8fd2249b88d055c86d0c94c8c90ac302e 100644 --- a/dev/tests/integration/testsuite/Magento/Quote/Model/QuoteRepositoryTest.php +++ b/dev/tests/integration/testsuite/Magento/Quote/Model/QuoteRepositoryTest.php @@ -23,8 +23,8 @@ class QuoteRepositoryTest extends \PHPUnit_Framework_TestCase /** @var \Magento\Framework\Api\SearchCriteriaBuilder $searchCriteriaBuilder */ $searchCriteriaBuilder = Bootstrap::getObjectManager()->create('Magento\Framework\Api\SearchCriteriaBuilder'); - /** @var \Magento\Quote\Model\QuoteRepository $quoteRepository */ - $quoteRepository = Bootstrap::getObjectManager()->create('Magento\Quote\Model\QuoteRepository'); + /** @var \Magento\Quote\Api\CartRepositoryInterface $quoteRepository */ + $quoteRepository = Bootstrap::getObjectManager()->create('Magento\Quote\Api\CartRepositoryInterface'); $searchResult = $quoteRepository->getList($searchCriteriaBuilder->create()); $items = $searchResult->getItems(); /** @var \Magento\Quote\Api\Data\CartInterface $actualQuote */ diff --git a/dev/tests/integration/testsuite/Magento/Sales/_files/order_info.php b/dev/tests/integration/testsuite/Magento/Sales/_files/order_info.php index 38cae04743920bbb33194832aa37ffebac26f458..ac4cacb4e18d3e476b0912a24a178b92666e748a 100644 --- a/dev/tests/integration/testsuite/Magento/Sales/_files/order_info.php +++ b/dev/tests/integration/testsuite/Magento/Sales/_files/order_info.php @@ -64,7 +64,7 @@ $quote->collectTotals(); $quote->save(); $quote->setCustomerEmail('admin@example.com'); -$quoteManagement = $objectManager->create('Magento\Quote\Model\QuoteManagement'); +$quoteManagement = $objectManager->create('\Magento\Quote\Api\CartManagementInterface'); $order = $quoteManagement->submit($quote, ['increment_id' => '100000001']); diff --git a/dev/tests/static/testsuite/Magento/Test/Legacy/_files/obsolete_classes.php b/dev/tests/static/testsuite/Magento/Test/Legacy/_files/obsolete_classes.php index cb80c5cf1519d361cff0ca0284d06fbad8d285c9..43db6a4f4a408f454be306ef1c75e7fe6651aec8 100755 --- a/dev/tests/static/testsuite/Magento/Test/Legacy/_files/obsolete_classes.php +++ b/dev/tests/static/testsuite/Magento/Test/Legacy/_files/obsolete_classes.php @@ -4102,5 +4102,10 @@ return [ ['Magento\GoogleOptimizer\Model\Observer\Block\Category\Tab', 'Magento\GoogleOptimizer\Observer\*'], ['Magento\Payment\Model\Observer', 'Magento\Payment\Observer\*'], ['Magento\Tax\Observer\AggregateSalesReportTaxData', 'Magento\Tax\Model\AggregateSalesReportTaxData'], - ['Magento\Developer\Console\Command\CssDeployCommand'] + ['Magento\Developer\Console\Command\CssDeployCommand'], + [ + 'Magento\Quote\Api\GuestShippingAddressManagementInterface', + 'Magento\Quote\Model\GuestCart\GuestShippingAddressManagementInterface' + ], + ['Magento\Quote\Api\ShippingAddressManagementInterface', 'Magento\Quote\Model\ShippingAddressManagementInterface'] ]; diff --git a/dev/tests/static/testsuite/Magento/Test/Legacy/_files/obsolete_methods.php b/dev/tests/static/testsuite/Magento/Test/Legacy/_files/obsolete_methods.php index ca7f4471723dc3df3850a1e2941c1adab9aa08fd..edc468092661d04da035280f5cb42dc98412bcc6 100644 --- a/dev/tests/static/testsuite/Magento/Test/Legacy/_files/obsolete_methods.php +++ b/dev/tests/static/testsuite/Magento/Test/Legacy/_files/obsolete_methods.php @@ -2485,4 +2485,10 @@ return [ ['setCcExpYear', 'Magento\Quote\Api\Data\PaymentInterface'], ['getCcExpMonth', 'Magento\Quote\Api\Data\PaymentInterface'], ['setCcExpMonth', 'Magento\Quote\Api\Data\PaymentInterface'], + ['getPaymentById', 'Magento\Quote\Model\Quote'], + ['create', 'Magento\Quote\Model\QuoteRepository'], + ['set', 'Magento\Quote\Api\GuestShippingMethodManagementInterface', 'Magento\Quote\Model\GuestCart\GuestShippingMethodManagementInterface::set'], + ['get', 'Magento\Quote\Api\GuestShippingMethodManagementInterface', 'Magento\Quote\Model\GuestCart\GuestShippingMethodManagementInterface::get'], + ['get', 'Magento\Quote\Api\ShippingMethodManagementInterface', 'Magento\Quote\Model\ShippingMethodManagementInterface::get'], + ['set', 'Magento\Quote\Api\ShippingMethodManagementInterface', 'Magento\Quote\Model\ShippingMethodManagementInterface::get'], ]; diff --git a/setup/performance-toolkit/benchmark.jmx b/setup/performance-toolkit/benchmark.jmx index c5060028b3454fdf63b76b3faf7467e57b5cdf35..51b35ec79dd531982c8fbefa7bb2102d330363fa 100644 --- a/setup/performance-toolkit/benchmark.jmx +++ b/setup/performance-toolkit/benchmark.jmx @@ -5027,7 +5027,7 @@ vars.put("loadType", "Guest");</stringProp> <stringProp name="HTTPSampler.response_timeout"/> <stringProp name="HTTPSampler.protocol"/> <stringProp name="HTTPSampler.contentEncoding"/> - <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/carts/${cart_id}/shipping-information</stringProp> + <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/guest-carts/${cart_id}/shipping-information</stringProp> <stringProp name="HTTPSampler.method">POST</stringProp> <boolProp name="HTTPSampler.follow_redirects">true</boolProp> <boolProp name="HTTPSampler.auto_redirects">false</boolProp>