diff --git a/app/code/Magento/Wishlist/Test/Unit/Controller/Shared/AllcartTest.php b/app/code/Magento/Wishlist/Test/Unit/Controller/Shared/AllcartTest.php new file mode 100644 index 0000000000000000000000000000000000000000..fbd2ce5f641ac78949c061f63885d182daaad5c9 --- /dev/null +++ b/app/code/Magento/Wishlist/Test/Unit/Controller/Shared/AllcartTest.php @@ -0,0 +1,163 @@ +<?php +/** + * Copyright © 2015 Magento. All rights reserved. + * See COPYING.txt for license details. + */ + +namespace Magento\Wishlist\Test\Unit\Controller\Shared; + +class AllcartTest extends \PHPUnit_Framework_TestCase +{ + /** + * @var \Magento\Wishlist\Controller\Shared\WishlistProvider|\PHPUnit_Framework_MockObject_MockObject + */ + protected $wishlistProvider; + + /** + * @var \Magento\Framework\App\Request\Http|\PHPUnit_Framework_MockObject_MockObject + */ + protected $request; + + /** + * @var \Magento\Wishlist\Model\ItemCarrier|\PHPUnit_Framework_MockObject_MockObject + */ + protected $itemCarrier; + + /** + * @var \Magento\Framework\App\Response\Http|\PHPUnit_Framework_MockObject_MockObject + */ + protected $response; + + /** + * @var \Magento\Framework\App\Action\Context|\PHPUnit_Framework_MockObject_MockObject + */ + protected $context; + + protected function setUp() + { + $this->wishlistProvider = $this->getMock( + '\Magento\Wishlist\Controller\Shared\WishlistProvider', + [], + [], + '', + false + ); + $this->request = $this->getMock('Magento\Framework\App\Request\Http', [], [], '', false); + $this->itemCarrier = $this->getMock('Magento\Wishlist\Model\ItemCarrier', [], [], '', false); + $this->context = $this->getMock('Magento\Framework\App\Action\Context', [], [], '', false); + $this->response = $this->getMock('Magento\Framework\App\Response\Http', [], [], '', false); + } + + protected function prepareContext() + { + $om = $this->getMock('Magento\Framework\App\ObjectManager', [], [], '', false); + $eventManager = $this->getMock('Magento\Framework\Event\Manager', null, [], '', false); + $url = $this->getMock('Magento\Framework\Url', [], [], '', false); + $actionFlag = $this->getMock('Magento\Framework\App\ActionFlag', [], [], '', false); + $redirect = $this->getMock('\Magento\Store\App\Response\Redirect', [], [], '', false); + $view = $this->getMock('Magento\Framework\App\View', [], [], '', false); + $messageManager = $this->getMock('Magento\Framework\Message\Manager', [], [], '', false); + + $this->context + ->expects($this->any()) + ->method('getObjectManager') + ->will($this->returnValue($om)); + $this->context + ->expects($this->any()) + ->method('getRequest') + ->will($this->returnValue($this->request)); + $this->context + ->expects($this->any()) + ->method('getResponse') + ->will($this->returnValue($this->response)); + $this->context + ->expects($this->any()) + ->method('getEventManager') + ->will($this->returnValue($eventManager)); + $this->context + ->expects($this->any()) + ->method('getUrl') + ->will($this->returnValue($url)); + $this->context + ->expects($this->any()) + ->method('getActionFlag') + ->will($this->returnValue($actionFlag)); + $this->context + ->expects($this->any()) + ->method('getRedirect') + ->will($this->returnValue($redirect)); + $this->context + ->expects($this->any()) + ->method('getView') + ->will($this->returnValue($view)); + $this->context + ->expects($this->any()) + ->method('getMessageManager') + ->will($this->returnValue($messageManager)); + } + + public function getController() + { + $this->prepareContext(); + return new \Magento\Wishlist\Controller\Shared\Allcart( + $this->context, + $this->wishlistProvider, + $this->itemCarrier + ); + } + + public function testExecuteWithNoWishlist() + { + $this->wishlistProvider->expects($this->once()) + ->method('getWishlist') + ->willReturn(false); + + $this->request + ->expects($this->once()) + ->method('initForward') + ->will($this->returnValue(true)); + $this->request + ->expects($this->once()) + ->method('setActionName') + ->with('noroute') + ->will($this->returnValue(true)); + $this->request + ->expects($this->once()) + ->method('setDispatched') + ->with(false) + ->will($this->returnValue(true)); + + $controller = $this->getController(); + $controller->execute(); + } + + public function testExecuteWithWishlist() + { + $wishlist = $this->getMockBuilder('Magento\Wishlist\Model\Wishlist') + ->disableOriginalConstructor() + ->getMock(); + $this->wishlistProvider->expects($this->once()) + ->method('getWishlist') + ->willReturn($wishlist); + + $this->request + ->expects($this->once()) + ->method('getParam') + ->with('qty') + ->will($this->returnValue(2)); + + $this->itemCarrier + ->expects($this->once()) + ->method('moveAllToCart') + ->with($wishlist, 2) + ->will($this->returnValue('http://redirect-url.com')); + + $this->response + ->expects($this->once()) + ->method('setRedirect') + ->will($this->returnValue('http://redirect-url.com')); + + $controller = $this->getController(); + $controller->execute(); + } +} diff --git a/app/code/Magento/Wishlist/Test/Unit/Helper/RssTest.php b/app/code/Magento/Wishlist/Test/Unit/Helper/RssTest.php new file mode 100644 index 0000000000000000000000000000000000000000..5a4959ba7e961db3e220fb274bc261f932a5de05 --- /dev/null +++ b/app/code/Magento/Wishlist/Test/Unit/Helper/RssTest.php @@ -0,0 +1,252 @@ +<?php +/** + * Copyright © 2015 Magento. All rights reserved. + * See COPYING.txt for license details. + */ +namespace Magento\Wishlist\Test\Unit\Helper; + +class RssTest extends \PHPUnit_Framework_TestCase +{ + /** + * @var \Magento\Wishlist\Helper\Rss + */ + protected $model; + + /** + * @var \Magento\Wishlist\Model\WishlistFactory|\PHPUnit_Framework_MockObject_MockObject + */ + protected $wishlistFactoryMock; + + /** + * @var \Magento\Framework\App\RequestInterface|\PHPUnit_Framework_MockObject_MockObject + */ + protected $requestMock; + + /** + * @var \Magento\Framework\Url\DecoderInterface|\PHPUnit_Framework_MockObject_MockObject + */ + protected $urlDecoderMock; + + /** + * @var \Magento\Customer\Api\Data\CustomerInterfaceFactory|\PHPUnit_Framework_MockObject_MockObject + */ + protected $customerFactoryMock; + + /** + * @var \Magento\Customer\Model\Session|\PHPUnit_Framework_MockObject_MockObject + */ + protected $customerSessionMock; + + /** + * @var \Magento\Customer\Api\CustomerRepositoryInterface|\PHPUnit_Framework_MockObject_MockObject + */ + protected $customerRepositoryMock; + + /** + * @var \Magento\Framework\Module\Manager|\PHPUnit_Framework_MockObject_MockObject + */ + protected $moduleManagerMock; + + /** + * @var \Magento\Framework\App\Config\ScopeConfigInterface|\PHPUnit_Framework_MockObject_MockObject + */ + protected $scopeConfigMock; + + public function setUp() + { + $this->wishlistFactoryMock = $this->getMockBuilder('Magento\Wishlist\Model\WishlistFactory') + ->disableOriginalConstructor() + ->setMethods(['create']) + ->getMock(); + + $this->requestMock = $this->getMockBuilder('Magento\Framework\App\RequestInterface') + ->getMock(); + + $this->urlDecoderMock = $this->getMockBuilder('Magento\Framework\Url\DecoderInterface') + ->getMock(); + + $this->customerFactoryMock = $this->getMockBuilder('Magento\Customer\Api\Data\CustomerInterfaceFactory') + ->disableOriginalConstructor() + ->getMock(); + + $this->customerSessionMock = $this->getMockBuilder('Magento\Customer\Model\Session') + ->disableOriginalConstructor() + ->getMock(); + + $this->customerRepositoryMock = $this->getMockBuilder('Magento\Customer\Api\CustomerRepositoryInterface') + ->getMock(); + + $this->moduleManagerMock = $this->getMockBuilder('Magento\Framework\Module\Manager') + ->disableOriginalConstructor() + ->getMock(); + + $this->scopeConfigMock = $this->getMockBuilder('Magento\Framework\App\Config\ScopeConfigInterface') + ->getMock(); + + $objectManager = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this); + + $this->model = $objectManager->getObject( + 'Magento\Wishlist\Helper\Rss', + [ + 'wishlistFactory' => $this->wishlistFactoryMock, + 'httpRequest' => $this->requestMock, + 'urlDecoder' => $this->urlDecoderMock, + 'customerFactory' => $this->customerFactoryMock, + 'customerSession' => $this->customerSessionMock, + 'customerRepository' => $this->customerRepositoryMock, + 'moduleManager' => $this->moduleManagerMock, + 'scopeConfig' => $this->scopeConfigMock, + ] + ); + } + + public function testGetWishlistWithWishlistId() + { + $wishlistId = 1; + + $wishlist = $this->getMockBuilder('Magento\Wishlist\Model\Wishlist') + ->disableOriginalConstructor() + ->getMock(); + $this->wishlistFactoryMock->expects($this->once()) + ->method('create') + ->with([]) + ->willReturn($wishlist); + + $this->requestMock->expects($this->once()) + ->method('getParam') + ->with('wishlist_id', null) + ->willReturn($wishlistId); + + $wishlist->expects($this->once()) + ->method('load') + ->with($wishlistId, null) + ->willReturnSelf(); + + $this->assertEquals($wishlist, $this->model->getWishlist()); + // Check that wishlist is cached + $this->assertSame($wishlist, $this->model->getWishlist()); + } + + public function testGetWishlistWithCustomerId() + { + $customerId = 1; + $data = $customerId . ',2'; + + $wishlist = $this->getMockBuilder('Magento\Wishlist\Model\Wishlist') + ->disableOriginalConstructor() + ->getMock(); + $this->wishlistFactoryMock->expects($this->once()) + ->method('create') + ->with([]) + ->willReturn($wishlist); + + $this->requestMock->expects($this->at(0)) + ->method('getParam') + ->with('wishlist_id', null) + ->willReturn(''); + + $this->urlDecoderMock->expects($this->any()) + ->method('decode') + ->willReturnArgument(0); + + $this->requestMock->expects($this->at(1)) + ->method('getParam') + ->with('data', null) + ->willReturn($data); + + $this->customerSessionMock->expects($this->once()) + ->method('getCustomerId') + ->willReturn(0); + + $customer = $this->getMockBuilder('Magento\Customer\Api\Data\CustomerInterface') + ->disableOriginalConstructor() + ->getMock(); + $this->customerFactoryMock->expects($this->once()) + ->method('create') + ->with([]) + ->willReturn($customer); + + $this->customerRepositoryMock->expects($this->never()) + ->method('getById'); + + $customer->expects($this->exactly(2)) + ->method('getId') + ->willReturn($customerId); + + $wishlist->expects($this->once()) + ->method('loadByCustomerId') + ->with($customerId, false) + ->willReturnSelf(); + + $this->assertEquals($wishlist, $this->model->getWishlist()); + } + + public function testGetCustomerWithSession() + { + $customerId = 1; + $data = $customerId . ',2'; + + $this->urlDecoderMock->expects($this->any()) + ->method('decode') + ->willReturnArgument(0); + + $this->requestMock->expects($this->once()) + ->method('getParam') + ->with('data', null) + ->willReturn($data); + + $this->customerSessionMock->expects($this->once()) + ->method('getCustomerId') + ->willReturn($customerId); + + $customer = $this->getMockBuilder('Magento\Customer\Api\Data\CustomerInterface') + ->disableOriginalConstructor() + ->getMock(); + + $this->customerRepositoryMock->expects($this->once()) + ->method('getById') + ->with($customerId) + ->willReturn($customer); + + $this->customerFactoryMock->expects($this->never()) + ->method('create'); + + $this->assertEquals($customer, $this->model->getCustomer()); + // Check that customer is cached + $this->assertSame($customer, $this->model->getCustomer()); + } + + /** + * @param bool $isModuleEnabled + * @param bool $isWishlistActive + * @param bool $result + * @dataProvider dataProviderIsRssAllow + */ + public function testIsRssAllow($isModuleEnabled, $isWishlistActive, $result) + { + $this->moduleManagerMock->expects($this->once()) + ->method('isEnabled') + ->with('Magento_Rss') + ->willReturn($isModuleEnabled); + + $this->scopeConfigMock->expects($this->any()) + ->method('isSetFlag') + ->with('rss/wishlist/active', \Magento\Store\Model\ScopeInterface::SCOPE_STORE) + ->willReturn($isWishlistActive); + + $this->assertEquals($result, $this->model->isRssAllow()); + } + + /** + * @return array + */ + public function dataProviderIsRssAllow() + { + return [ + [false, false, false], + [true, false, false], + [false, true, false], + [true, true, true], + ]; + } +} diff --git a/dev/tests/integration/testsuite/Magento/Wishlist/Helper/RssTest.php b/dev/tests/integration/testsuite/Magento/Wishlist/Helper/RssTest.php deleted file mode 100644 index 72264a8ccf60d40c0a06515cdfc02b31e26e3297..0000000000000000000000000000000000000000 --- a/dev/tests/integration/testsuite/Magento/Wishlist/Helper/RssTest.php +++ /dev/null @@ -1,125 +0,0 @@ -<?php -/** - * Copyright © 2015 Magento. All rights reserved. - * See COPYING.txt for license details. - */ - -// @codingStandardsIgnoreFile - -namespace Magento\Wishlist\Helper; - -class RssTest extends \PHPUnit_Framework_TestCase -{ - /** - * @var \Magento\Customer\Model\Session - */ - protected $_customerSession; - - /** - * Core data - * - * @var \Magento\Framework\Url\EncoderInterface - */ - protected $urlEncoder; - - /** - * @var \Magento\Framework\ObjectManagerInterface - */ - protected $_objectManager; - - /** - * @var \Magento\Framework\App\Helper\Context - */ - protected $_contextHelper; - - /** - * @var \Magento\Wishlist\Helper\Rss - */ - protected $_wishlistHelper; - - /** - * @var int - */ - protected $_fixtureCustomerId; - - protected function setUp() - { - $this->_fixtureCustomerId = 1; - - $this->_objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager(); - $this->_customerSession = $this->_objectManager->create('Magento\Customer\Model\Session'); - $this->urlEncoder = $this->_objectManager->create('Magento\Framework\Url\EncoderInterface'); - - $this->_contextHelper = $this->_objectManager->create('Magento\Framework\App\Helper\Context'); - $request = $this->_contextHelper->getRequest(); - $request->setParam('data', $this->urlEncoder->encode($this->_fixtureCustomerId)); - - $this->_wishlistHelper = $this->_objectManager->create('Magento\Wishlist\Helper\Rss', - [ - 'context' => $this->_contextHelper, - 'customerSession' => $this->_customerSession - ] - ); - - $this->_customerSession->loginById($this->_fixtureCustomerId); - } - - /** - * @magentoDataFixture Magento/Customer/_files/customer.php - * @magentoAppArea frontend - */ - public function testGetCustomer() - { - $expectedCustomer = $this->_customerSession->getCustomerDataObject(); - $actualCustomer = $this->_wishlistHelper->getCustomer(); - $this->assertInstanceOf('Magento\Customer\Api\Data\CustomerInterface', $actualCustomer); - $this->assertEquals((int)$expectedCustomer->getId(), (int)$actualCustomer->getId()); - $this->assertEquals((int)$expectedCustomer->getWebsiteId(), (int)$actualCustomer->getWebsiteId()); - $this->assertEquals((int)$expectedCustomer->getStoreId(), (int)$actualCustomer->getStoreId()); - $this->assertEquals((int)$expectedCustomer->getGroupId(), (int)$actualCustomer->getGroupId()); - $this->assertEquals($expectedCustomer->getCustomAttributes(), $actualCustomer->getCustomAttributes()); - $this->assertEquals($expectedCustomer->getFirstname(), $actualCustomer->getFirstname()); - $this->assertEquals($expectedCustomer->getLastname(), $actualCustomer->getLastname()); - $this->assertEquals($expectedCustomer->getEmail(), $actualCustomer->getEmail()); - $this->assertEquals($expectedCustomer->getEmail(), $actualCustomer->getEmail()); - $this->assertEquals((int)$expectedCustomer->getDefaultBilling(), (int)$actualCustomer->getDefaultBilling()); - $this->assertEquals((int)$expectedCustomer->getDefaultShipping(), (int)$actualCustomer->getDefaultShipping()); - } - - /** - * @magentoDataFixture Magento/Customer/_files/customer.php - * @magentoDataFixture Magento/Wishlist/_files/wishlist_with_product_qty_increments.php - * @magentoAppArea frontend - */ - public function testGetWishlistByParam() - { - /** @var \Magento\Wishlist\Model\Wishlist $wishlist */ - $wishlist = $this->_objectManager->create('Magento\Wishlist\Model\Wishlist') - ->loadByCustomerId($this->_fixtureCustomerId); - $wishlist->load($wishlist->getId()); - - /** @var \Magento\Framework\App\Request\Http $request */ - $request = $this->_contextHelper->getRequest(); - $request->setParam('wishlist_id', $wishlist->getId()); - - $this->assertEquals($wishlist, $this->_wishlistHelper->getWishlist()); - } - - /** - * @magentoDataFixture Magento/Customer/_files/customer.php - * @magentoDataFixture Magento/Wishlist/_files/wishlist_with_product_qty_increments.php - * @magentoAppArea frontend - */ - public function testGetWishlistByCustomerId() - { - /** @var \Magento\Wishlist\Model\Wishlist $wishlist */ - $wishlist = $this->_objectManager->create('Magento\Wishlist\Model\Wishlist') - ->loadByCustomerId($this->_fixtureCustomerId); - - /** @var \Magento\Framework\App\Request\Http $request */ - $request = $this->_contextHelper->getRequest(); - $request->setParam('wishlist_id', ''); - - $this->assertEquals($wishlist, $this->_wishlistHelper->getWishlist()); - } -}