diff --git a/app/code/Magento/CatalogRule/Controller/Adminhtml/Promo/Catalog.php b/app/code/Magento/CatalogRule/Controller/Adminhtml/Promo/Catalog.php index 3b20dec460b319b8386ec39fde6ce99298870cfc..5ab7a97bf4a0048e6f4bbfb29a2e35594370b517 100644 --- a/app/code/Magento/CatalogRule/Controller/Adminhtml/Promo/Catalog.php +++ b/app/code/Magento/CatalogRule/Controller/Adminhtml/Promo/Catalog.php @@ -4,8 +4,6 @@ * See COPYING.txt for license details. */ -// @codingStandardsIgnoreFile - /** * Backend Catalog Price Rules controller * @@ -36,11 +34,15 @@ class Catalog extends Action protected $_coreRegistry = null; /** + * Date filter instance + * * @var \Magento\Framework\Stdlib\DateTime\Filter\Date */ protected $_dateFilter; /** + * Constructor + * * @param Context $context * @param Registry $coreRegistry * @param Date $dateFilter @@ -53,6 +55,8 @@ class Catalog extends Action } /** + * Init action + * * @return $this */ protected function _initAction() @@ -68,6 +72,8 @@ class Catalog extends Action } /** + * Is access to section allowed + * * @return bool */ protected function _isAllowed() @@ -94,7 +100,8 @@ class Catalog extends Action public function getDirtyRulesNoticeMessage() { $defaultMessage = __( - 'There are rules that have been changed but were not applied. Please, click Apply Rules in order to see immediate effect in the catalog.' + 'There are rules that have been changed but were not applied. ' + . 'Please, click Apply Rules in order to see immediate effect in the catalog.' ); return $this->_dirtyRulesNoticeMessage ? $this->_dirtyRulesNoticeMessage : $defaultMessage; } diff --git a/app/code/Magento/CatalogRule/Helper/Data.php b/app/code/Magento/CatalogRule/Helper/Data.php index 439cff46006938de35eb744508e7b7424413c2fa..33ff883655675bf067876ac24d74ef0248ed99ce 100644 --- a/app/code/Magento/CatalogRule/Helper/Data.php +++ b/app/code/Magento/CatalogRule/Helper/Data.php @@ -12,13 +12,12 @@ namespace Magento\CatalogRule\Helper; class Data extends \Magento\Framework\App\Helper\AbstractHelper { /** - * Algorithm for calculating price rule + * Algorithm for calculating price by rule * * @param string $actionOperator * @param int $ruleAmount * @param float $price * @return float|int - * @api */ public function calcPriceRule($actionOperator, $ruleAmount, $price) { diff --git a/app/code/Magento/CatalogRule/Test/Unit/Helper/DataTest.php b/app/code/Magento/CatalogRule/Test/Unit/Helper/DataTest.php new file mode 100644 index 0000000000000000000000000000000000000000..0d75d688a07a164bb674fa343d97800049173af0 --- /dev/null +++ b/app/code/Magento/CatalogRule/Test/Unit/Helper/DataTest.php @@ -0,0 +1,67 @@ +<?php +/** + * Copyright © 2015 Magento. All rights reserved. + * See COPYING.txt for license details. + */ + +namespace Magento\CatalogRule\Test\Unit\Helper; + +use Magento\Framework\TestFramework\Unit\Helper\ObjectManager; + +class DataTest extends \PHPUnit_Framework_TestCase +{ + /** + * Helper object + * + * @var \Magento\CatalogRule\Helper\Data + */ + protected $helper; + + protected function setUp() + { + $this->helper = (new ObjectManager($this))->getObject('Magento\CatalogRule\Helper\Data'); + } + + /** + * Test price rule calculation + * + * @param string $actionOperator + * @param int|float $ruleAmount + * @param int|float $price + * @param int|float $expectedAmount + * + * @dataProvider calcPriceRuleDataProvider + */ + public function testCalcPriceRule($actionOperator, $ruleAmount, $price, $expectedAmount) + { + $this->assertEquals($expectedAmount, $this->helper->calcPriceRule($actionOperator, $ruleAmount, $price)); + } + + /** + * Data provider for cal price rule test + * + * @return array + */ + public function calcPriceRuleDataProvider() + { + return [ + ['to_fixed', 10, 10, 10], + ['to_fixed', 0, 10, 0], + ['to_fixed', 10, 0, 0], + ['to_fixed', 0, 0, 0], + ['to_percent', 100, 100, 100], + ['to_percent', 10, 100, 10], + ['to_percent', 10, 70, 7], + ['to_percent', 100, 10, 10], + ['by_fixed', 100, 100, 0], + ['by_fixed', 10, 100, 90], + ['by_fixed', 100, 10, 0], + ['by_percent', 100, 100, 0], + ['by_percent', 100, 10, 0], + ['by_percent', 100, 1, 0], + ['by_percent', 10, 100, 90], + ['by_percent', 10, 10, 9], + ['by_percent', 1, 10, 9.90], + ]; + } +} diff --git a/app/code/Magento/CatalogRule/Test/Unit/Model/CronTest.php b/app/code/Magento/CatalogRule/Test/Unit/Model/CronTest.php index 07e27c6398a6a8678788390b12e5fd0076cea02e..2d8f4b8b8a6a95955be084fcda3a2a6ad25dab6c 100644 --- a/app/code/Magento/CatalogRule/Test/Unit/Model/CronTest.php +++ b/app/code/Magento/CatalogRule/Test/Unit/Model/CronTest.php @@ -4,8 +4,6 @@ * See COPYING.txt for license details. */ -// @codingStandardsIgnoreFile - namespace Magento\CatalogRule\Test\Unit\Model; use Magento\Framework\TestFramework\Unit\Helper\ObjectManager; @@ -13,23 +11,35 @@ use Magento\Framework\TestFramework\Unit\Helper\ObjectManager; class CronTest extends \PHPUnit_Framework_TestCase { /** + * Processor + * * @var \Magento\CatalogRule\Model\Indexer\Rule\RuleProductProcessor|\PHPUnit_Framework_MockObject_MockObject */ protected $ruleProductProcessor; /** + * Cron object + * * @var \Magento\CatalogRule\Model\Cron */ protected $cron; protected function setUp() { - $this->ruleProductProcessor = $this->getMock('Magento\CatalogRule\Model\Indexer\Rule\RuleProductProcessor', - [], [], '', false); - - $this->cron = (new ObjectManager($this))->getObject('Magento\CatalogRule\Model\Cron', [ - 'ruleProductProcessor' => $this->ruleProductProcessor, - ]); + $this->ruleProductProcessor = $this->getMock( + 'Magento\CatalogRule\Model\Indexer\Rule\RuleProductProcessor', + [], + [], + '', + false + ); + + $this->cron = (new ObjectManager($this))->getObject( + 'Magento\CatalogRule\Model\Cron', + [ + 'ruleProductProcessor' => $this->ruleProductProcessor, + ] + ); } public function testDailyCatalogUpdate() diff --git a/app/code/Magento/CatalogRule/Test/Unit/Plugin/Indexer/CategoryTest.php b/app/code/Magento/CatalogRule/Test/Unit/Plugin/Indexer/CategoryTest.php index 4814767f39d9e8017bd8e45804c5b8a670a2bd1c..59bd89d00579eff03f37dc0293027240c303c5e3 100644 --- a/app/code/Magento/CatalogRule/Test/Unit/Plugin/Indexer/CategoryTest.php +++ b/app/code/Magento/CatalogRule/Test/Unit/Plugin/Indexer/CategoryTest.php @@ -4,8 +4,6 @@ * See COPYING.txt for license details. */ -// @codingStandardsIgnoreFile - namespace Magento\CatalogRule\Test\Unit\Plugin\Indexer; use Magento\Framework\TestFramework\Unit\Helper\ObjectManager; @@ -29,20 +27,37 @@ class CategoryTest extends \PHPUnit_Framework_TestCase protected function setUp() { - $this->productRuleProcessor = $this->getMock('Magento\CatalogRule\Model\Indexer\Product\ProductRuleProcessor', - [], [], '', false); - $this->subject = $this->getMock('Magento\Catalog\Model\Category', ['getAffectedProductIds', '__wakeUp'], [], - '', false); - - $this->plugin = (new ObjectManager($this))->getObject('Magento\CatalogRule\Plugin\Indexer\Category', [ - 'productRuleProcessor' => $this->productRuleProcessor, - ]); + $this->productRuleProcessor = $this->getMock( + 'Magento\CatalogRule\Model\Indexer\Product\ProductRuleProcessor', + [], + [], + '', + false + ); + $this->subject = $this->getMock( + 'Magento\Catalog\Model\Category', + ['getAffectedProductIds', '__wakeUp'], + [], + '', + false + ); + + $this->plugin = (new ObjectManager($this))->getObject( + 'Magento\CatalogRule\Plugin\Indexer\Category', + [ + 'productRuleProcessor' => $this->productRuleProcessor, + ] + ); } public function testAfterSaveWithoutAffectedProductIds() { - $this->subject->expects($this->any())->method('getAffectedProductIds')->will($this->returnValue([])); - $this->productRuleProcessor->expects($this->never())->method('reindexList'); + $this->subject->expects($this->any()) + ->method('getAffectedProductIds') + ->will($this->returnValue([])); + + $this->productRuleProcessor->expects($this->never()) + ->method('reindexList'); $this->assertEquals($this->subject, $this->plugin->afterSave($this->subject, $this->subject)); } @@ -51,15 +66,21 @@ class CategoryTest extends \PHPUnit_Framework_TestCase { $productIds = [1, 2, 3]; - $this->subject->expects($this->any())->method('getAffectedProductIds')->will($this->returnValue($productIds)); - $this->productRuleProcessor->expects($this->once())->method('reindexList')->with($productIds); + $this->subject->expects($this->any()) + ->method('getAffectedProductIds') + ->will($this->returnValue($productIds)); + + $this->productRuleProcessor->expects($this->once()) + ->method('reindexList') + ->with($productIds); $this->assertEquals($this->subject, $this->plugin->afterSave($this->subject, $this->subject)); } public function testAfterDelete() { - $this->productRuleProcessor->expects($this->once())->method('markIndexerAsInvalid'); + $this->productRuleProcessor->expects($this->once()) + ->method('markIndexerAsInvalid'); $this->assertEquals($this->subject, $this->plugin->afterDelete($this->subject, $this->subject)); } diff --git a/app/code/Magento/CatalogRule/Test/Unit/Plugin/Indexer/CustomerGroupTest.php b/app/code/Magento/CatalogRule/Test/Unit/Plugin/Indexer/CustomerGroupTest.php index f0c7283f1d4eb081ed736b11591521036d21560d..fb911fb1cdbd7211e3d39b5ea2528587d9c3f343 100644 --- a/app/code/Magento/CatalogRule/Test/Unit/Plugin/Indexer/CustomerGroupTest.php +++ b/app/code/Magento/CatalogRule/Test/Unit/Plugin/Indexer/CustomerGroupTest.php @@ -4,8 +4,6 @@ * See COPYING.txt for license details. */ -// @codingStandardsIgnoreFile - namespace Magento\CatalogRule\Test\Unit\Plugin\Indexer; use Magento\Framework\TestFramework\Unit\Helper\ObjectManager; @@ -13,34 +11,55 @@ use Magento\Framework\TestFramework\Unit\Helper\ObjectManager; class CustomerGroupTest extends \PHPUnit_Framework_TestCase { /** + * Rule processor mock + * * @var \Magento\CatalogRule\Model\Indexer\Rule\RuleProductProcessor|\PHPUnit_Framework_MockObject_MockObject */ protected $ruleProductProcessor; /** + * Subject group + * * @var \Magento\Customer\Model\Group|\PHPUnit_Framework_MockObject_MockObject */ protected $subject; /** + * Tested plugin + * * @var \Magento\CatalogRule\Plugin\Indexer\CustomerGroup */ protected $plugin; protected function setUp() { - $this->ruleProductProcessor = $this->getMock('Magento\CatalogRule\Model\Indexer\Rule\RuleProductProcessor', - [], [], '', false); - $this->subject = $this->getMock('Magento\Customer\Model\Group', [], [], '', false); + $this->ruleProductProcessor = $this->getMock( + 'Magento\CatalogRule\Model\Indexer\Rule\RuleProductProcessor', + [], + [], + '', + false + ); + $this->subject = $this->getMock( + 'Magento\Customer\Model\Group', + [], + [], + '', + false + ); - $this->plugin = (new ObjectManager($this))->getObject('Magento\CatalogRule\Plugin\Indexer\CustomerGroup', [ - 'ruleProductProcessor' => $this->ruleProductProcessor, - ]); + $this->plugin = (new ObjectManager($this))->getObject( + 'Magento\CatalogRule\Plugin\Indexer\CustomerGroup', + [ + 'ruleProductProcessor' => $this->ruleProductProcessor, + ] + ); } public function testAfterDelete() { - $this->ruleProductProcessor->expects($this->once())->method('markIndexerAsInvalid'); + $this->ruleProductProcessor->expects($this->once()) + ->method('markIndexerAsInvalid'); $this->assertEquals($this->subject, $this->plugin->afterDelete($this->subject, $this->subject)); } diff --git a/app/code/Magento/CatalogRule/Test/Unit/Plugin/Indexer/ImportExportTest.php b/app/code/Magento/CatalogRule/Test/Unit/Plugin/Indexer/ImportExportTest.php index eac185dcc129f308874f6c412f24655dbcaaf0b1..68a4dae5ef04fae0434f9af375015454afe8e238 100644 --- a/app/code/Magento/CatalogRule/Test/Unit/Plugin/Indexer/ImportExportTest.php +++ b/app/code/Magento/CatalogRule/Test/Unit/Plugin/Indexer/ImportExportTest.php @@ -4,8 +4,6 @@ * See COPYING.txt for license details. */ -// @codingStandardsIgnoreFile - namespace Magento\CatalogRule\Test\Unit\Plugin\Indexer; use Magento\Framework\TestFramework\Unit\Helper\ObjectManager; @@ -13,36 +11,51 @@ use Magento\Framework\TestFramework\Unit\Helper\ObjectManager; class ImportExportTest extends \PHPUnit_Framework_TestCase { /** + * Indexer processor mock + * * @var \Magento\CatalogRule\Model\Indexer\Rule\RuleProductProcessor|\PHPUnit_Framework_MockObject_MockObject */ protected $ruleProductProcessor; /** + * Import model mock + * * @var \Magento\ImportExport\Model\Import|\PHPUnit_Framework_MockObject_MockObject */ protected $subject; /** + * Tested plugin + * * @var \Magento\CatalogRule\Plugin\Indexer\ImportExport */ protected $plugin; protected function setUp() { - $this->ruleProductProcessor = $this->getMock('Magento\CatalogRule\Model\Indexer\Rule\RuleProductProcessor', - [], [], '', false); + $this->ruleProductProcessor = $this->getMock( + 'Magento\CatalogRule\Model\Indexer\Rule\RuleProductProcessor', + [], + [], + '', + false + ); $this->subject = $this->getMock('Magento\ImportExport\Model\Import', [], [], '', false); - $this->plugin = (new ObjectManager($this))->getObject('Magento\CatalogRule\Plugin\Indexer\ImportExport', [ - 'ruleProductProcessor' => $this->ruleProductProcessor, - ]); + $this->plugin = (new ObjectManager($this))->getObject( + 'Magento\CatalogRule\Plugin\Indexer\ImportExport', + [ + 'ruleProductProcessor' => $this->ruleProductProcessor, + ] + ); } public function testAfterImportSource() { $result = true; - $this->ruleProductProcessor->expects($this->once())->method('markIndexerAsInvalid'); + $this->ruleProductProcessor->expects($this->once()) + ->method('markIndexerAsInvalid'); $this->assertEquals($result, $this->plugin->afterImportSource($this->subject, $result)); } diff --git a/app/code/Magento/CatalogRule/Test/Unit/Plugin/Indexer/WebsiteTest.php b/app/code/Magento/CatalogRule/Test/Unit/Plugin/Indexer/WebsiteTest.php index 2fca372e8e4ac7d196b2ac4bff988dc8c57a41f7..39571d32c38003914838a6d702817d09e44e8e76 100644 --- a/app/code/Magento/CatalogRule/Test/Unit/Plugin/Indexer/WebsiteTest.php +++ b/app/code/Magento/CatalogRule/Test/Unit/Plugin/Indexer/WebsiteTest.php @@ -4,8 +4,6 @@ * See COPYING.txt for license details. */ -// @codingStandardsIgnoreFile - namespace Magento\CatalogRule\Test\Unit\Plugin\Indexer; use Magento\Framework\TestFramework\Unit\Helper\ObjectManager; @@ -13,34 +11,49 @@ use Magento\Framework\TestFramework\Unit\Helper\ObjectManager; class WebsiteTest extends \PHPUnit_Framework_TestCase { /** + * Indexer processor mock + * * @var \Magento\CatalogRule\Model\Indexer\Rule\RuleProductProcessor|\PHPUnit_Framework_MockObject_MockObject */ protected $ruleProductProcessor; /** + * Website mock + * * @var \Magento\Store\Model\Website|\PHPUnit_Framework_MockObject_MockObject */ protected $subject; /** + * Tested plugin + * * @var \Magento\CatalogRule\Plugin\Indexer\Website */ protected $plugin; protected function setUp() { - $this->ruleProductProcessor = $this->getMock('Magento\CatalogRule\Model\Indexer\Rule\RuleProductProcessor', - [], [], '', false); + $this->ruleProductProcessor = $this->getMock( + 'Magento\CatalogRule\Model\Indexer\Rule\RuleProductProcessor', + [], + [], + '', + false + ); $this->subject = $this->getMock('Magento\Store\Model\Website', [], [], '', false); - $this->plugin = (new ObjectManager($this))->getObject('Magento\CatalogRule\Plugin\Indexer\Website', [ - 'ruleProductProcessor' => $this->ruleProductProcessor, - ]); + $this->plugin = (new ObjectManager($this))->getObject( + 'Magento\CatalogRule\Plugin\Indexer\Website', + [ + 'ruleProductProcessor' => $this->ruleProductProcessor, + ] + ); } public function testAfterDelete() { - $this->ruleProductProcessor->expects($this->once())->method('markIndexerAsInvalid'); + $this->ruleProductProcessor->expects($this->once()) + ->method('markIndexerAsInvalid'); $this->assertEquals($this->subject, $this->plugin->afterDelete($this->subject, $this->subject)); } diff --git a/app/code/Magento/Contact/Test/Unit/Controller/Index/IndexTest.php b/app/code/Magento/Contact/Test/Unit/Controller/Index/IndexTest.php index bb59c0e78c7425e6c3e38d1428574a7b738758c2..ccaec64fabb98588414aac86ae67c5e8b14bd956 100644 --- a/app/code/Magento/Contact/Test/Unit/Controller/Index/IndexTest.php +++ b/app/code/Magento/Contact/Test/Unit/Controller/Index/IndexTest.php @@ -1,32 +1,37 @@ <?php /** - * * Copyright © 2015 Magento. All rights reserved. * See COPYING.txt for license details. */ -// @codingStandardsIgnoreFile - namespace Magento\Contact\Test\Unit\Controller\Index; class IndexTest extends \PHPUnit_Framework_TestCase { /** - * @var \Magento\Contact\Controller\Index\Index|\PHPUnit_Framework_MockObject_MockObject + * Controller + * + * @var \Magento\Contact\Controller\Index\Index */ protected $_controller; /** + * Scope config mock + * * @var \Magento\Framework\App\Config\ScopeConfigInterface|\PHPUnit_Framework_MockObject_MockObject */ protected $_scopeConfig; /** + * View mock + * * @var \Magento\Framework\App\ViewInterface|\PHPUnit_Framework_MockObject_MockObject */ protected $_view; /** + * Url mock + * * @var \Magento\Framework\UrlInterface|\PHPUnit_Framework_MockObject_MockObject */ protected $_url; @@ -34,7 +39,10 @@ class IndexTest extends \PHPUnit_Framework_TestCase public function setUp() { $this->_scopeConfig = $this->getMockForAbstractClass( - '\Magento\Framework\App\Config\ScopeConfigInterface', ['isSetFlag'], '', false + '\Magento\Framework\App\Config\ScopeConfigInterface', + ['isSetFlag'], + '', + false ); $context = $this->getMock( '\Magento\Framework\App\Action\Context', diff --git a/app/code/Magento/Contact/Test/Unit/Controller/IndexTest.php b/app/code/Magento/Contact/Test/Unit/Controller/IndexTest.php index 9db82a0300c8dfcc1fb590aa2f7bf329596dd736..609eaddcc4b579de6c613e1855fda232937ea2d2 100644 --- a/app/code/Magento/Contact/Test/Unit/Controller/IndexTest.php +++ b/app/code/Magento/Contact/Test/Unit/Controller/IndexTest.php @@ -4,18 +4,20 @@ * See COPYING.txt for license details. */ -// @codingStandardsIgnoreFile - namespace Magento\Contact\Test\Unit\Controller; class IndexTest extends \PHPUnit_Framework_TestCase { /** - * @var \Magento\Contact\Controller\Index|\PHPUnit_Framework_MockObject_MockObject + * Controller instance + * + * @var \Magento\Contact\Controller\Index */ protected $_controller; /** + * Scope config instance + * * @var \Magento\Framework\App\Config\ScopeConfigInterface|\PHPUnit_Framework_MockObject_MockObject */ protected $_scopeConfig; @@ -23,7 +25,10 @@ class IndexTest extends \PHPUnit_Framework_TestCase public function setUp() { $this->_scopeConfig = $this->getMockForAbstractClass( - '\Magento\Framework\App\Config\ScopeConfigInterface', ['isSetFlag'], '', false + '\Magento\Framework\App\Config\ScopeConfigInterface', + ['isSetFlag'], + '', + false ); $context = $this->getMock( '\Magento\Framework\App\Action\Context', @@ -33,23 +38,21 @@ class IndexTest extends \PHPUnit_Framework_TestCase false ); - $context->expects( - $this->any() - )->method( - 'getRequest' - )->will( - $this->returnValue($this->getMockForAbstractClass('\Magento\Framework\App\RequestInterface', [], '', false)) - ); + $context->expects($this->any()) + ->method('getRequest') + ->will( + $this->returnValue( + $this->getMockForAbstractClass('\Magento\Framework\App\RequestInterface', [], '', false) + ) + ); - $context->expects( - $this->any() - )->method( - 'getResponse' - )->will( - $this->returnValue( - $this->getMockForAbstractClass('\Magento\Framework\App\ResponseInterface', [], '', false) - ) - ); + $context->expects($this->any()) + ->method('getResponse') + ->will( + $this->returnValue( + $this->getMockForAbstractClass('\Magento\Framework\App\ResponseInterface', [], '', false) + ) + ); $this->_controller = new \Magento\Contact\Controller\Index( $context, @@ -61,20 +64,20 @@ class IndexTest extends \PHPUnit_Framework_TestCase } /** + * Dispatch test + * * @expectedException \Magento\Framework\Exception\NotFoundException */ public function testDispatch() { - $this->_scopeConfig->expects( - $this->once() - )->method( - 'isSetFlag' - )->with( - \Magento\Contact\Controller\Index::XML_PATH_ENABLED, - \Magento\Store\Model\ScopeInterface::SCOPE_STORE - )->will( - $this->returnValue(false) - ); + $this->_scopeConfig->expects($this->once()) + ->method('isSetFlag') + ->with( + \Magento\Contact\Controller\Index::XML_PATH_ENABLED, + \Magento\Store\Model\ScopeInterface::SCOPE_STORE + ) + ->will($this->returnValue(false)); + $this->_controller->dispatch( $this->getMockForAbstractClass('\Magento\Framework\App\RequestInterface', [], '', false) ); diff --git a/app/code/Magento/Contact/Test/Unit/Helper/DataTest.php b/app/code/Magento/Contact/Test/Unit/Helper/DataTest.php index cffd617f422b4327608f4a626a17a5772dc94a12..057cc4672acf0dcf72ce5b5df73a778e8bbd5f57 100644 --- a/app/code/Magento/Contact/Test/Unit/Helper/DataTest.php +++ b/app/code/Magento/Contact/Test/Unit/Helper/DataTest.php @@ -4,28 +4,34 @@ * See COPYING.txt for license details. */ -// @codingStandardsIgnoreFile - namespace Magento\Contact\Test\Unit\Helper; class DataTest extends \PHPUnit_Framework_TestCase { /** - * @var \Magento\Contact\Helper\Data|\PHPUnit_Framework_MockObject_MockObject + * Helper + * + * @var \Magento\Contact\Helper\Data */ protected $_helper; /** + * Scope config mock + * * @var \Magento\Framework\App\Config\ScopeConfigInterface|\PHPUnit_Framework_MockObject_MockObject */ protected $_scopeConfig; /** + * Customer session mock + * * @var \Magento\Customer\Model\Session|\PHPUnit_Framework_MockObject_MockObject */ protected $_customerSession; /** + * Customer view helper mock + * * @var \Magento\Customer\Helper\View|\PHPUnit_Framework_MockObject_MockObject */ protected $_customerViewHelper; @@ -35,7 +41,9 @@ class DataTest extends \PHPUnit_Framework_TestCase $objectManagerHelper = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this); $className = '\Magento\Contact\Helper\Data'; $arguments = $objectManagerHelper->getConstructArguments($className); - /** @var \Magento\Framework\App\Helper\Context $context */ + /** + * @var \Magento\Framework\App\Helper\Context $context + */ $context = $arguments['context']; $this->_scopeConfig = $context->getScopeConfig(); $this->_customerSession = $arguments['customerSession']; @@ -58,7 +66,7 @@ class DataTest extends \PHPUnit_Framework_TestCase ->method('getValue') ->will($this->returnValue(null)); - $this->assertTrue(is_null($this->_helper->isEnabled())); + $this->assertTrue(null === $this->_helper->isEnabled()); } public function testGetUserNameNotLoggedIn() @@ -104,8 +112,12 @@ class DataTest extends \PHPUnit_Framework_TestCase $this->_customerSession->expects($this->once()) ->method('isLoggedIn') ->will($this->returnValue(true)); + $customerDataObject = $this->getMock('\Magento\Customer\Api\Data\CustomerInterface', [], [], '', false); - $customerDataObject->expects($this->once())->method('getEmail')->will($this->returnValue('customer@email.com')); + $customerDataObject->expects($this->once()) + ->method('getEmail') + ->will($this->returnValue('customer@email.com')); + $this->_customerSession->expects($this->once()) ->method('getCustomerDataObject') ->will($this->returnValue($customerDataObject)); diff --git a/app/code/Magento/Indexer/Test/Unit/Model/Processor/InvalidateCacheTest.php b/app/code/Magento/Indexer/Test/Unit/Model/Processor/InvalidateCacheTest.php index 29628de82f5459902a9996b0e47e4beeb179ac2b..90c5606b85da7ec8612250701c9adfbc9d075742 100644 --- a/app/code/Magento/Indexer/Test/Unit/Model/Processor/InvalidateCacheTest.php +++ b/app/code/Magento/Indexer/Test/Unit/Model/Processor/InvalidateCacheTest.php @@ -4,33 +4,41 @@ * See COPYING.txt for license details. */ -// @codingStandardsIgnoreFile - namespace Magento\Indexer\Test\Unit\Model\Processor; class InvalidateCacheTest extends \PHPUnit_Framework_TestCase { /** + * Tested plugin + * * @var \Magento\Indexer\Model\Processor\InvalidateCache */ protected $plugin; /** + * Mock for context + * * @var \Magento\Indexer\Model\CacheContext|\PHPUnit_Framework_MockObject_MockObject */ protected $contextMock; /** + * Subject mock + * * @var \Magento\Indexer\Model\ActionInterface|\PHPUnit_Framework_MockObject_MockObject */ protected $subjectMock; /** + * Event manager mock + * * @var \Magento\Framework\Event\Manager|\PHPUnit_Framework_MockObject_MockObject */ protected $eventManagerMock; /** + * Module manager mock + * * @var \Magento\Framework\Module\Manager|\PHPUnit_Framework_MockObject_MockObject */ protected $moduleManager; @@ -40,20 +48,21 @@ class InvalidateCacheTest extends \PHPUnit_Framework_TestCase */ public function setUp() { - $this->subjectMock = $this->getMock('Magento\Indexer\Model\Processor', - [], [], '', false); - $this->contextMock = $this->getMock('Magento\Indexer\Model\CacheContext', - [], [], '', false); - $this->eventManagerMock = $this->getMock('Magento\Framework\Event\Manager', - [], [], '', false); - $this->moduleManager = $this->getMock('Magento\Framework\Module\Manager', - [], [], '', false); + $this->subjectMock = $this->getMock('Magento\Indexer\Model\Processor', [], [], '', false); + $this->contextMock = $this->getMock('Magento\Indexer\Model\CacheContext', [], [], '', false); + $this->eventManagerMock = $this->getMock('Magento\Framework\Event\Manager', [], [], '', false); + $this->moduleManager = $this->getMock('Magento\Framework\Module\Manager', [], [], '', false); $this->plugin = new \Magento\Indexer\Model\Processor\InvalidateCache( - $this->contextMock, $this->eventManagerMock, $this->moduleManager); + $this->contextMock, + $this->eventManagerMock, + $this->moduleManager + ); } /** * Test afterUpdateMview with enabled PageCache module + * + * @return void */ public function testAfterUpdateMviewPageCacheEnabled() { @@ -63,14 +72,17 @@ class InvalidateCacheTest extends \PHPUnit_Framework_TestCase ->will($this->returnValue(true)); $this->eventManagerMock->expects($this->once()) ->method('dispatch') - ->with($this->equalTo('clean_cache_after_reindex'), - $this->equalTo(['object' => $this->contextMock])); - $actualResult = $this->plugin->afterUpdateMview($this->subjectMock); - $this->assertNull($actualResult); + ->with( + $this->equalTo('clean_cache_after_reindex'), + $this->equalTo(['object' => $this->contextMock]) + ); + $this->plugin->afterUpdateMview($this->subjectMock); } /** - * afterUpdateMview with disabled PageCache module + * Test afterUpdateMview with disabled PageCache module + * + * @return void */ public function testAfterUpdateMviewPageCacheDisabled() { @@ -80,7 +92,6 @@ class InvalidateCacheTest extends \PHPUnit_Framework_TestCase ->will($this->returnValue(false)); $this->eventManagerMock->expects($this->never()) ->method('dispatch'); - $actualResult = $this->plugin->afterUpdateMview($this->subjectMock); - $this->assertNull($actualResult); + $this->plugin->afterUpdateMview($this->subjectMock); } } diff --git a/app/code/Magento/Reports/Block/Adminhtml/Filter/Form.php b/app/code/Magento/Reports/Block/Adminhtml/Filter/Form.php index 7c18123b5fa881d59ad91ce148ca94d2ed168e22..f9fe3f7290440886646b29df65165e0aa76bc81c 100644 --- a/app/code/Magento/Reports/Block/Adminhtml/Filter/Form.php +++ b/app/code/Magento/Reports/Block/Adminhtml/Filter/Form.php @@ -4,8 +4,6 @@ * See COPYING.txt for license details. */ -// @codingStandardsIgnoreFile - namespace Magento\Reports\Block\Adminhtml\Filter; /** @@ -42,6 +40,7 @@ class Form extends \Magento\Backend\Block\Widget\Form\Generic * @param string $fieldId * @param bool $visibility * + * @codeCoverageIgnore * @return void */ public function setFieldVisibility($fieldId, $visibility) @@ -95,6 +94,7 @@ class Form extends \Magento\Backend\Block\Widget\Form\Generic * @param string $key * @param string $value * @return $this + * @codeCoverageIgnore */ public function addReportTypeOption($key, $value) { @@ -113,7 +113,13 @@ class Form extends \Magento\Backend\Block\Widget\Form\Generic /** @var \Magento\Framework\Data\Form $form */ $form = $this->_formFactory->create( - ['data' => ['id' => 'filter_form', 'action' => $actionUrl, 'method' => 'get']] + [ + 'data' => [ + 'id' => 'filter_form', + 'action' => $actionUrl, + 'method' => 'get' + ] + ] ); $htmlIdPrefix = 'sales_report_'; @@ -127,7 +133,11 @@ class Form extends \Magento\Backend\Block\Widget\Form\Generic $fieldset->addField( 'report_type', 'select', - ['name' => 'report_type', 'options' => $this->_reportTypeOptions, 'label' => __('Match Period To')] + [ + 'name' => 'report_type', + 'options' => $this->_reportTypeOptions, + 'label' => __('Match Period To') + ] ); $fieldset->addField( diff --git a/app/code/Magento/Reports/Block/Adminhtml/Grid.php b/app/code/Magento/Reports/Block/Adminhtml/Grid.php index 9fe1fa27a2c481ff73d35930f66aec1e5ea298e6..463339d2949ad37ca67bdb46c17ea109bb77ddb5 100644 --- a/app/code/Magento/Reports/Block/Adminhtml/Grid.php +++ b/app/code/Magento/Reports/Block/Adminhtml/Grid.php @@ -4,8 +4,6 @@ * See COPYING.txt for license details. */ -// @codingStandardsIgnoreFile - namespace Magento\Reports\Block\Adminhtml; /** @@ -81,7 +79,7 @@ class Grid extends \Magento\Backend\Block\Widget\Grid { $filter = $this->getParam($this->getVarNameFilter(), null); - if (is_null($filter)) { + if (null === $filter) { $filter = $this->_defaultFilter; } @@ -154,7 +152,7 @@ class Grid extends \Magento\Backend\Block\Widget\Grid /** * Get allowed stores * - * @return array + * @return array|\int[] */ protected function _getAllowedStoreIds() { @@ -205,7 +203,7 @@ class Grid extends \Magento\Backend\Block\Widget\Grid * Set visibility of store switcher * * @param bool $visible - * + * @codeCoverageIgnore * @return void */ public function setStoreSwitcherVisibility($visible = true) @@ -215,6 +213,7 @@ class Grid extends \Magento\Backend\Block\Widget\Grid /** * Return visibility of store switcher + * @codeCoverageIgnore * * @return bool * @SuppressWarnings(PHPMD.BooleanGetMethodName) @@ -226,6 +225,7 @@ class Grid extends \Magento\Backend\Block\Widget\Grid /** * Return store switcher html + * @codeCoverageIgnore * * @return string */ @@ -238,8 +238,8 @@ class Grid extends \Magento\Backend\Block\Widget\Grid * Set visibility of date filter * * @param bool $visible - * * @return void + * @codeCoverageIgnore */ public function setDateFilterVisibility($visible = true) { @@ -248,6 +248,7 @@ class Grid extends \Magento\Backend\Block\Widget\Grid /** * Return visibility of date filter + * @codeCoverageIgnore * * @return bool * @SuppressWarnings(PHPMD.BooleanGetMethodName) @@ -259,6 +260,7 @@ class Grid extends \Magento\Backend\Block\Widget\Grid /** * Return date filter html + * @codeCoverageIgnore * * @return string */ @@ -289,6 +291,7 @@ class Grid extends \Magento\Backend\Block\Widget\Grid /** * Return refresh button html + * @codeCoverageIgnore * * @return string */ @@ -302,8 +305,8 @@ class Grid extends \Magento\Backend\Block\Widget\Grid * * @param string $name * @param string $value - * * @return void + * @codeCoverageIgnore */ public function setFilter($name, $value) { @@ -331,8 +334,8 @@ class Grid extends \Magento\Backend\Block\Widget\Grid * Set sub-report rows count * * @param int $size - * * @return void + * @codeCoverageIgnore */ public function setSubReportSize($size) { @@ -341,6 +344,7 @@ class Grid extends \Magento\Backend\Block\Widget\Grid /** * Return sub-report rows count + * @codeCoverageIgnore * * @return int */ @@ -353,6 +357,7 @@ class Grid extends \Magento\Backend\Block\Widget\Grid * Retrieve errors * * @return array + * @codeCoverageIgnore */ public function getErrors() { diff --git a/app/code/Magento/Reports/Block/Adminhtml/Grid/AbstractGrid.php b/app/code/Magento/Reports/Block/Adminhtml/Grid/AbstractGrid.php index 68b0b78bbbd23ea397af64e076ece23c9972025a..39813ec48946af6e05b0aae0d7fdc8ed516e2a65 100644 --- a/app/code/Magento/Reports/Block/Adminhtml/Grid/AbstractGrid.php +++ b/app/code/Magento/Reports/Block/Adminhtml/Grid/AbstractGrid.php @@ -71,6 +71,8 @@ class AbstractGrid extends \Magento\Backend\Block\Widget\Grid\Extended } /** + * Pseudo constructor + * * @return void */ protected function _construct() @@ -86,6 +88,10 @@ class AbstractGrid extends \Magento\Backend\Block\Widget\Grid\Extended } /** + * Get resource collection name + * + * @codeCoverageIgnore + * * @return string */ public function getResourceCollectionName() @@ -339,9 +345,11 @@ class AbstractGrid extends \Magento\Backend\Block\Widget\Grid\Extended } /** - * @param array $storeIds + * StoreIds setter * + * @param array $storeIds * @return $this + * @codeCoverageIgnore */ public function setStoreIds($storeIds) { @@ -396,6 +404,7 @@ class AbstractGrid extends \Magento\Backend\Block\Widget\Grid\Extended * @param \Magento\Framework\Object $filterData * @return $this * @SuppressWarnings(PHPMD.UnusedFormalParameter) + * @codeCoverageIgnore */ protected function _addCustomFilter($collection, $filterData) { diff --git a/app/code/Magento/Reports/Block/Adminhtml/Grid/Column/Renderer/Currency.php b/app/code/Magento/Reports/Block/Adminhtml/Grid/Column/Renderer/Currency.php index ac9cf8c700bd7efc13558d6fb0161388dd2de4e3..30555dbca8d2b14a12cff014d8e3da1b667a6591 100644 --- a/app/code/Magento/Reports/Block/Adminhtml/Grid/Column/Renderer/Currency.php +++ b/app/code/Magento/Reports/Block/Adminhtml/Grid/Column/Renderer/Currency.php @@ -4,8 +4,6 @@ * See COPYING.txt for license details. */ -// @codingStandardsIgnoreFile - namespace Magento\Reports\Block\Adminhtml\Grid\Column\Renderer; /** @@ -24,15 +22,15 @@ class Currency extends \Magento\Backend\Block\Widget\Grid\Column\Renderer\Curren public function render(\Magento\Framework\Object $row) { $data = $row->getData($this->getColumn()->getIndex()); - $currency_code = $this->_getCurrencyCode($row); + $currencyCode = $this->_getCurrencyCode($row); - if (!$currency_code) { + if (!$currencyCode) { return $data; } $data = floatval($data) * $this->_getRate($row); $data = sprintf("%f", $data); - $data = $this->_localeCurrency->getCurrency($currency_code)->toCurrency($data); + $data = $this->_localeCurrency->getCurrency($currencyCode)->toCurrency($data); return $data; } } diff --git a/app/code/Magento/Reports/Block/Adminhtml/Grid/Shopcart.php b/app/code/Magento/Reports/Block/Adminhtml/Grid/Shopcart.php index 023f4f4bac729ed0fb6e44b7ffc123a595464b1a..0c635887cf0bc156ba384355eacf96de09ab76cd 100644 --- a/app/code/Magento/Reports/Block/Adminhtml/Grid/Shopcart.php +++ b/app/code/Magento/Reports/Block/Adminhtml/Grid/Shopcart.php @@ -28,6 +28,7 @@ class Shopcart extends \Magento\Backend\Block\Widget\Grid\Extended /** * StoreIds setter + * @codeCoverageIgnore * * @param array $storeIds * @return $this diff --git a/app/code/Magento/Reports/Block/Adminhtml/Product.php b/app/code/Magento/Reports/Block/Adminhtml/Product.php index 9c5cad9fc76f8398a9cef6677f51183ee0d94e9d..4adc6dccbc09aa166b571c6e73e39ace1ed60187 100644 --- a/app/code/Magento/Reports/Block/Adminhtml/Product.php +++ b/app/code/Magento/Reports/Block/Adminhtml/Product.php @@ -13,7 +13,7 @@ namespace Magento\Reports\Block\Adminhtml; class Product extends \Magento\Backend\Block\Widget\Grid\Container { /** - * @return void + * {@inheritdoc} */ protected function _construct() { diff --git a/app/code/Magento/Reports/Block/Adminhtml/Sales/Bestsellers.php b/app/code/Magento/Reports/Block/Adminhtml/Sales/Bestsellers.php index d872439b7f8e6417d2ea613f868105c0764a20fb..32a25599702e9d312ac79160b5d0d5b8f38199ca 100644 --- a/app/code/Magento/Reports/Block/Adminhtml/Sales/Bestsellers.php +++ b/app/code/Magento/Reports/Block/Adminhtml/Sales/Bestsellers.php @@ -13,12 +13,14 @@ namespace Magento\Reports\Block\Adminhtml\Sales; class Bestsellers extends \Magento\Backend\Block\Widget\Grid\Container { /** + * Template + * * @var string */ protected $_template = 'report/grid/container.phtml'; /** - * @return void + * {@inheritdoc} */ protected function _construct() { @@ -35,6 +37,8 @@ class Bestsellers extends \Magento\Backend\Block\Widget\Grid\Container } /** + * Get filter URL + * * @return string */ public function getFilterUrl() diff --git a/app/code/Magento/Reports/Block/Adminhtml/Sales/Bestsellers/Grid.php b/app/code/Magento/Reports/Block/Adminhtml/Sales/Bestsellers/Grid.php index d6820a811970fded00679f36d5ad6564ccae7e36..bedef6d74acceb8be7e61ef3d045faf17f1c98be 100644 --- a/app/code/Magento/Reports/Block/Adminhtml/Sales/Bestsellers/Grid.php +++ b/app/code/Magento/Reports/Block/Adminhtml/Sales/Bestsellers/Grid.php @@ -14,12 +14,15 @@ namespace Magento\Reports\Block\Adminhtml\Sales\Bestsellers; class Grid extends \Magento\Reports\Block\Adminhtml\Grid\AbstractGrid { /** + * GROUP BY criteria + * * @var string */ protected $_columnGroupBy = 'period'; /** - * @return void + * {@inheritdoc} + * @codeCoverageIgnore */ protected function _construct() { @@ -28,7 +31,8 @@ class Grid extends \Magento\Reports\Block\Adminhtml\Grid\AbstractGrid } /** - * @return string + * {@inheritdoc} + * @codeCoverageIgnore */ public function getResourceCollectionName() { @@ -36,7 +40,7 @@ class Grid extends \Magento\Reports\Block\Adminhtml\Grid\AbstractGrid } /** - * @return \Magento\Backend\Block\Widget\Grid\Extended + * {@inheritdoc} */ protected function _prepareColumns() { diff --git a/app/code/Magento/Reports/Block/Adminhtml/Sales/Coupons.php b/app/code/Magento/Reports/Block/Adminhtml/Sales/Coupons.php index c14f1c248b15bdbd2c3ee8a859d9a3fe32c41c6d..cfd20f5e3a468e5948e746da801ddc2b8291db3d 100644 --- a/app/code/Magento/Reports/Block/Adminhtml/Sales/Coupons.php +++ b/app/code/Magento/Reports/Block/Adminhtml/Sales/Coupons.php @@ -13,12 +13,14 @@ namespace Magento\Reports\Block\Adminhtml\Sales; class Coupons extends \Magento\Backend\Block\Widget\Grid\Container { /** + * Template file + * * @var string */ protected $_template = 'report/grid/container.phtml'; /** - * @return void + * {@inheritdoc} */ protected function _construct() { @@ -35,6 +37,8 @@ class Coupons extends \Magento\Backend\Block\Widget\Grid\Container } /** + * Get filter URL + * * @return string */ public function getFilterUrl() diff --git a/app/code/Magento/Reports/Block/Adminhtml/Sales/Coupons/Grid.php b/app/code/Magento/Reports/Block/Adminhtml/Sales/Coupons/Grid.php index c04265b1c531f9c8eaef861a81eacdd8998afc84..cf79f4c06682831286c114354b47d1943008b5ed 100644 --- a/app/code/Magento/Reports/Block/Adminhtml/Sales/Coupons/Grid.php +++ b/app/code/Magento/Reports/Block/Adminhtml/Sales/Coupons/Grid.php @@ -14,12 +14,15 @@ namespace Magento\Reports\Block\Adminhtml\Sales\Coupons; class Grid extends \Magento\Reports\Block\Adminhtml\Grid\AbstractGrid { /** + * GROUP BY criteria + * * @var string */ protected $_columnGroupBy = 'period'; /** - * @return void + * {@inheritdoc} + * @codeCoverageIgnore */ protected function _construct() { @@ -29,7 +32,7 @@ class Grid extends \Magento\Reports\Block\Adminhtml\Grid\AbstractGrid } /** - * @return string + * {@inheritdoc} */ public function getResourceCollectionName() { @@ -41,7 +44,7 @@ class Grid extends \Magento\Reports\Block\Adminhtml\Grid\AbstractGrid } /** - * @return \Magento\Backend\Block\Widget\Grid\Extended + * {@inheritdoc} * @SuppressWarnings(PHPMD.ExcessiveMethodLength) */ protected function _prepareColumns() diff --git a/app/code/Magento/Reports/Block/Adminhtml/Sales/Grid/Column/Renderer/Date.php b/app/code/Magento/Reports/Block/Adminhtml/Sales/Grid/Column/Renderer/Date.php index b18faf62ef5530eefda4516a5de9410c0277468a..30b6fccb13435e396ce06d6383768b301f0f399c 100644 --- a/app/code/Magento/Reports/Block/Adminhtml/Sales/Grid/Column/Renderer/Date.php +++ b/app/code/Magento/Reports/Block/Adminhtml/Sales/Grid/Column/Renderer/Date.php @@ -13,6 +13,8 @@ use Magento\Framework\Locale\Bundle\DataBundle; class Date extends \Magento\Backend\Block\Widget\Grid\Column\Renderer\Date { /** + * Constructor + * * @param \Magento\Backend\Block\Context $context * @param \Magento\Framework\Locale\ResolverInterface $localeResolver * @param array $data diff --git a/app/code/Magento/Reports/Block/Adminhtml/Sales/Invoiced.php b/app/code/Magento/Reports/Block/Adminhtml/Sales/Invoiced.php index 3b6cf45846551dae90daad88e9d1b02f3e186793..e6de75fb9545e9723b5a02f1e87ee9f4cc434259 100644 --- a/app/code/Magento/Reports/Block/Adminhtml/Sales/Invoiced.php +++ b/app/code/Magento/Reports/Block/Adminhtml/Sales/Invoiced.php @@ -13,12 +13,14 @@ namespace Magento\Reports\Block\Adminhtml\Sales; class Invoiced extends \Magento\Backend\Block\Widget\Grid\Container { /** + * Template file + * * @var string */ protected $_template = 'report/grid/container.phtml'; /** - * @return void + * {@inheritdoc} */ protected function _construct() { @@ -35,6 +37,8 @@ class Invoiced extends \Magento\Backend\Block\Widget\Grid\Container } /** + * Get filter URL + * * @return string */ public function getFilterUrl() diff --git a/app/code/Magento/Reports/Block/Adminhtml/Sales/Invoiced/Grid.php b/app/code/Magento/Reports/Block/Adminhtml/Sales/Invoiced/Grid.php index 414c2e775872a1e9a36795e820c9b417533c1416..854520bafad351539f350b4f1c9369db8fdd0372 100644 --- a/app/code/Magento/Reports/Block/Adminhtml/Sales/Invoiced/Grid.php +++ b/app/code/Magento/Reports/Block/Adminhtml/Sales/Invoiced/Grid.php @@ -4,8 +4,6 @@ * See COPYING.txt for license details. */ -// @codingStandardsIgnoreFile - namespace Magento\Reports\Block\Adminhtml\Sales\Invoiced; /** @@ -17,12 +15,15 @@ namespace Magento\Reports\Block\Adminhtml\Sales\Invoiced; class Grid extends \Magento\Reports\Block\Adminhtml\Grid\AbstractGrid { /** + * GROUP BY condition + * * @var string */ protected $_columnGroupBy = 'period'; /** - * @return void + * {@inheritdoc} + * @codeCoverageIgnore */ protected function _construct() { @@ -31,18 +32,17 @@ class Grid extends \Magento\Reports\Block\Adminhtml\Grid\AbstractGrid } /** - * @return string + * {@inheritdoc} */ public function getResourceCollectionName() { - return $this->getFilterData()->getData( - 'report_type' - ) == - 'created_at_invoice' ? 'Magento\Sales\Model\Resource\Report\Invoiced\Collection\Invoiced' : 'Magento\Sales\Model\Resource\Report\Invoiced\Collection\Order'; + return ($this->getFilterData()->getData('report_type')) == 'created_at_invoice' + ? 'Magento\Sales\Model\Resource\Report\Invoiced\Collection\Invoiced' + : 'Magento\Sales\Model\Resource\Report\Invoiced\Collection\Order'; } /** - * @return \Magento\Backend\Block\Widget\Grid\Extended + * {@inheritdoc} */ protected function _prepareColumns() { diff --git a/app/code/Magento/Reports/Block/Adminhtml/Sales/Refunded.php b/app/code/Magento/Reports/Block/Adminhtml/Sales/Refunded.php index 6ff26a3822b8a7f76f37ff4a046314317f538db0..c48dee92771a07839ef2e352350d0ed9a52f8446 100644 --- a/app/code/Magento/Reports/Block/Adminhtml/Sales/Refunded.php +++ b/app/code/Magento/Reports/Block/Adminhtml/Sales/Refunded.php @@ -13,12 +13,14 @@ namespace Magento\Reports\Block\Adminhtml\Sales; class Refunded extends \Magento\Backend\Block\Widget\Grid\Container { /** + * Template file + * * @var string */ protected $_template = 'report/grid/container.phtml'; /** - * @return void + * {@inheritdoc} */ protected function _construct() { @@ -35,6 +37,8 @@ class Refunded extends \Magento\Backend\Block\Widget\Grid\Container } /** + * Get filter URL + * * @return string */ public function getFilterUrl() diff --git a/app/code/Magento/Reports/Block/Adminhtml/Sales/Refunded/Grid.php b/app/code/Magento/Reports/Block/Adminhtml/Sales/Refunded/Grid.php index e5f68a315f74013a51de8df19dc74cfbc996efb5..c3964e9675cd7f4b67807df54e548cef34028d13 100644 --- a/app/code/Magento/Reports/Block/Adminhtml/Sales/Refunded/Grid.php +++ b/app/code/Magento/Reports/Block/Adminhtml/Sales/Refunded/Grid.php @@ -4,8 +4,6 @@ * See COPYING.txt for license details. */ -// @codingStandardsIgnoreFile - namespace Magento\Reports\Block\Adminhtml\Sales\Refunded; /** @@ -17,12 +15,15 @@ namespace Magento\Reports\Block\Adminhtml\Sales\Refunded; class Grid extends \Magento\Reports\Block\Adminhtml\Grid\AbstractGrid { /** + * GROUP BY criteria + * * @var string */ protected $_columnGroupBy = 'period'; /** - * @return void + * {@inheritdoc} + * @codeCoverageIgnore */ protected function _construct() { @@ -31,18 +32,17 @@ class Grid extends \Magento\Reports\Block\Adminhtml\Grid\AbstractGrid } /** - * @return string + * {@inheritdoc} */ public function getResourceCollectionName() { - return $this->getFilterData()->getData( - 'report_type' - ) == - 'created_at_refunded' ? 'Magento\Sales\Model\Resource\Report\Refunded\Collection\Refunded' : 'Magento\Sales\Model\Resource\Report\Refunded\Collection\Order'; + return $this->getFilterData()->getData('report_type') == 'created_at_refunded' + ? 'Magento\Sales\Model\Resource\Report\Refunded\Collection\Refunded' + : 'Magento\Sales\Model\Resource\Report\Refunded\Collection\Order'; } /** - * @return \Magento\Backend\Block\Widget\Grid\Extended + * {@inheritdoc} */ protected function _prepareColumns() { diff --git a/app/code/Magento/Reports/Block/Adminhtml/Sales/Sales.php b/app/code/Magento/Reports/Block/Adminhtml/Sales/Sales.php index 6c6ca70730a2111e637426a159365a973a5be8e3..ad43f74e52646da9445d0d8a2c12500f3b761f8f 100644 --- a/app/code/Magento/Reports/Block/Adminhtml/Sales/Sales.php +++ b/app/code/Magento/Reports/Block/Adminhtml/Sales/Sales.php @@ -13,12 +13,14 @@ namespace Magento\Reports\Block\Adminhtml\Sales; class Sales extends \Magento\Backend\Block\Widget\Grid\Container { /** + * Template file + * * @var string */ protected $_template = 'report/grid/container.phtml'; /** - * @return void + * {@inheritdoc} */ protected function _construct() { @@ -35,6 +37,8 @@ class Sales extends \Magento\Backend\Block\Widget\Grid\Container } /** + * Get filter URL + * * @return string */ public function getFilterUrl() diff --git a/app/code/Magento/Reports/Block/Adminhtml/Sales/Sales/Grid.php b/app/code/Magento/Reports/Block/Adminhtml/Sales/Sales/Grid.php index 012e170b2c269dac90cdd6b43d1461edf4aa4ee4..6f7b99bb8941fe4cef1547a952e9e00583bfb9c0 100644 --- a/app/code/Magento/Reports/Block/Adminhtml/Sales/Sales/Grid.php +++ b/app/code/Magento/Reports/Block/Adminhtml/Sales/Sales/Grid.php @@ -4,8 +4,6 @@ * See COPYING.txt for license details. */ -// @codingStandardsIgnoreFile - namespace Magento\Reports\Block\Adminhtml\Sales\Sales; /** @@ -17,12 +15,15 @@ namespace Magento\Reports\Block\Adminhtml\Sales\Sales; class Grid extends \Magento\Reports\Block\Adminhtml\Grid\AbstractGrid { /** + * GROUP BY criteria + * * @var string */ protected $_columnGroupBy = 'period'; /** - * @return void + * {@inheritdoc} + * @codeCoverageIgnore */ protected function _construct() { @@ -31,18 +32,18 @@ class Grid extends \Magento\Reports\Block\Adminhtml\Grid\AbstractGrid } /** - * @return string + * {@inheritdoc} */ public function getResourceCollectionName() { - return $this->getFilterData()->getData( - 'report_type' - ) == - 'updated_at_order' ? 'Magento\Sales\Model\Resource\Report\Order\Updatedat\Collection' : 'Magento\Sales\Model\Resource\Report\Order\Collection'; + return $this->getFilterData()->getData('report_type') == 'updated_at_order' + ? 'Magento\Sales\Model\Resource\Report\Order\Updatedat\Collection' + : 'Magento\Sales\Model\Resource\Report\Order\Collection'; } /** - * @return \Magento\Backend\Block\Widget\Grid\Extended + * {@inheritdoc} + * * @SuppressWarnings(PHPMD.ExcessiveMethodLength) */ protected function _prepareColumns() diff --git a/app/code/Magento/Reports/Block/Adminhtml/Sales/Shipping.php b/app/code/Magento/Reports/Block/Adminhtml/Sales/Shipping.php index 0499c0ee07af14dbf113e5a4fc6aa388bdb4f04e..e72406788d3ec9a30fe366c536e7d68d80fb222d 100644 --- a/app/code/Magento/Reports/Block/Adminhtml/Sales/Shipping.php +++ b/app/code/Magento/Reports/Block/Adminhtml/Sales/Shipping.php @@ -13,12 +13,14 @@ namespace Magento\Reports\Block\Adminhtml\Sales; class Shipping extends \Magento\Backend\Block\Widget\Grid\Container { /** + * Template file + * * @var string */ protected $_template = 'report/grid/container.phtml'; /** - * @return void + * {@inheritdoc} */ protected function _construct() { @@ -35,6 +37,8 @@ class Shipping extends \Magento\Backend\Block\Widget\Grid\Container } /** + * Get filter URL + * * @return string */ public function getFilterUrl() diff --git a/app/code/Magento/Reports/Block/Adminhtml/Sales/Shipping/Grid.php b/app/code/Magento/Reports/Block/Adminhtml/Sales/Shipping/Grid.php index ee594aaa3447565990652114cee7ba498b1f3011..28d8bbe6b196fb55963f61797c95a09962960e50 100644 --- a/app/code/Magento/Reports/Block/Adminhtml/Sales/Shipping/Grid.php +++ b/app/code/Magento/Reports/Block/Adminhtml/Sales/Shipping/Grid.php @@ -4,8 +4,6 @@ * See COPYING.txt for license details. */ -// @codingStandardsIgnoreFile - namespace Magento\Reports\Block\Adminhtml\Sales\Shipping; /** @@ -17,12 +15,15 @@ namespace Magento\Reports\Block\Adminhtml\Sales\Shipping; class Grid extends \Magento\Reports\Block\Adminhtml\Grid\AbstractGrid { /** + * Group by criteria + * * @var string */ protected $_columnGroupBy = 'period'; /** - * @return void + * {@inheritdoc} + * @codeCoverageIgnore */ protected function _construct() { @@ -32,18 +33,17 @@ class Grid extends \Magento\Reports\Block\Adminhtml\Grid\AbstractGrid } /** - * @return string + * {@inheritdoc} */ public function getResourceCollectionName() { - return $this->getFilterData()->getData( - 'report_type' - ) == - 'created_at_shipment' ? 'Magento\Sales\Model\Resource\Report\Shipping\Collection\Shipment' : 'Magento\Sales\Model\Resource\Report\Shipping\Collection\Order'; + return $this->getFilterData()->getData('report_type') == 'created_at_shipment' + ? 'Magento\Sales\Model\Resource\Report\Shipping\Collection\Shipment' + : 'Magento\Sales\Model\Resource\Report\Shipping\Collection\Order'; } /** - * @return \Magento\Backend\Block\Widget\Grid\Extended + * {@inheritdoc} */ protected function _prepareColumns() { diff --git a/app/code/Magento/Reports/Block/Adminhtml/Sales/Tax.php b/app/code/Magento/Reports/Block/Adminhtml/Sales/Tax.php index 767760eabb655e8849f345c7db16503ce145432e..ed27f1616518c78751c902e7433f2c8a35b86511 100644 --- a/app/code/Magento/Reports/Block/Adminhtml/Sales/Tax.php +++ b/app/code/Magento/Reports/Block/Adminhtml/Sales/Tax.php @@ -13,12 +13,14 @@ namespace Magento\Reports\Block\Adminhtml\Sales; class Tax extends \Magento\Backend\Block\Widget\Grid\Container { /** + * Template file + * * @var string */ protected $_template = 'report/grid/container.phtml'; /** - * @return void + * {@inheritdoc} */ protected function _construct() { @@ -35,6 +37,8 @@ class Tax extends \Magento\Backend\Block\Widget\Grid\Container } /** + * Get filter URL + * * @return string */ public function getFilterUrl() diff --git a/app/code/Magento/Reports/Block/Adminhtml/Sales/Tax/Grid.php b/app/code/Magento/Reports/Block/Adminhtml/Sales/Tax/Grid.php index 48c3a647299b4b3cc76dde1dd63ed36a0e05f7a2..7196f1ff332533630ba0241383ffc6cd6a12e030 100644 --- a/app/code/Magento/Reports/Block/Adminhtml/Sales/Tax/Grid.php +++ b/app/code/Magento/Reports/Block/Adminhtml/Sales/Tax/Grid.php @@ -4,8 +4,6 @@ * See COPYING.txt for license details. */ -// @codingStandardsIgnoreFile - namespace Magento\Reports\Block\Adminhtml\Sales\Tax; /** @@ -17,16 +15,22 @@ namespace Magento\Reports\Block\Adminhtml\Sales\Tax; class Grid extends \Magento\Reports\Block\Adminhtml\Grid\AbstractGrid { /** + * GROUP BY criteria + * * @var string */ protected $_columnGroupBy = 'period'; /** + * Config factory + * * @var \Magento\Sales\Model\Order\ConfigFactory */ protected $_configFactory; /** + * Constructor + * * @param \Magento\Backend\Block\Template\Context $context * @param \Magento\Backend\Helper\Data $backendHelper * @param \Magento\Reports\Model\Resource\Report\Collection\Factory $resourceFactory @@ -49,7 +53,8 @@ class Grid extends \Magento\Reports\Block\Adminhtml\Grid\AbstractGrid } /** - * @return void + * {@inheritdoc} + * @codeCoverageIgnore */ protected function _construct() { @@ -59,18 +64,17 @@ class Grid extends \Magento\Reports\Block\Adminhtml\Grid\AbstractGrid } /** - * @return string + * {@inheritdoc} */ public function getResourceCollectionName() { - return $this->getFilterData()->getData( - 'report_type' - ) == - 'updated_at_order' ? 'Magento\Tax\Model\Resource\Report\Updatedat\Collection' : 'Magento\Tax\Model\Resource\Report\Collection'; + return $this->getFilterData()->getData('report_type') == 'updated_at_order' + ? 'Magento\Tax\Model\Resource\Report\Updatedat\Collection' + : 'Magento\Tax\Model\Resource\Report\Collection'; } /** - * @return \Magento\Backend\Block\Widget\Grid\Extended + * {@inheritdoc} */ protected function _prepareColumns() { diff --git a/app/code/Magento/Reports/Block/Adminhtml/Wishlist.php b/app/code/Magento/Reports/Block/Adminhtml/Wishlist.php index 690c98b4d692559de2d645c23623801f0ebe4705..df114f5e653e6b121874ab9aad21a71174abcb43 100644 --- a/app/code/Magento/Reports/Block/Adminhtml/Wishlist.php +++ b/app/code/Magento/Reports/Block/Adminhtml/Wishlist.php @@ -4,8 +4,6 @@ * See COPYING.txt for license details. */ -// @codingStandardsIgnoreFile - namespace Magento\Reports\Block\Adminhtml; /** @@ -16,36 +14,8 @@ namespace Magento\Reports\Block\Adminhtml; class Wishlist extends \Magento\Backend\Block\Template { /** - * @var int - */ - public $wishlists_count; - - /** - * @var int - */ - public $items_bought; - - /** - * @var int - */ - public $shared_count; - - /** - * @var int - */ - public $referrals_count; - - /** - * @var int - */ - public $conversions_count; - - /** - * @var int - */ - public $customer_with_wishlist; - - /** + * Template file + * * @var string */ protected $_template = 'report/wishlist.phtml'; @@ -58,6 +28,8 @@ class Wishlist extends \Magento\Backend\Block\Template protected $_wishlistFactory; /** + * Constructor + * * @param \Magento\Backend\Block\Template\Context $context * @param \Magento\Reports\Model\Resource\Wishlist\CollectionFactory $wishlistFactory * @param array $data @@ -72,9 +44,9 @@ class Wishlist extends \Magento\Backend\Block\Template } /** - * @return $this + * {@inheritdoc} */ - public function _beforeToHtml() + protected function _beforeToHtml() { $this->setChild( 'grid', diff --git a/app/code/Magento/Reports/Block/Product/AbstractProduct.php b/app/code/Magento/Reports/Block/Product/AbstractProduct.php index dfe51eea66fed23301c4f8d4a0d9bdb6945e4d69..cf420b4d3cebeddc38077c1f3619ac4ae5fcf403 100644 --- a/app/code/Magento/Reports/Block/Product/AbstractProduct.php +++ b/app/code/Magento/Reports/Block/Product/AbstractProduct.php @@ -81,11 +81,11 @@ abstract class AbstractProduct extends \Magento\Catalog\Block\Product\AbstractPr } /** - * Retrieve Product Index model instance + * Public method for retrieve Product Index model * * @return \Magento\Reports\Model\Product\Index\AbstractIndex */ - protected function _getModel() + public function getModel() { try { $model = $this->_indexFactory->get($this->_indexType); @@ -96,16 +96,6 @@ abstract class AbstractProduct extends \Magento\Catalog\Block\Product\AbstractPr return $model; } - /** - * Public method for retrieve Product Index model - * - * @return \Magento\Reports\Model\Product\Index\AbstractIndex - */ - public function getModel() - { - return $this->_getModel(); - } - /** * Retrieve Index Product Collection * @@ -116,14 +106,14 @@ abstract class AbstractProduct extends \Magento\Catalog\Block\Product\AbstractPr if ($this->_collection === null) { $attributes = $this->_catalogConfig->getProductAttributes(); - $this->_collection = $this->_getModel()->getCollection()->addAttributeToSelect($attributes); + $this->_collection = $this->getModel()->getCollection()->addAttributeToSelect($attributes); if ($this->getCustomerId()) { $this->_collection->setCustomerId($this->getCustomerId()); } $this->_collection->excludeProductIds( - $this->_getModel()->getExcludeProductIds() + $this->getModel()->getExcludeProductIds() )->addUrlRewrite()->setPageSize( $this->getPageSize() )->setCurPage( @@ -152,7 +142,7 @@ abstract class AbstractProduct extends \Magento\Catalog\Block\Product\AbstractPr */ public function getCount() { - if (!$this->_getModel()->getCount()) { + if (!$this->getModel()->getCount()) { return 0; } return $this->getItemsCollection()->count(); diff --git a/app/code/Magento/Reports/Block/Product/Compared.php b/app/code/Magento/Reports/Block/Product/Compared.php index 6693d0053ea87edac053ff4e54bb3ada3de04152..67e3d641b829a4c8add0ba1df7fa85749c9f79f7 100644 --- a/app/code/Magento/Reports/Block/Product/Compared.php +++ b/app/code/Magento/Reports/Block/Product/Compared.php @@ -4,8 +4,6 @@ * See COPYING.txt for license details. */ -// @codingStandardsIgnoreFile - namespace Magento\Reports\Block\Product; /** @@ -15,6 +13,9 @@ namespace Magento\Reports\Block\Product; */ class Compared extends \Magento\Reports\Block\Product\AbstractProduct { + /** + * Config path for compared products count + */ const XML_PATH_RECENTLY_COMPARED_COUNT = 'catalog/recently_products/compared_count'; /** @@ -34,7 +35,10 @@ class Compared extends \Magento\Reports\Block\Product\AbstractProduct if ($this->hasData('page_size')) { return $this->getData('page_size'); } - return $this->_scopeConfig->getValue(self::XML_PATH_RECENTLY_COMPARED_COUNT, \Magento\Store\Model\ScopeInterface::SCOPE_STORE); + return $this->_scopeConfig->getValue( + self::XML_PATH_RECENTLY_COMPARED_COUNT, + \Magento\Store\Model\ScopeInterface::SCOPE_STORE + ); } /** diff --git a/app/code/Magento/Reports/Block/Product/Viewed.php b/app/code/Magento/Reports/Block/Product/Viewed.php index 947c90c89505ce4e8957ff7870c13862da31f526..9a689ec5a6da59c758e9b85e01125a27f897089e 100644 --- a/app/code/Magento/Reports/Block/Product/Viewed.php +++ b/app/code/Magento/Reports/Block/Product/Viewed.php @@ -4,17 +4,20 @@ * See COPYING.txt for license details. */ -// @codingStandardsIgnoreFile - namespace Magento\Reports\Block\Product; +use \Magento\Framework\Object\IdentityInterface; + /** * Reports Recently Viewed Products Block * * @author Magento Core Team <core@magentocommerce.com> */ -class Viewed extends \Magento\Reports\Block\Product\AbstractProduct implements \Magento\Framework\Object\IdentityInterface +class Viewed extends AbstractProduct implements IdentityInterface { + /** + * Config path to recently viewed product count + */ const XML_PATH_RECENTLY_VIEWED_COUNT = 'catalog/recently_products/viewed_count'; /** @@ -34,7 +37,10 @@ class Viewed extends \Magento\Reports\Block\Product\AbstractProduct implements \ if ($this->hasData('page_size')) { return $this->getData('page_size'); } - return $this->_scopeConfig->getValue(self::XML_PATH_RECENTLY_VIEWED_COUNT, \Magento\Store\Model\ScopeInterface::SCOPE_STORE); + return $this->_scopeConfig->getValue( + self::XML_PATH_RECENTLY_VIEWED_COUNT, + \Magento\Store\Model\ScopeInterface::SCOPE_STORE + ); } /** diff --git a/app/code/Magento/Reports/Helper/Data.php b/app/code/Magento/Reports/Helper/Data.php index 50856d3b37cde36d9b1066dcc9aa5d608a004b9b..c33b0791a559ec899c8477972f803320245df473 100644 --- a/app/code/Magento/Reports/Helper/Data.php +++ b/app/code/Magento/Reports/Helper/Data.php @@ -4,8 +4,6 @@ * See COPYING.txt for license details. */ -// @codingStandardsIgnoreFile - /** * Reports data helper */ @@ -23,16 +21,22 @@ class Data extends \Magento\Framework\App\Helper\AbstractHelper const REPORT_PERIOD_TYPE_YEAR = 'year'; /** + * Item factory + * * @var \Magento\Reports\Model\ItemFactory */ protected $_itemFactory; /** + * Constructor + * * @param \Magento\Framework\App\Helper\Context $context * @param \Magento\Reports\Model\ItemFactory $itemFactory */ - public function __construct(\Magento\Framework\App\Helper\Context $context, \Magento\Reports\Model\ItemFactory $itemFactory) - { + public function __construct( + \Magento\Framework\App\Helper\Context $context, + \Magento\Reports\Model\ItemFactory $itemFactory + ) { parent::__construct($context); $this->_itemFactory = $itemFactory; } @@ -55,7 +59,7 @@ class Data extends \Magento\Framework\App\Helper\AbstractHelper $dateStart = new \DateTime($from); $dateEnd = new \DateTime($to); - while ($dateStart->diff($dateEnd)->invert = 0) { + while ($dateStart->diff($dateEnd)->invert == 0) { switch ($period) { case self::REPORT_PERIOD_TYPE_DAY: $intervals[] = $dateStart->format('Y-m-d'); diff --git a/app/code/Magento/Reports/Model/Flag.php b/app/code/Magento/Reports/Model/Flag.php index d289a0ce35412498b963fb7ce3e3059591fcf7f5..3782a655f24862cbf5dee4291ed8ab0832a9fa3e 100644 --- a/app/code/Magento/Reports/Model/Flag.php +++ b/app/code/Magento/Reports/Model/Flag.php @@ -30,6 +30,7 @@ class Flag extends \Magento\Framework\Flag /** * Setter for flag code + * @codeCoverageIgnore * * @param string $code * @return $this diff --git a/app/code/Magento/Reports/Model/Grouped/Collection.php b/app/code/Magento/Reports/Model/Grouped/Collection.php index 6f8e9d561dad6cd65a5ea80b76e2a15465c1f50f..3f00e36c1a7a7ec4d78f975baaa33bd3bc3f747d 100644 --- a/app/code/Magento/Reports/Model/Grouped/Collection.php +++ b/app/code/Magento/Reports/Model/Grouped/Collection.php @@ -25,6 +25,7 @@ class Collection extends \Magento\Framework\Data\Collection /** * Set column to group by + * @codeCoverageIgnore * * @param string $column * @return $this @@ -61,6 +62,7 @@ class Collection extends \Magento\Framework\Data\Collection /** * Setter for resource collection + * @codeCoverageIgnore * * @param DbCollection $collection * @return $this diff --git a/app/code/Magento/Reports/Model/Item.php b/app/code/Magento/Reports/Model/Item.php index ecc9c805e91722136affdff251c4123ca873613c..01a60c397c5eab8bc83b6345979e1f982601ee9b 100644 --- a/app/code/Magento/Reports/Model/Item.php +++ b/app/code/Magento/Reports/Model/Item.php @@ -19,6 +19,7 @@ class Item extends \Magento\Framework\Object /** * Set is empty indicator + * @codeCoverageIgnore * * @param bool $flag * @return $this @@ -31,6 +32,7 @@ class Item extends \Magento\Framework\Object /** * Get is empty indicator + * @codeCoverageIgnore * * @return bool * @SuppressWarnings(PHPMD.BooleanGetMethodName) @@ -49,6 +51,7 @@ class Item extends \Magento\Framework\Object /** * Get children + * @codeCoverageIgnore * * @return array */ @@ -59,6 +62,7 @@ class Item extends \Magento\Framework\Object /** * Set children + * @codeCoverageIgnore * * @param array $children * @return $this diff --git a/app/code/Magento/Reports/Model/Resource/Event/Collection.php b/app/code/Magento/Reports/Model/Resource/Event/Collection.php index 7a515823998ef5c5787fbd9fdb1fd72f4f30ee00..94124028fdb3716c430e6c44bfdf3497786988b0 100644 --- a/app/code/Magento/Reports/Model/Resource/Event/Collection.php +++ b/app/code/Magento/Reports/Model/Resource/Event/Collection.php @@ -32,6 +32,7 @@ class Collection extends \Magento\Framework\Model\Resource\Db\Collection\Abstrac /** * Add store ids filter + * @codeCoverageIgnore * * @param array $storeIds * @return $this diff --git a/app/code/Magento/Reports/Model/Resource/Order/Collection.php b/app/code/Magento/Reports/Model/Resource/Order/Collection.php index 60b24016381f63220ffc29feabe48525f12be626..07c2e2aa8c4a76d1d262f38904d52b00ea622f99 100644 --- a/app/code/Magento/Reports/Model/Resource/Order/Collection.php +++ b/app/code/Magento/Reports/Model/Resource/Order/Collection.php @@ -4,8 +4,6 @@ * See COPYING.txt for license details. */ -// @codingStandardsIgnoreFile - namespace Magento\Reports\Model\Resource\Order; use Magento\Framework\DB\Select; @@ -40,26 +38,36 @@ class Collection extends \Magento\Sales\Model\Resource\Order\Collection protected $_scopeConfig; /** + * Store manager instance + * * @var \Magento\Store\Model\StoreManagerInterface */ protected $_storeManager; /** + * Locale date instance + * * @var \Magento\Framework\Stdlib\DateTime\TimezoneInterface */ protected $_localeDate; /** + * Order config instance + * * @var \Magento\Sales\Model\Order\Config */ protected $_orderConfig; /** + * Reports order factory + * * @var \Magento\Sales\Model\Resource\Report\OrderFactory */ protected $_reportOrderFactory; /** + * Constructor + * * @param \Magento\Framework\Data\Collection\EntityFactory $entityFactory * @param \Psr\Log\LoggerInterface $logger * @param \Magento\Framework\Data\Collection\Db\FetchStrategyInterface $fetchStrategy @@ -128,6 +136,7 @@ class Collection extends \Magento\Sales\Model\Resource\Order\Collection * Retrieve is live flag for rep * * @return bool + * @codeCoverageIgnore */ public function isLive() { @@ -162,7 +171,7 @@ class Collection extends \Magento\Sales\Model\Resource\Order\Collection */ protected function _getSalesAmountExpression() { - if (is_null($this->_salesAmountExpression)) { + if (null === $this->_salesAmountExpression) { $adapter = $this->getConnection(); $expressionTransferObject = new \Magento\Framework\Object( [ @@ -257,8 +266,8 @@ class Collection extends \Magento\Sales\Model\Resource\Order\Collection * Prepare report summary from aggregated data * * @param string $range - * @param mixed $customStart - * @param mixed $customEnd + * @param string|null $customStart + * @param string|null $customEnd * @return $this */ protected function _prepareSummaryAggregated($range, $customStart, $customEnd) @@ -271,13 +280,13 @@ class Collection extends \Magento\Sales\Model\Resource\Order\Collection $rangePeriod = $this->_getRangeExpressionForAttribute($range, 'main_table.period'); $tableName = $this->getConnection()->quoteIdentifier('main_table.period'); - $rangePeriod2 = str_replace($tableName, "MIN({$tableName})", $rangePeriod); + $rangePeriodAggregateStmt = str_replace($tableName, "MIN({$tableName})", $rangePeriod); $this->getSelect()->columns( [ 'revenue' => 'SUM(main_table.total_revenue_amount)', 'quantity' => 'SUM(main_table.orders_count)', - 'range' => $rangePeriod2, + 'range' => $rangePeriodAggregateStmt, ] )->order( 'range' @@ -349,8 +358,8 @@ class Collection extends \Magento\Sales\Model\Resource\Order\Collection * * @param string $range * @param string $attribute - * @param mixed $from - * @param mixed $to + * @param string|null $from + * @param string|null $to * @return string */ protected function _getTZRangeOffsetExpression($range, $attribute, $from = null, $to = null) @@ -665,7 +674,7 @@ class Collection extends \Magento\Sales\Model\Resource\Order\Collection /** * Set store filter collection * - * @param array $storeIds + * @param int[] $storeIds * @return $this */ public function setStoreIds($storeIds) @@ -778,16 +787,15 @@ class Collection extends \Magento\Sales\Model\Resource\Order\Collection */ public function addSumAvgTotals($storeId = 0) { - $adapter = $this->getConnection(); - $baseSubtotalRefunded = $adapter->getIfNullSql('main_table.base_subtotal_refunded', 0); - $baseSubtotalCanceled = $adapter->getIfNullSql('main_table.base_subtotal_canceled', 0); - $baseDiscountCanceled = $adapter->getIfNullSql('main_table.base_discount_canceled', 0); - /** * calculate average and total amount */ - $expr = $storeId == - 0 ? "(main_table.base_subtotal -\n {$baseSubtotalRefunded} - {$baseSubtotalCanceled} - ABS(main_table.base_discount_amount) -\n {$baseDiscountCanceled}) * main_table.base_to_global_rate" : "main_table.base_subtotal - {$baseSubtotalCanceled} - {$baseSubtotalRefunded} -\n ABS(main_table.base_discount_amount) - {$baseDiscountCanceled}"; + $expr = $this->getTotalsExpression( + $storeId, + $this->getConnection()->getIfNullSql('main_table.base_subtotal_refunded', 0), + $this->getConnection()->getIfNullSql('main_table.base_subtotal_canceled', 0), + $this->getConnection()->getIfNullSql('main_table.base_discount_canceled', 0) + ); $this->getSelect()->columns( ['orders_avg_amount' => "AVG({$expr})"] @@ -798,6 +806,28 @@ class Collection extends \Magento\Sales\Model\Resource\Order\Collection return $this; } + /** + * Get SQL expression for totals + * + * @param int $storeId + * @param string $baseSubtotalRefunded + * @param string $baseSubtotalCanceled + * @param string $baseDiscountCanceled + * @return string + */ + protected function getTotalsExpression( + $storeId, + $baseSubtotalRefunded, + $baseSubtotalCanceled, + $baseDiscountCanceled + ) { + $template = ($storeId != 0) + ? 'main_table.base_subtotal - %2$s - %1$s - ABS(main_table.base_discount_amount) - %3$s' + : '(main_table.base_subtotal - %1$s - %2$s - ABS(main_table.base_discount_amount) - %3$s) ' + . ' * main_table.base_to_global_rate'; + return sprintf($template, $baseSubtotalRefunded, $baseSubtotalCanceled, $baseDiscountCanceled); + } + /** * Sort order by total amount * @@ -869,6 +899,7 @@ class Collection extends \Magento\Sales\Model\Resource\Order\Collection * Initialize initial fields to select * * @return $this + * @codeCoverageIgnore */ protected function _initInitialFieldsToSelect() { diff --git a/app/code/Magento/Reports/Model/Resource/Product/Collection.php b/app/code/Magento/Reports/Model/Resource/Product/Collection.php index 3eb9ac629a26e8fdcd075618a98ea3c26357ce1a..7df4b5dc4d9d0bc3616cb6221d4609ad158f8f40 100644 --- a/app/code/Magento/Reports/Model/Resource/Product/Collection.php +++ b/app/code/Magento/Reports/Model/Resource/Product/Collection.php @@ -147,8 +147,8 @@ class Collection extends \Magento\Catalog\Model\Resource\Product\Collection /** * Set Type for COUNT SQL Select + * @codeCoverageIgnore * - * @codeCoverageIgnoreStart * @param int $type * @return $this */ @@ -160,6 +160,7 @@ class Collection extends \Magento\Catalog\Model\Resource\Product\Collection /** * Set product entity id + * @codeCoverageIgnore * * @param string $entityId * @return $this @@ -172,6 +173,7 @@ class Collection extends \Magento\Catalog\Model\Resource\Product\Collection /** * Get product entity id + * @codeCoverageIgnore * * @return int */ @@ -182,6 +184,7 @@ class Collection extends \Magento\Catalog\Model\Resource\Product\Collection /** * Set product entity table name + * @codeCoverageIgnore * * @param string $value * @return $this @@ -194,6 +197,7 @@ class Collection extends \Magento\Catalog\Model\Resource\Product\Collection /** * Get product entity table name + * @codeCoverageIgnore * * @return string */ @@ -204,6 +208,7 @@ class Collection extends \Magento\Catalog\Model\Resource\Product\Collection /** * Get product attribute set id + * @codeCoverageIgnore * * @return int */ @@ -214,6 +219,7 @@ class Collection extends \Magento\Catalog\Model\Resource\Product\Collection /** * Set product attribute set id + * @codeCoverageIgnore * * @param int $value * @return $this @@ -223,7 +229,6 @@ class Collection extends \Magento\Catalog\Model\Resource\Product\Collection $this->_productEntityAttributeSetId = $value; return $this; } - //@codeCoverageIgnoreEnd /** * Join fields diff --git a/app/code/Magento/Reports/Model/Resource/Product/Index/AbstractIndex.php b/app/code/Magento/Reports/Model/Resource/Product/Index/AbstractIndex.php index 52d72406cb130d56d6a11e75ed1d68e139268287..45b1c2c5e9d51e3bbb6a0633c821187f731434df 100644 --- a/app/code/Magento/Reports/Model/Resource/Product/Index/AbstractIndex.php +++ b/app/code/Magento/Reports/Model/Resource/Product/Index/AbstractIndex.php @@ -4,8 +4,6 @@ * See COPYING.txt for license details. */ -// @codingStandardsIgnoreFile - namespace Magento\Reports\Model\Resource\Product\Index; /** @@ -14,16 +12,22 @@ namespace Magento\Reports\Model\Resource\Product\Index; abstract class AbstractIndex extends \Magento\Framework\Model\Resource\Db\AbstractDb { /** + * DateItime instance + * * @var \Magento\Framework\Stdlib\DateTime */ protected $dateTime; /** + * Reports helper + * * @var \Magento\Reports\Model\Resource\Helper */ protected $_resourceHelper; /** + * Constructor + * * @param \Magento\Framework\Model\Resource\Db\Context $context * @param \Magento\Reports\Model\Resource\Helper $resourceHelper * @param \Magento\Framework\Stdlib\DateTime $dateTime @@ -55,7 +59,9 @@ abstract class AbstractIndex extends \Magento\Framework\Model\Resource\Db\Abstra return $this; } $adapter = $this->_getWriteAdapter(); - $select = $adapter->select()->from($this->getMainTable())->where('visitor_id = ?', $object->getVisitorId()); + $select = $adapter->select() + ->from($this->getMainTable()) + ->where('visitor_id = ?', $object->getVisitorId()); $rowSet = $select->query()->fetchAll(); foreach ($rowSet as $row) { @@ -76,7 +82,7 @@ abstract class AbstractIndex extends \Magento\Framework\Model\Resource\Db\Abstra if ($idx) { /** - * If we are here it means that we have two rows: one with known customer, but second just visitor is set + * If we are here it means that we have two rows: one with known customer and second with guest visitor * One row should be updated with customer_id, second should be deleted */ $adapter->delete($this->getMainTable(), ['index_id = ?' => $row['index_id']]); @@ -192,7 +198,7 @@ abstract class AbstractIndex extends \Magento\Framework\Model\Resource\Db\Abstra * Add information about product ids to visitor/customer * * @param \Magento\Framework\Object|\Magento\Reports\Model\Product\Index\AbstractIndex $object - * @param array $productIds + * @param int[] $productIds * @return $this */ public function registerIds(\Magento\Framework\Object $object, $productIds) diff --git a/app/code/Magento/Reports/Model/Resource/Product/Index/Collection/AbstractCollection.php b/app/code/Magento/Reports/Model/Resource/Product/Index/Collection/AbstractCollection.php index b172b4e053c274e51f42417e56f381343b2abb9d..77ea700b2cc00c843a8df396649870d0e9009b67 100644 --- a/app/code/Magento/Reports/Model/Resource/Product/Index/Collection/AbstractCollection.php +++ b/app/code/Magento/Reports/Model/Resource/Product/Index/Collection/AbstractCollection.php @@ -179,6 +179,7 @@ abstract class AbstractCollection extends \Magento\Catalog\Model\Resource\Produc /** * Set customer id, that will be used in 'whereCondition' + * @codeCoverageIgnore * * @param int $id * @return $this diff --git a/app/code/Magento/Reports/Model/Resource/Product/Index/Viewed.php b/app/code/Magento/Reports/Model/Resource/Product/Index/Viewed.php index 0ad3ffd330f063475affcd8cb56e36a9e5b4b7b8..93a22cf0011189fb11b3306525879f4f7b4685a1 100644 --- a/app/code/Magento/Reports/Model/Resource/Product/Index/Viewed.php +++ b/app/code/Magento/Reports/Model/Resource/Product/Index/Viewed.php @@ -17,6 +17,7 @@ class Viewed extends \Magento\Reports\Model\Resource\Product\Index\AbstractIndex * Initialize connection and main resource table * * @return void + * @codeCoverageIgnore */ protected function _construct() { diff --git a/app/code/Magento/Reports/Model/Resource/Report/AbstractReport.php b/app/code/Magento/Reports/Model/Resource/Report/AbstractReport.php index 84a6d7d6a25efac94bd4ff2f7f3935a5c2ee70c1..777d13232b2a349e64b58ff63cd0b382012232a6 100644 --- a/app/code/Magento/Reports/Model/Resource/Report/AbstractReport.php +++ b/app/code/Magento/Reports/Model/Resource/Report/AbstractReport.php @@ -4,8 +4,6 @@ * See COPYING.txt for license details. */ -// @codingStandardsIgnoreFile - namespace Magento\Reports\Model\Resource\Report; /** @@ -22,21 +20,29 @@ abstract class AbstractReport extends \Magento\Framework\Model\Resource\Db\Abstr protected $_flag = null; /** + * Logger instance + * * @var \Psr\Log\LoggerInterface */ protected $_logger; /** + * Locale date instance + * * @var \Magento\Framework\Stdlib\DateTime\TimezoneInterface */ protected $_localeDate; /** + * Reports flag factory + * * @var \Magento\Reports\Model\FlagFactory */ protected $_reportsFlagFactory; /** + * Constructor + * * @param \Magento\Framework\Model\Resource\Db\Context $context * @param \Psr\Log\LoggerInterface $logger * @param \Magento\Framework\Stdlib\DateTime\TimezoneInterface $localeDate @@ -179,7 +185,7 @@ abstract class AbstractReport extends \Magento\Framework\Model\Resource\Db\Abstr * @param string $whereColumn * @param null|string|\DateTime $from * @param null|string|\DateTime $to - * @param array $additionalWhere + * @param [][] $additionalWhere * @param string $alias * @return \Magento\Framework\DB\Select */ @@ -281,12 +287,12 @@ abstract class AbstractReport extends \Magento\Framework\Model\Resource\Db\Abstr * * @param string $table * @param string $relatedTable - * @param array $joinCondition + * @param [] $joinCondition * @param string $column * @param string $whereColumn * @param string|null $from * @param string|null $to - * @param array $additionalWhere + * @param [][] $additionalWhere * @param string $alias * @param string $relatedAlias * @return \Magento\Framework\DB\Select @@ -353,7 +359,7 @@ abstract class AbstractReport extends \Magento\Framework\Model\Resource\Db\Abstr /** * Retrieve query for attribute with timezone conversion * - * @param string|array $table + * @param string|[] $table * @param string $column * @param null|mixed $from * @param null|mixed $to diff --git a/app/code/Magento/Reports/Model/Resource/Report/Collection.php b/app/code/Magento/Reports/Model/Resource/Report/Collection.php index 2de5f389f25247113bbb141ddfc84486d8ab7bd6..abc6db15ad0380ba97d6d0efc337961c4b775f65 100644 --- a/app/code/Magento/Reports/Model/Resource/Report/Collection.php +++ b/app/code/Magento/Reports/Model/Resource/Report/Collection.php @@ -96,6 +96,7 @@ class Collection extends \Magento\Framework\Data\Collection /** * Set period + * @codeCoverageIgnore * * @param int $period * @return $this @@ -108,6 +109,7 @@ class Collection extends \Magento\Framework\Data\Collection /** * Set interval + * @codeCoverageIgnore * * @param \DateTime $fromDate * @param \DateTime $toDate @@ -260,6 +262,7 @@ class Collection extends \Magento\Framework\Data\Collection /** * Set store ids + * @codeCoverageIgnore * * @param array $storeIds * @return $this @@ -272,6 +275,7 @@ class Collection extends \Magento\Framework\Data\Collection /** * Get store ids + * @codeCoverageIgnore * * @return array */ @@ -292,6 +296,7 @@ class Collection extends \Magento\Framework\Data\Collection /** * Set page size + * @codeCoverageIgnore * * @param int $size * @return $this @@ -304,6 +309,7 @@ class Collection extends \Magento\Framework\Data\Collection /** * Get page size + * @codeCoverageIgnore * * @return int */ diff --git a/app/code/Magento/Reports/Model/Resource/Report/Collection/AbstractCollection.php b/app/code/Magento/Reports/Model/Resource/Report/Collection/AbstractCollection.php index 234d520b32b126a6641fb8288b09c2e990fe19de..4575ec6394c844f38d4d871042095f612de90e9e 100644 --- a/app/code/Magento/Reports/Model/Resource/Report/Collection/AbstractCollection.php +++ b/app/code/Magento/Reports/Model/Resource/Report/Collection/AbstractCollection.php @@ -64,6 +64,7 @@ class AbstractCollection extends \Magento\Framework\Model\Resource\Db\Collection /** * Set array of columns that should be aggregated + * @codeCoverageIgnore * * @param array $columns * @return $this @@ -76,6 +77,7 @@ class AbstractCollection extends \Magento\Framework\Model\Resource\Db\Collection /** * Retrieve array of columns that should be aggregated + * @codeCoverageIgnore * * @return array */ @@ -86,6 +88,7 @@ class AbstractCollection extends \Magento\Framework\Model\Resource\Db\Collection /** * Set date range + * @codeCoverageIgnore * * @param mixed $from * @param mixed $to @@ -100,6 +103,7 @@ class AbstractCollection extends \Magento\Framework\Model\Resource\Db\Collection /** * Set period + * @codeCoverageIgnore * * @param string $period * @return $this @@ -218,6 +222,7 @@ class AbstractCollection extends \Magento\Framework\Model\Resource\Db\Collection /** * Setter for isSubTotals + * @codeCoverageIgnore * * @param bool $flag * @return $this diff --git a/app/code/Magento/Reports/Model/Resource/Report/Product/Viewed.php b/app/code/Magento/Reports/Model/Resource/Report/Product/Viewed.php index 56e658e56db51f51339f45c7d28785fe9281dd62..432ebc9b5d432e6f4653e1789e280a6a0a595c4f 100644 --- a/app/code/Magento/Reports/Model/Resource/Report/Product/Viewed.php +++ b/app/code/Magento/Reports/Model/Resource/Report/Product/Viewed.php @@ -4,8 +4,6 @@ * See COPYING.txt for license details. */ -// @codingStandardsIgnoreFile - /** * Most viewed product report aggregate resource model * @@ -31,16 +29,22 @@ class Viewed extends \Magento\Sales\Model\Resource\Report\AbstractReport const AGGREGATION_YEARLY = 'report_viewed_product_aggregated_yearly'; /** + * Product resource instance + * * @var \Magento\Catalog\Model\Resource\Product */ protected $_productResource; /** + * Resource helper instance + * * @var \Magento\Reports\Model\Resource\Helper */ protected $_resourceHelper; /** + * Constructor + * * @param \Magento\Framework\Model\Resource\Db\Context $context * @param \Psr\Log\LoggerInterface $logger * @param \Magento\Framework\Stdlib\DateTime\TimezoneInterface $localeDate diff --git a/app/code/Magento/Reports/Model/Resource/Wishlist/Collection.php b/app/code/Magento/Reports/Model/Resource/Wishlist/Collection.php index 797b20da8555176e603785c511672062d90830ac..ab98d411ca05510003c9c9e4fc1cf7e8e2d7bfa7 100644 --- a/app/code/Magento/Reports/Model/Resource/Wishlist/Collection.php +++ b/app/code/Magento/Reports/Model/Resource/Wishlist/Collection.php @@ -60,6 +60,7 @@ class Collection extends \Magento\Framework\Model\Resource\Db\Collection\Abstrac /** * Set wishlist table name + * @codeCoverageIgnore * * @param string $value * @return $this @@ -72,6 +73,7 @@ class Collection extends \Magento\Framework\Model\Resource\Db\Collection\Abstrac /** * Retrieve wishlist table name + * @codeCoverageIgnore * * @return string */ diff --git a/app/code/Magento/Reports/Setup/InstallData.php b/app/code/Magento/Reports/Setup/InstallData.php index 071ed7c29645029f880b7af63cb0950259590f98..fef292ffb21a02c04131a4a1cd209555951f1496 100644 --- a/app/code/Magento/Reports/Setup/InstallData.php +++ b/app/code/Magento/Reports/Setup/InstallData.php @@ -7,8 +7,6 @@ namespace Magento\Reports\Setup; -// @codingStandardsIgnoreFile - use Magento\Cms\Model\PageFactory; use Magento\Framework\Setup\ModuleContextInterface; use Magento\Framework\Setup\ModuleDataSetupInterface; @@ -82,11 +80,13 @@ class InstallData implements \Magento\Framework\Setup\InstallDataInterface $cms = $this->pageFactory->create(); $cms->load('home', 'identifier'); + // @codingStandardsIgnoreStart $reportLayoutUpdate = '<!-- <referenceContainer name="right"> <action method="unsetChild"><argument name="alias" xsi:type="string">right.reports.product.viewed</argument></action> <action method="unsetChild"><argument name="alias" xsi:type="string">right.reports.product.compared</argument></action> </referenceContainer>-->'; + // @codingStandardsIgnoreEnd /* * Merge and save old layout update data with report layout data diff --git a/app/code/Magento/Reports/Test/Unit/Helper/DataTest.php b/app/code/Magento/Reports/Test/Unit/Helper/DataTest.php new file mode 100644 index 0000000000000000000000000000000000000000..81eb87c4cac8a1532b08a48e109af0a6c42327fd --- /dev/null +++ b/app/code/Magento/Reports/Test/Unit/Helper/DataTest.php @@ -0,0 +1,147 @@ +<?php +/** + * Copyright © 2015 Magento. All rights reserved. + * See COPYING.txt for license details. + */ + +namespace Magento\Reports\Test\Unit\Helper; + +use Magento\Reports\Helper\Data; + +class DataTest extends \PHPUnit_Framework_TestCase +{ + /** + * @var \Magento\Reports\Helper\Data + */ + protected $data; + + /** + * @var \Magento\Framework\App\Helper\Context|\PHPUnit_Framework_MockObject_MockObject + */ + protected $contextMock; + + /** + * @var \Magento\Reports\Model\ItemFactory|\PHPUnit_Framework_MockObject_MockObject + */ + protected $itemFactoryMock; + + /** + * {@inheritDoc} + */ + protected function setUp() + { + $this->contextMock = $this->getMockBuilder('Magento\Framework\App\Helper\Context') + ->disableOriginalConstructor() + ->getMock(); + $this->itemFactoryMock = $this->getMockBuilder('Magento\Reports\Model\ItemFactory') + ->setMethods(['create']) + ->disableOriginalConstructor() + ->getMock(); + + $this->data = new Data( + $this->contextMock, + $this->itemFactoryMock + ); + } + + /** + * @param string $from + * @param string $to + * @param string $period + * @param array $results + * @dataProvider intervalsDataProvider + * @return void + */ + public function testGetIntervals($from, $to, $period, $results) + { + $this->assertEquals($this->data->getIntervals($from, $to, $period), $results); + } + + /** + * @param string $from + * @param string $to + * @param string $period + * @param array $results + * @dataProvider intervalsDataProvider + * @return void + */ + public function testPrepareIntervalsCollection($from, $to, $period, $results) + { + $collection = $this->getMockBuilder('Magento\Framework\Data\Collection') + ->disableOriginalConstructor() + ->setMethods(['addItem']) + ->getMock(); + + $item = $this->getMockBuilder('Magento\Reports\Model\Item') + ->disableOriginalConstructor() + ->setMethods(['setPeriod', 'setIsEmpty']) + ->getMock(); + + $this->itemFactoryMock->expects($this->exactly(count($results))) + ->method('create') + ->willReturn($item); + $item->expects($this->exactly(count($results))) + ->method('setIsEmpty'); + $collection->expects($this->exactly(count($results))) + ->method('addItem'); + + foreach ($results as $key => $result) { + $item->expects($this->at($key + $key)) + ->method('setPeriod') + ->with($result); + } + + $this->data->prepareIntervalsCollection($collection, $from, $to, $period); + } + + /** + * @return array + */ + public function intervalsDataProvider() + { + return [ + [ + 'from' => '2000-01-15 10:00:00', + 'to' => '2000-01-15 11:00:00', + 'period' => \Magento\Reports\Helper\Data::REPORT_PERIOD_TYPE_DAY, + 'results' => ['2000-01-15'] + ], + [ + 'from' => '2000-01-15 10:00:00', + 'to' => '2000-01-17 10:00:00', + 'period' => \Magento\Reports\Helper\Data::REPORT_PERIOD_TYPE_MONTH, + 'results' => ['2000-01'] + ], + [ + 'from' => '2000-01-15 10:00:00', + 'to' => '2000-02-15 10:00:00', + 'period' => \Magento\Reports\Helper\Data::REPORT_PERIOD_TYPE_YEAR, + 'results' => ['2000'] + ], + [ + 'from' => '2000-01-15 10:00:00', + 'to' => '2000-01-16 11:00:00', + 'period' => \Magento\Reports\Helper\Data::REPORT_PERIOD_TYPE_DAY, + 'results' => ['2000-01-15', '2000-01-16'] + ], + [ + 'from' => '2000-01-15 10:00:00', + 'to' => '2000-02-17 10:00:00', + 'period' => \Magento\Reports\Helper\Data::REPORT_PERIOD_TYPE_MONTH, + 'results' => ['2000-01', '2000-02'] + ], + [ + 'from' => '2000-01-15 10:00:00', + 'to' => '2003-02-15 10:00:00', + 'period' => \Magento\Reports\Helper\Data::REPORT_PERIOD_TYPE_YEAR, + 'results' => ['2000', '2001', '2002', '2003'] + ], + [ + 'from' => '', + 'to' => '', + 'period' => \Magento\Reports\Helper\Data::REPORT_PERIOD_TYPE_YEAR, + 'results' => [] + ] + ]; + } +} diff --git a/app/code/Magento/Reports/Test/Unit/Model/Event/ObserverTest.php b/app/code/Magento/Reports/Test/Unit/Model/Event/ObserverTest.php index ba4dc5396b30df834f76dba8b40183af149af079..7e53522ac6680d17587318727bf538a6bebbdd0e 100644 --- a/app/code/Magento/Reports/Test/Unit/Model/Event/ObserverTest.php +++ b/app/code/Magento/Reports/Test/Unit/Model/Event/ObserverTest.php @@ -47,6 +47,14 @@ class ObserverTest extends \PHPUnit_Framework_TestCase */ protected $productCompModelMock; + /** + * @var \Magento\Reports\Model\Product\Index\ViewedFactory|\PHPUnit_Framework_MockObject_MockObject + */ + protected $productIndexFactoryMock; + + /** + * {@inheritDoc} + */ public function setUp() { $objectManager = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this); @@ -56,13 +64,13 @@ class ObserverTest extends \PHPUnit_Framework_TestCase $this->customerVisitorMock = $this->getMockBuilder('Magento\Customer\Model\Visitor') ->disableOriginalConstructor()->getMock(); - $productIndexFactoryMock = $this->getMockBuilder('Magento\Reports\Model\Product\Index\ViewedFactory') + $this->productIndexFactoryMock = $this->getMockBuilder('Magento\Reports\Model\Product\Index\ViewedFactory') ->setMethods(['create']) ->disableOriginalConstructor()->getMock(); $this->productIndexMock = $this->getMockBuilder('Magento\Reports\Model\Product\Index\Viewed') ->disableOriginalConstructor()->getMock(); - $productIndexFactoryMock->expects($this->any()) + $this->productIndexFactoryMock->expects($this->any()) ->method('create') ->willReturn($this->productIndexMock); @@ -84,20 +92,25 @@ class ObserverTest extends \PHPUnit_Framework_TestCase $storeManager->expects($this->any()) ->method('getStore') ->willReturn($this->storeMock); - $this->productCompFactoryMock = $this->getMockBuilder('Magento\Reports\Model\Product\Index\ComparedFactory') + + $this->productCompModelMock = $this->getMockBuilder('Magento\Reports\Model\Product\Index\Compared') ->disableOriginalConstructor() - ->setMethods(['create']) ->getMock(); - $this->productCompModelMock = $this->getMockBuilder('Magento\Reports\Model\Product\Index\Compared') + + $this->productCompFactoryMock = $this->getMockBuilder('Magento\Reports\Model\Product\Index\ComparedFactory') ->disableOriginalConstructor() + ->setMethods(['create']) ->getMock(); + $this->productCompFactoryMock->expects($this->any()) + ->method('create') + ->willReturn($this->productCompModelMock); $this->observer = $objectManager->getObject( 'Magento\Reports\Model\Event\Observer', [ 'customerSession' => $this->customerSessionMock, 'customerVisitor' => $this->customerVisitorMock, - 'productIndxFactory' => $productIndexFactoryMock, + 'productIndxFactory' => $this->productIndexFactoryMock, 'productCompFactory' => $this->productCompFactoryMock, 'storeManager' => $storeManager, 'event' => $reportEventFactory @@ -105,6 +118,9 @@ class ObserverTest extends \PHPUnit_Framework_TestCase ); } + /** + * @return void + */ public function testCatalogProductViewCustomer() { $productId = 5; @@ -123,17 +139,10 @@ class ObserverTest extends \PHPUnit_Framework_TestCase 'store_id' => $storeId, ]; - $this->storeMock->expects($this->any()) - ->method('getId') - ->willReturn($storeId); - - $this->customerSessionMock->expects($this->any()) - ->method('isLoggedIn') - ->willReturn(true); + $this->storeMock->expects($this->any())->method('getId')->willReturn($storeId); - $this->customerSessionMock->expects($this->any()) - ->method('getCustomerId') - ->willReturn($customerId); + $this->customerSessionMock->expects($this->any())->method('isLoggedIn')->willReturn(true); + $this->customerSessionMock->expects($this->any())->method('getCustomerId')->willReturn($customerId); $this->prepareProductIndexMock($expectedViewedData); $this->prepareReportEventModel($expectedEventData); @@ -141,6 +150,9 @@ class ObserverTest extends \PHPUnit_Framework_TestCase $this->observer->catalogProductView($eventObserver); } + /** + * @return void + */ public function testCatalogProductViewVisitor() { $productId = 6; @@ -159,17 +171,11 @@ class ObserverTest extends \PHPUnit_Framework_TestCase 'store_id' => $storeId, ]; - $this->storeMock->expects($this->any()) - ->method('getId') - ->willReturn($storeId); + $this->storeMock->expects($this->any())->method('getId')->willReturn($storeId); - $this->customerSessionMock->expects($this->any()) - ->method('isLoggedIn') - ->willReturn(false); + $this->customerSessionMock->expects($this->any())->method('isLoggedIn')->willReturn(false); - $this->customerVisitorMock->expects($this->any()) - ->method('getId') - ->willReturn($visitorId); + $this->customerVisitorMock->expects($this->any())->method('getId')->willReturn($visitorId); $this->prepareProductIndexMock($expectedViewedData); $this->prepareReportEventModel($expectedEventData); @@ -182,6 +188,7 @@ class ObserverTest extends \PHPUnit_Framework_TestCase * @param string $userKey * @param int $userId * @dataProvider catalogProductCompareAddProductDataProvider + * @return void */ public function testCatalogProductCompareAddProduct($isLoggedIn, $userKey, $userId) { @@ -193,31 +200,84 @@ class ObserverTest extends \PHPUnit_Framework_TestCase $userKey => $userId ]; $observerMock = $this->getObserverMock($productId); - $this->customerSessionMock->expects($this->any()) - ->method('isLoggedIn') - ->willReturn($isLoggedIn); - $this->customerSessionMock->expects($this->any()) - ->method('getCustomerId') - ->willReturn($customerId); - $this->customerVisitorMock->expects($this->any()) - ->method('getId') - ->willReturn($visitorId); - $this->productCompFactoryMock->expects($this->any()) - ->method('create') - ->willReturn($this->productCompModelMock); - $this->productCompModelMock->expects($this->any()) - ->method('setData') - ->with($viewData) - ->willReturnSelf(); - $this->productCompModelMock->expects($this->any()) - ->method('save') - ->willReturnSelf(); - $this->productCompModelMock->expects($this->any()) - ->method('calculate') - ->willReturnSelf(); + + $this->customerSessionMock->expects($this->any())->method('isLoggedIn')->willReturn($isLoggedIn); + $this->customerSessionMock->expects($this->any())->method('getCustomerId')->willReturn($customerId); + + $this->customerVisitorMock->expects($this->any())->method('getId')->willReturn($visitorId); + + $this->productCompModelMock->expects($this->any())->method('setData')->with($viewData)->willReturnSelf(); + $this->productCompModelMock->expects($this->any())->method('save')->willReturnSelf(); + $this->productCompModelMock->expects($this->any())->method('calculate')->willReturnSelf(); + $this->assertEquals($this->observer, $this->observer->catalogProductCompareAddProduct($observerMock)); } + /** + * @return void + */ + public function testCustomerLoginLoggedInTrue() + { + $customerId = 222; + $visitorId = 333; + $observerMock = $this->getObserverMock(111); + + $this->customerSessionMock->expects($this->once())->method('isLoggedIn')->willReturn(true); + $this->customerSessionMock->expects($this->once())->method('getCustomerId')->willReturn($customerId); + + $this->customerVisitorMock->expects($this->once())->method('getId')->willReturn($visitorId); + + $this->reportEventMock->expects($this->once())->method('updateCustomerType')->with($visitorId, $customerId); + + $this->productCompModelMock->expects($this->once())->method('updateCustomerFromVisitor')->willReturnSelf(); + $this->productCompModelMock->expects($this->once())->method('calculate')->willReturnSelf(); + + $this->productIndexMock->expects($this->once())->method('updateCustomerFromVisitor')->willReturnSelf(); + $this->productIndexMock->expects($this->once())->method('calculate')->willReturnSelf(); + + $this->assertEquals($this->observer, $this->observer->customerLogin($observerMock)); + } + + /** + * @return void + */ + public function testCustomerLoginLoggedInFalse() + { + $observerMock = $this->getObserverMock(111); + + $this->customerSessionMock->expects($this->once())->method('isLoggedIn')->willReturn(false); + $this->customerSessionMock->expects($this->never())->method('getCustomerId'); + + $this->customerVisitorMock->expects($this->never())->method('getId'); + + $this->productCompModelMock->expects($this->never())->method('updateCustomerFromVisitor')->willReturnSelf(); + $this->productCompModelMock->expects($this->never())->method('calculate')->willReturnSelf(); + + $this->productIndexMock->expects($this->never())->method('updateCustomerFromVisitor')->willReturnSelf(); + $this->productIndexMock->expects($this->never())->method('calculate')->willReturnSelf(); + + $this->assertEquals($this->observer, $this->observer->customerLogin($observerMock)); + } + + /** + * @return void + */ + public function testCustomerLogout() + { + $observerMock = $this->getObserverMock(111); + + $this->productCompModelMock->expects($this->once())->method('purgeVisitorByCustomer')->willReturnSelf(); + $this->productCompModelMock->expects($this->once())->method('calculate')->willReturnSelf(); + + $this->productIndexMock->expects($this->once())->method('purgeVisitorByCustomer')->willReturnSelf(); + $this->productIndexMock->expects($this->once())->method('calculate')->willReturnSelf(); + + $this->assertEquals($this->observer, $this->observer->customerLogout($observerMock)); + } + + /** + * @return array + */ public function catalogProductCompareAddProductDataProvider() { return [ @@ -260,14 +320,8 @@ class ObserverTest extends \PHPUnit_Framework_TestCase */ protected function prepareReportEventModel($expectedEventData) { - $this->reportEventMock->expects($this->any()) - ->method('setData') - ->with($expectedEventData) - ->willReturnSelf(); - - $this->reportEventMock->expects($this->any()) - ->method('save') - ->willReturnSelf(); + $this->reportEventMock->expects($this->any())->method('setData')->with($expectedEventData)->willReturnSelf(); + $this->reportEventMock->expects($this->any())->method('save')->willReturnSelf(); } /** @@ -276,22 +330,21 @@ class ObserverTest extends \PHPUnit_Framework_TestCase */ protected function getObserverMock($productId) { - $eventObserverMock = $this->getMockBuilder('Magento\Framework\Event\Observer')->disableOriginalConstructor() + $eventObserverMock = $this->getMockBuilder('Magento\Framework\Event\Observer') + ->disableOriginalConstructor() ->getMock(); - $eventMock = $this->getMockBuilder('Magento\Framework\Event')->disableOriginalConstructor() + $eventMock = $this->getMockBuilder('Magento\Framework\Event') + ->disableOriginalConstructor() ->setMethods(['getProduct'])->getMock(); - $productMock = $this->getMockBuilder('Magento\Catalog\Model\Product')->disableOriginalConstructor() + $productMock = $this->getMockBuilder('Magento\Catalog\Model\Product') + ->disableOriginalConstructor() ->getMock(); - $productMock->expects($this->any()) - ->method('getId') - ->willReturn($productId); - $eventMock->expects($this->any()) - ->method('getProduct') - ->willReturn($productMock); - $eventObserverMock->expects($this->any()) - ->method('getEvent') - ->willReturn($eventMock); + $productMock->expects($this->any())->method('getId')->willReturn($productId); + + $eventMock->expects($this->any())->method('getProduct')->willReturn($productMock); + + $eventObserverMock->expects($this->any())->method('getEvent')->willReturn($eventMock); return $eventObserverMock; } diff --git a/app/code/Magento/Reports/Test/Unit/Model/Plugin/LogTest.php b/app/code/Magento/Reports/Test/Unit/Model/Plugin/LogTest.php index a6585041528a549b1d69b10135614c1270f44937..f9ee6d86285e0aad348824a00a26ae17f2e42e7f 100644 --- a/app/code/Magento/Reports/Test/Unit/Model/Plugin/LogTest.php +++ b/app/code/Magento/Reports/Test/Unit/Model/Plugin/LogTest.php @@ -3,82 +3,84 @@ * Copyright © 2015 Magento. All rights reserved. * See COPYING.txt for license details. */ + namespace Magento\Reports\Test\Unit\Model\Plugin; +use Magento\Reports\Model\Plugin\Log; + class LogTest extends \PHPUnit_Framework_TestCase { /** * @var \Magento\Reports\Model\Plugin\Log */ - protected $model; + protected $log; /** - * @var \PHPUnit_Framework_MockObject_MockObject + * @var \Magento\Reports\Model\Event|\PHPUnit_Framework_MockObject_MockObject */ - protected $reportEventMock; + protected $eventMock; /** - * @var \PHPUnit_Framework_MockObject_MockObject + * @var \Magento\Reports\Model\Product\Index\Compared|\PHPUnit_Framework_MockObject_MockObject */ - protected $cmpProductIdxMock; + protected $comparedMock; /** - * @var \PHPUnit_Framework_MockObject_MockObject + * @var \Magento\Reports\Model\Product\Index\Viewed|\PHPUnit_Framework_MockObject_MockObject */ - protected $viewProductIdxMock; + protected $viewedMock; /** - * @var \PHPUnit_Framework_MockObject_MockObject + * @var \Magento\Log\Model\Resource\Log|\PHPUnit_Framework_MockObject_MockObject */ protected $logResourceMock; /** - * @var \PHPUnit_Framework_MockObject_MockObject + * @var \Magento\Log\Model\Resource\Log|\PHPUnit_Framework_MockObject_MockObject */ protected $subjectMock; + /** + * {@inheritDoc} + */ protected function setUp() { - $this->reportEventMock = $this->getMock('Magento\Reports\Model\Event', [], [], '', false); - $this->cmpProductIdxMock = $this->getMock( - 'Magento\Reports\Model\Product\Index\Compared', - [], - [], - '', - false - ); - $this->viewProductIdxMock = $this->getMock( - 'Magento\Reports\Model\Product\Index\Viewed', - [], - [], - '', - false - ); + $this->eventMock = $this->getMockBuilder('Magento\Reports\Model\Event') + ->disableOriginalConstructor() + ->getMock(); + $this->comparedMock = $this->getMockBuilder('Magento\Reports\Model\Product\Index\Compared') + ->disableOriginalConstructor() + ->getMock(); + $this->viewedMock = $this->getMockBuilder('Magento\Reports\Model\Product\Index\Viewed') + ->disableOriginalConstructor() + ->getMock(); - $this->logResourceMock = $this->getMock('Magento\Log\Model\Resource\Log', [], [], '', false); + $this->logResourceMock = $this->getMockBuilder('Magento\Log\Model\Resource\Log') + ->disableOriginalConstructor() + ->getMock(); + $this->subjectMock = $this->getMockBuilder('Magento\Log\Model\Resource\Log') + ->disableOriginalConstructor() + ->getMock(); - $this->subjectMock = $this->getMock('Magento\Log\Model\Resource\Log', [], [], '', false); - $this->model = new \Magento\Reports\Model\Plugin\Log( - $this->reportEventMock, - $this->cmpProductIdxMock, - $this->viewProductIdxMock + $this->log = new Log( + $this->eventMock, + $this->comparedMock, + $this->viewedMock ); } /** - * @covers \Magento\Reports\Model\Plugin\Log::afterClean + * @return void */ public function testAfterClean() { - $this->reportEventMock->expects($this->once())->method('clean'); - - $this->cmpProductIdxMock->expects($this->once())->method('clean'); - - $this->viewProductIdxMock->expects($this->once())->method('clean'); + $this->eventMock->expects($this->once())->method('clean'); + $this->comparedMock->expects($this->once())->method('clean'); + $this->viewedMock->expects($this->once())->method('clean'); $this->assertEquals( $this->logResourceMock, - $this->model->afterClean($this->subjectMock, $this->logResourceMock) + $this->log->afterClean($this->subjectMock, $this->logResourceMock) ); } } diff --git a/app/code/Magento/Reports/Test/Unit/Model/Product/Index/ComparedTest.php b/app/code/Magento/Reports/Test/Unit/Model/Product/Index/ComparedTest.php new file mode 100644 index 0000000000000000000000000000000000000000..7a2a7213a6b7899f7f89fd47a04bb66fb31539ea --- /dev/null +++ b/app/code/Magento/Reports/Test/Unit/Model/Product/Index/ComparedTest.php @@ -0,0 +1,149 @@ +<?php +/** + * Copyright © 2015 Magento. All rights reserved. + * See COPYING.txt for license details. + */ + +namespace Magento\Reports\Test\Unit\Model\Product\Index; + +use Magento\Reports\Model\Product\Index\Compared; + +class ComparedTest extends \PHPUnit_Framework_TestCase +{ + /** + * @var \Magento\Reports\Model\Product\Index\Compared + */ + protected $compared; + + /** + * @var \Magento\Framework\Model\Context|\PHPUnit_Framework_MockObject_MockObject + */ + protected $contextMock; + + /** + * @var \Magento\Framework\Registry|\PHPUnit_Framework_MockObject_MockObject + */ + protected $registryMock; + + /** + * @var \Magento\Store\Model\StoreManagerInterface|\PHPUnit_Framework_MockObject_MockObject + */ + protected $storeManagerMock; + + /** + * @var \Magento\Customer\Model\Visitor|\PHPUnit_Framework_MockObject_MockObject + */ + protected $visitorMock; + + /** + * @var \Magento\Customer\Model\Session|\PHPUnit_Framework_MockObject_MockObject + */ + protected $sessionMock; + + /** + * @var \Magento\Framework\Session\Generic|\PHPUnit_Framework_MockObject_MockObject + */ + protected $genericMock; + + /** + * @var \Magento\Catalog\Model\Product\Visibility|\PHPUnit_Framework_MockObject_MockObject + */ + protected $visibilityMock; + + /** + * @var \Magento\Framework\Stdlib\DateTime|\PHPUnit_Framework_MockObject_MockObject + */ + protected $dateTimeMock; + + /** + * @var \Magento\Catalog\Helper\Product\Compare|\PHPUnit_Framework_MockObject_MockObject + */ + protected $catalogProductHelperMock; + + /** + * @var \Magento\Framework\Model\Resource\AbstractResource|\PHPUnit_Framework_MockObject_MockObject + */ + protected $resourceMock; + + /** + * @var \Magento\Framework\Data\Collection\AbstractDb|\PHPUnit_Framework_MockObject_MockObject + */ + protected $dbMock; + /** + * {@inheritDoc} + */ + protected function setUp() + { + $this->contextMock = $this->getMockBuilder('Magento\Framework\Model\Context') + ->disableOriginalConstructor() + ->getMock(); + $this->registryMock = $this->getMockBuilder('Magento\Framework\Registry') + ->getMock(); + $this->storeManagerMock = $this->getMockBuilder('Magento\Store\Model\StoreManagerInterface') + ->getMock(); + $this->visitorMock = $this->getMockBuilder('Magento\Customer\Model\Visitor') + ->disableOriginalConstructor() + ->getMock(); + $this->sessionMock = $this->getMockBuilder('Magento\Customer\Model\Session') + ->disableOriginalConstructor() + ->getMock(); + $this->genericMock = $this->getMockBuilder('Magento\Framework\Session\Generic') + ->disableOriginalConstructor() + ->getMock(); + $this->visibilityMock = $this->getMockBuilder('Magento\Catalog\Model\Product\Visibility') + ->disableOriginalConstructor() + ->getMock(); + $this->dateTimeMock = $this->getMockBuilder('Magento\Framework\Stdlib\DateTime') + ->getMock(); + $this->catalogProductHelperMock = $this->getMockBuilder('Magento\Catalog\Helper\Product\Compare') + ->disableOriginalConstructor() + ->getMock(); + + $this->resourceMock = $this->getMockBuilder('Magento\Framework\Model\Resource\AbstractResource') + ->disableOriginalConstructor() + ->setMethods(['getIdFieldName', '_construct', '_getReadAdapter', '_getWriteAdapter']) + ->getMock(); + $this->dbMock = $this->getMockBuilder('Magento\Framework\Data\Collection\AbstractDb') + ->disableOriginalConstructor() + ->getMock(); + + $this->compared = new Compared( + $this->contextMock, + $this->registryMock, + $this->storeManagerMock, + $this->visitorMock, + $this->sessionMock, + $this->genericMock, + $this->visibilityMock, + $this->dateTimeMock, + $this->catalogProductHelperMock, + $this->resourceMock, + $this->dbMock + ); + } + + /** + * @return void + */ + public function testGetExcludeProductIds() + { + $collection = $this->getMockBuilder('Magento\Catalog\Model\Resource\Product\Compare\Item\Collection') + ->disableOriginalConstructor() + ->setMethods(['getEntityId']) + ->getMock(); + $collection->expects($this->once())->method('getEntityId')->willReturn(1); + + $product = $this->getMockBuilder('Magento\Catalog\Model\Product') + ->disableOriginalConstructor() + ->setMethods(['getId']) + ->getMock(); + $product->expects($this->once())->method('getId')->willReturn(2); + + $this->catalogProductHelperMock->expects($this->once())->method('hasItems')->willReturn(true); + $this->catalogProductHelperMock->expects($this->once())->method('getItemCollection')->willReturn([$collection]); + + $this->registryMock->expects($this->any())->method('registry')->willReturn($product); + + $this->assertEquals([1, 2], $this->compared->getExcludeProductIds()); + } +} diff --git a/app/code/Magento/Reports/Test/Unit/Model/Resource/Event/CollectionTest.php b/app/code/Magento/Reports/Test/Unit/Model/Resource/Event/CollectionTest.php new file mode 100644 index 0000000000000000000000000000000000000000..2191830c60ffd3ebdad30f105190cc31f9aa2b7f --- /dev/null +++ b/app/code/Magento/Reports/Test/Unit/Model/Resource/Event/CollectionTest.php @@ -0,0 +1,161 @@ +<?php +/** + * Copyright © 2015 Magento. All rights reserved. + * See COPYING.txt for license details. + */ + +namespace Magento\Reports\Test\Unit\Model\Resource\Event; + +use Magento\Reports\Model\Resource\Event\Collection; + +class CollectionTest extends \PHPUnit_Framework_TestCase +{ + /** + * @var \Magento\Reports\Model\Resource\Event\Collection + */ + protected $collection; + + /** + * @var \Magento\Framework\Data\Collection\EntityFactoryInterface|\PHPUnit_Framework_MockObject_MockObject + */ + protected $entityFactoryMock; + + /** + * @var \Psr\Log\LoggerInterface|\PHPUnit_Framework_MockObject_MockObject + */ + protected $loggerMock; + + /** + * @var \Magento\Framework\Data\Collection\Db\FetchStrategyInterface|\PHPUnit_Framework_MockObject_MockObject + */ + protected $fetchStrategyMock; + + /** + * @var \Magento\Framework\Event\ManagerInterface|\PHPUnit_Framework_MockObject_MockObject + */ + protected $managerMock; + + /** + * @var \Magento\Framework\Model\Resource\Db\AbstractDb|\PHPUnit_Framework_MockObject_MockObject + */ + protected $resourceMock; + + /** + * @var \Zend_Db_Adapter_Abstract|\PHPUnit_Framework_MockObject_MockObject + */ + protected $dbMock; + + /** + * @var \Zend_Db_Select|\PHPUnit_Framework_MockObject_MockObject + */ + protected $selectMock; + + /** + * {@inheritDoc} + */ + protected function setUp() + { + $this->entityFactoryMock = $this->getMockBuilder('Magento\Framework\Data\Collection\EntityFactoryInterface') + ->getMock(); + $this->loggerMock = $this->getMockBuilder('Psr\Log\LoggerInterface') + ->getMock(); + $this->fetchStrategyMock = $this->getMockBuilder('Magento\Framework\Data\Collection\Db\FetchStrategyInterface') + ->getMock(); + $this->managerMock = $this->getMockBuilder('Magento\Framework\Event\ManagerInterface') + ->getMock(); + + $this->selectMock = $this->getMockBuilder('Zend_Db_Select') + ->setMethods(['where', 'from']) + ->disableOriginalConstructor() + ->getMock(); + $this->selectMock->expects($this->any()) + ->method('from') + ->willReturnSelf(); + $this->selectMock->expects($this->any()) + ->method('where') + ->willReturnSelf(); + + $this->dbMock = $this->getMockBuilder('Zend_Db_Adapter_Abstract') + ->disableOriginalConstructor() + ->getMock(); + $this->dbMock->expects($this->any()) + ->method('select') + ->willReturn($this->selectMock); + + $this->resourceMock = $this->getMockBuilder('Magento\Framework\Model\Resource\Db\AbstractDb') + ->disableOriginalConstructor() + ->setMethods(['getReadConnection', 'getCurrentStoreIds', '_construct', 'getMainTable', 'getTable']) + ->getMock(); + $this->resourceMock->expects($this->any()) + ->method('getReadConnection') + ->willReturn($this->dbMock); + + $this->collection = new Collection( + $this->entityFactoryMock, + $this->loggerMock, + $this->fetchStrategyMock, + $this->managerMock, + null, + $this->resourceMock + ); + } + + /** + * @param mixed $ignoreData + * @param 'string' $ignoreSql + * @dataProvider ignoresDataProvider + * @return void + */ + public function testAddStoreFilter($ignoreData, $ignoreSql) + { + $typeId = 1; + $subjectId =2; + $subtype = 3; + $limit = 0; + $stores = [1, 2]; + + $this->resourceMock + ->expects($this->once()) + ->method('getCurrentStoreIds') + ->willReturn($stores); + $this->selectMock + ->expects($this->at(0)) + ->method('where') + ->with('event_type_id = ?', $typeId); + $this->selectMock + ->expects($this->at(1)) + ->method('where') + ->with('subject_id = ?', $subjectId); + $this->selectMock + ->expects($this->at(2)) + ->method('where') + ->with('subtype = ?', $subtype); + $this->selectMock + ->expects($this->at(3)) + ->method('where') + ->with('store_id IN(?)', $stores); + $this->selectMock + ->expects($this->at(4)) + ->method('where') + ->with($ignoreSql, $ignoreData); + + $this->collection->addRecentlyFiler($typeId, $subjectId, $subtype, $ignoreData, $limit); + } + + /** + * @return array + */ + public function ignoresDataProvider() + { + return [ + [ + 'ignoreData' => 1, + 'ignoreSql' => 'object_id <> ?' + ], + [ + 'ignoreData' => [1], + 'ignoreSql' => 'object_id NOT IN(?)' + ] + ]; + } +} diff --git a/app/code/Magento/Reports/Test/Unit/Model/Resource/EventTest.php b/app/code/Magento/Reports/Test/Unit/Model/Resource/EventTest.php new file mode 100644 index 0000000000000000000000000000000000000000..5d1dc3bbcea0733b49ccf35ba68ae9f3d948581a --- /dev/null +++ b/app/code/Magento/Reports/Test/Unit/Model/Resource/EventTest.php @@ -0,0 +1,248 @@ +<?php +/** + * Copyright © 2015 Magento. All rights reserved. + * See COPYING.txt for license details. + */ + +namespace Magento\Reports\Test\Unit\Model\Resource; + +use Magento\Reports\Model\Resource\Event; + +class EventTest extends \PHPUnit_Framework_TestCase +{ + /** + * @var \Magento\Reports\Model\Resource\Event + */ + protected $event; + + /** + * @var \Magento\Framework\Model\Resource\Db\Context|\PHPUnit_Framework_MockObject_MockObject + */ + protected $contextMock; + + /** + * @var \Magento\Framework\App\Config\ScopeConfigInterface|\PHPUnit_Framework_MockObject_MockObject + */ + protected $scopeConfigMock; + + /** + * @var \Magento\Store\Model\StoreManagerInterface|\PHPUnit_Framework_MockObject_MockObject + */ + protected $storeManagerMock; + + /** + * @var \Magento\Framework\DB\Adapter\AdapterInterface|\PHPUnit_Framework_MockObject_MockObject + */ + protected $connectionMock; + + /** + * @var \Magento\Framework\App\Resource|\PHPUnit_Framework_MockObject_MockObject + */ + protected $resourceMock; + + /** + * @var \Magento\Store\Model\Store|\PHPUnit_Framework_MockObject_MockObject + */ + protected $storeMock; + + /** + * {@inheritDoc} + */ + protected function setUp() + { + $this->contextMock = $this->getMockBuilder('Magento\Framework\Model\Resource\Db\Context') + ->disableOriginalConstructor() + ->getMock(); + + $this->scopeConfigMock = $this->getMockBuilder('Magento\Framework\App\Config\ScopeConfigInterface') + ->getMock(); + + $this->storeManagerMock = $this->getMockBuilder('Magento\Store\Model\StoreManagerInterface') + ->getMock(); + + $this->storeMock = $this->getMockBuilder('Magento\Store\Model\Store') + ->disableOriginalConstructor() + ->getMock(); + + $this->storeManagerMock + ->expects($this->any()) + ->method('getStore') + ->willReturn($this->storeMock); + + $this->connectionMock = $this->getMockBuilder('Magento\Framework\DB\Adapter\AdapterInterface') + ->getMock(); + + $this->resourceMock = $this->getMockBuilder('Magento\Framework\App\Resource') + ->disableOriginalConstructor() + ->getMock(); + $this->resourceMock + ->expects($this->any()) + ->method('getConnection') + ->willReturn($this->connectionMock); + + $this->contextMock + ->expects($this->any()) + ->method('getResources') + ->willReturn($this->resourceMock); + + $this->event = new Event( + $this->contextMock, + $this->scopeConfigMock, + $this->storeManagerMock + ); + } + + /** + * @return void + */ + public function testUpdateCustomerTypeWithoutType() + { + $eventMock = $this->getMockBuilder('Magento\Reports\Model\Event') + ->disableOriginalConstructor() + ->getMock(); + $this->connectionMock + ->expects($this->never()) + ->method('update'); + + $this->event->updateCustomerType($eventMock, 1, 1); + + } + + /** + * @return void + */ + public function testUpdateCustomerTypeWithType() + { + $eventMock = $this->getMockBuilder('Magento\Reports\Model\Event') + ->disableOriginalConstructor() + ->getMock(); + $this->connectionMock + ->expects($this->once()) + ->method('update'); + + $this->event->updateCustomerType($eventMock, 1, 1, ['type']); + + } + + /** + * @return void + */ + public function testApplyLogToCollection() + { + $derivedSelect = 'SELECT * FROM table'; + $idFieldName = 'IdFieldName'; + + $collectionSelectMock = $this->getMockBuilder('Magento\Framework\DB\Select') + ->disableOriginalConstructor() + ->setMethods(['joinInner', 'order']) + ->getMock(); + $collectionSelectMock + ->expects($this->once()) + ->method('joinInner') + ->with( + ['evt' => new \Zend_Db_Expr("({$derivedSelect})")], + "{$idFieldName} = evt.object_id", + [] + ) + ->willReturnSelf(); + $collectionSelectMock + ->expects($this->once()) + ->method('order') + ->willReturnSelf(); + + $collectionMock = $this->getMockBuilder('Magento\Framework\Data\Collection\AbstractDb') + ->disableOriginalConstructor() + ->getMock(); + $collectionMock + ->expects($this->once()) + ->method('getResource') + ->willReturnSelf(); + $collectionMock + ->expects($this->once()) + ->method('getIdFieldName') + ->willReturn($idFieldName); + $collectionMock + ->expects($this->any()) + ->method('getSelect') + ->willReturn($collectionSelectMock); + + $selectMock = $this->getMockBuilder('Magento\Framework\DB\Select') + ->disableOriginalConstructor() + ->setMethods(['from', 'where', 'group', 'joinInner', '__toString']) + ->getMock(); + $selectMock + ->expects($this->once()) + ->method('from') + ->willReturnSelf(); + $selectMock + ->expects($this->any()) + ->method('where') + ->willReturnSelf(); + $selectMock + ->expects($this->once()) + ->method('group') + ->willReturnSelf(); + $selectMock + ->expects($this->any()) + ->method('__toString') + ->willReturn($derivedSelect); + + $this->connectionMock + ->expects($this->once()) + ->method('select') + ->willReturn($selectMock); + + $this->storeMock + ->expects($this->any()) + ->method('getId') + ->willReturn(1); + + $this->event->applyLogToCollection($collectionMock, 1, 1, 1); + } + + /** + * @return void + */ + public function testClean() + { + $eventMock = $this->getMockBuilder('Magento\Reports\Model\Event') + ->disableOriginalConstructor() + ->getMock(); + + $selectMock = $this->getMockBuilder('Magento\Framework\DB\Select') + ->disableOriginalConstructor() + ->setMethods(['select', 'from', 'joinLeft', 'where', 'limit', 'fetchCol']) + ->getMock(); + + $this->connectionMock + ->expects($this->at(3)) + ->method('fetchCol') + ->willReturn(1); + $this->connectionMock + ->expects($this->once()) + ->method('delete'); + $this->connectionMock + ->expects($this->any()) + ->method('select') + ->willReturn($selectMock); + + $selectMock + ->expects($this->exactly(2)) + ->method('from') + ->willReturnSelf(); + $selectMock + ->expects($this->exactly(2)) + ->method('joinLeft') + ->willReturnSelf(); + $selectMock + ->expects($this->any()) + ->method('where') + ->willReturnSelf(); + $selectMock + ->expects($this->exactly(2)) + ->method('limit') + ->willReturnSelf(); + + $this->event->clean($eventMock); + } +} diff --git a/app/code/Magento/Reports/Test/Unit/Model/Resource/HelperTest.php b/app/code/Magento/Reports/Test/Unit/Model/Resource/HelperTest.php new file mode 100644 index 0000000000000000000000000000000000000000..b000c4ad43ab230bf9b648241354cb3cd60b65d3 --- /dev/null +++ b/app/code/Magento/Reports/Test/Unit/Model/Resource/HelperTest.php @@ -0,0 +1,122 @@ +<?php +/** + * Copyright © 2015 Magento. All rights reserved. + * See COPYING.txt for license details. + */ + +namespace Magento\Reports\Test\Unit\Model\Resource; + +use Magento\Reports\Model\Resource\Helper; + +class HelperTest extends \PHPUnit_Framework_TestCase +{ + /** + * @var \Magento\Reports\Model\Resource\Helper + */ + protected $helper; + + /** + * @var \Magento\Framework\App\Resource|\PHPUnit_Framework_MockObject_MockObject + */ + protected $resourceMock; + + /** + * @var \Magento\Framework\DB\Adapter\AdapterInterface|\PHPUnit_Framework_MockObject_MockObject + */ + protected $connectionMock; + + /** + * {@inheritDoc} + */ + protected function setUp() + { + $this->resourceMock = $this->getMockBuilder('Magento\Framework\App\Resource') + ->disableOriginalConstructor() + ->getMock(); + + $this->connectionMock = $this->getMockBuilder('Magento\Framework\DB\Adapter\AdapterInterface') + ->getMock(); + + $this->resourceMock + ->expects($this->any()) + ->method('getConnection') + ->willReturn($this->connectionMock); + + $this->helper = new Helper( + $this->resourceMock + ); + } + + /** + * @return void + */ + public function testMergeVisitorProductIndex() + { + $mainTable = 'mainTable'; + $data = ['dataKey' => 'dataValue']; + $matchFields = ['matchField']; + + $this->connectionMock + ->expects($this->once()) + ->method('insertOnDuplicate') + ->with($mainTable, $data, array_keys($data)); + + $this->helper->mergeVisitorProductIndex($mainTable, $data, $matchFields); + } + + /** + * @param string $type + * @param array $result + * @dataProvider typesDataProvider + * @return void + */ + public function testUpdateReportRatingPos($type, $result) + { + $mainTable = 'mainTable'; + $column = 'column'; + $aggregationTable = 'aggregationTable'; + + $selectMock = $this->getMockBuilder('Magento\Framework\DB\Select') + ->disableOriginalConstructor() + ->getMock(); + $selectMock + ->expects($this->any()) + ->method('from') + ->willReturnSelf(); + $selectMock + ->expects($this->once()) + ->method('group') + ->willReturnSelf(); + $selectMock + ->expects($this->once()) + ->method('order') + ->willReturnSelf(); + $selectMock + ->expects($this->once()) + ->method('insertFromSelect') + ->with($aggregationTable, $result) + ->willReturnSelf(); + + $this->connectionMock + ->expects($this->any()) + ->method('select') + ->willReturn($selectMock); + + $this->helper->updateReportRatingPos($this->connectionMock, $type, $column, $mainTable, $aggregationTable); + } + + /** + * @return array + */ + public function typesDataProvider() + { + $mResult = ['period', 'store_id', 'product_id', 'product_name', 'product_price', 'column', 'rating_pos']; + $dResult = ['period', 'store_id', 'product_id', 'product_name', 'product_price', 'id', 'column', 'rating_pos']; + return [ + ['type' => 'year', 'result' => $mResult], + ['type' => 'month', 'result' => $mResult], + ['type' => 'day', 'result' => $dResult], + ['type' => null, 'result' => $mResult] + ]; + } +} diff --git a/app/code/Magento/Reports/Test/Unit/Model/Resource/Order/CollectionTest.php b/app/code/Magento/Reports/Test/Unit/Model/Resource/Order/CollectionTest.php new file mode 100644 index 0000000000000000000000000000000000000000..22a6bb1be49c2719d81af2339c7feef95295a195 --- /dev/null +++ b/app/code/Magento/Reports/Test/Unit/Model/Resource/Order/CollectionTest.php @@ -0,0 +1,509 @@ +<?php +/** + * Copyright © 2015 Magento. All rights reserved. + * See COPYING.txt for license details. + */ + +namespace Magento\Reports\Test\Unit\Model\Resource\Order; + +use Magento\Reports\Model\Resource\Order\Collection; + +/** + * @SuppressWarnings(PHPMD.CouplingBetweenObjects) + */ +class CollectionTest extends \PHPUnit_Framework_TestCase +{ + /** + * @var \Magento\Reports\Model\Resource\Order\Collection + */ + protected $collection; + + /** + * @var \Magento\Framework\Data\Collection\EntityFactory|\PHPUnit_Framework_MockObject_MockObject + */ + protected $entityFactoryMock; + + /** + * @var \Psr\Log\LoggerInterface|\PHPUnit_Framework_MockObject_MockObject + */ + protected $loggerMock; + + /** + * @var \Magento\Framework\Data\Collection\Db\FetchStrategyInterface|\PHPUnit_Framework_MockObject_MockObject + */ + protected $fetchStrategyMock; + + /** + * @var \Magento\Framework\Event\ManagerInterface|\PHPUnit_Framework_MockObject_MockObject + */ + protected $managerMock; + + /** + * @var \Magento\Sales\Model\Resource\EntitySnapshot|\PHPUnit_Framework_MockObject_MockObject + */ + protected $entitySnapshotMock; + + /** + * @var \Magento\Framework\DB\Helper|\PHPUnit_Framework_MockObject_MockObject + */ + protected $helperMock; + + /** + * @var \Magento\Framework\App\Config\ScopeConfigInterface|\PHPUnit_Framework_MockObject_MockObject + */ + protected $scopeConfigMock; + + /** + * @var \Magento\Store\Model\StoreManagerInterface|\PHPUnit_Framework_MockObject_MockObject + */ + protected $storeManagerMock; + + /** + * @var \Magento\Framework\Stdlib\DateTime\TimezoneInterface|\PHPUnit_Framework_MockObject_MockObject + */ + protected $timezoneMock; + + /** + * @var \Magento\Sales\Model\Order\Config|\PHPUnit_Framework_MockObject_MockObject + */ + protected $configMock; + + /** + * @var \Magento\Sales\Model\Resource\Report\OrderFactory|\PHPUnit_Framework_MockObject_MockObject + */ + protected $orderFactoryMock; + + /** + * @var \Zend_Db_Adapter_Abstract|\PHPUnit_Framework_MockObject_MockObject + */ + protected $dbMock; + + /** + * @var \Zend_Db_Select|\PHPUnit_Framework_MockObject_MockObject + */ + protected $selectMock; + + /** + * @var \Magento\Framework\Model\Resource\Db\AbstractDb|\PHPUnit_Framework_MockObject_MockObject + */ + protected $resourceMock; + + /** + * {@inheritDoc} + */ + protected function setUp() + { + $this->entityFactoryMock = $this->getMockBuilder('Magento\Framework\Data\Collection\EntityFactory') + ->disableOriginalConstructor() + ->getMock(); + $this->loggerMock = $this->getMockBuilder('Psr\Log\LoggerInterface') + ->getMock(); + $this->fetchStrategyMock = $this->getMockBuilder('Magento\Framework\Data\Collection\Db\FetchStrategyInterface') + ->getMock(); + $this->managerMock = $this->getMockBuilder('Magento\Framework\Event\ManagerInterface') + ->getMock(); + $this->entitySnapshotMock = $this->getMockBuilder('Magento\Sales\Model\Resource\EntitySnapshot') + ->disableOriginalConstructor() + ->getMock(); + $this->helperMock = $this->getMockBuilder('Magento\Framework\DB\Helper') + ->disableOriginalConstructor() + ->getMock(); + $this->scopeConfigMock = $this->getMockBuilder('Magento\Framework\App\Config\ScopeConfigInterface') + ->getMock(); + $this->storeManagerMock = $this->getMockBuilder('Magento\Store\Model\StoreManagerInterface') + ->getMock(); + $this->timezoneMock = $this->getMockBuilder('Magento\Framework\Stdlib\DateTime\TimezoneInterface') + ->getMock(); + $this->configMock = $this->getMockBuilder('Magento\Sales\Model\Order\Config') + ->disableOriginalConstructor() + ->getMock(); + $this->orderFactoryMock = $this->getMockBuilder('Magento\Sales\Model\Resource\Report\OrderFactory') + ->setMethods(['create']) + ->disableOriginalConstructor() + ->getMock(); + $this->selectMock = $this->getMockBuilder('Zend_Db_Select') + ->disableOriginalConstructor() + ->getMock(); + $this->selectMock + ->expects($this->any()) + ->method('columns') + ->willReturnSelf(); + $this->selectMock + ->expects($this->any()) + ->method('where') + ->willReturnSelf(); + $this->selectMock + ->expects($this->any()) + ->method('order') + ->willReturnSelf(); + $this->selectMock + ->expects($this->any()) + ->method('group') + ->willReturnSelf(); + $this->selectMock + ->expects($this->any()) + ->method('getPart') + ->willReturn([]); + + $this->dbMock = $this->getMockForAbstractClass( + 'Zend_Db_Adapter_Abstract', + [], + '', + false, + true, + true, + ['select', 'getIfNullSql', 'getDateFormatSql', 'prepareSqlCondition', 'getCheckSql'] + ); + $this->dbMock + ->expects($this->any()) + ->method('select') + ->willReturn($this->selectMock); + + $this->resourceMock = $this->getMockBuilder('Magento\Framework\Model\Resource\Db\AbstractDb') + ->disableOriginalConstructor() + ->getMock(); + $this->resourceMock + ->expects($this->once()) + ->method('getReadConnection') + ->willReturn($this->dbMock); + + $this->collection = new Collection( + $this->entityFactoryMock, + $this->loggerMock, + $this->fetchStrategyMock, + $this->managerMock, + $this->entitySnapshotMock, + $this->helperMock, + $this->scopeConfigMock, + $this->storeManagerMock, + $this->timezoneMock, + $this->configMock, + $this->orderFactoryMock, + null, + $this->resourceMock + ); + } + + /** + * @return void + */ + public function testCheckIsLive() + { + $range = ''; + $this->scopeConfigMock + ->expects($this->once()) + ->method('getValue') + ->with( + 'sales/dashboard/use_aggregated_data', + \Magento\Store\Model\ScopeInterface::SCOPE_STORE + ); + + $this->collection->checkIsLive($range); + } + + /** + * @param int $useAggregatedData + * @param string $mainTable + * @param int $isFilter + * @param \PHPUnit_Framework_MockObject_Matcher_InvokedCount $getIfNullSqlResult + * @dataProvider useAggregatedDataDataProvider + * @return void + */ + public function testPrepareSummary($useAggregatedData, $mainTable, $isFilter, $getIfNullSqlResult) + { + $range = ''; + $customStart = 1; + $customEnd = 10; + + $this->scopeConfigMock + ->expects($this->once()) + ->method('getValue') + ->with( + 'sales/dashboard/use_aggregated_data', + \Magento\Store\Model\ScopeInterface::SCOPE_STORE + ) + ->willReturn($useAggregatedData); + + $orderMock = $this->getMockBuilder('Magento\Sales\Model\Resource\Report\Order') + ->disableOriginalConstructor() + ->getMock(); + + $this->orderFactoryMock + ->expects($this->any()) + ->method('create') + ->willReturn($orderMock); + + $this->resourceMock + ->expects($this->at(0)) + ->method('getTable') + ->with($mainTable); + + $this->dbMock + ->expects($getIfNullSqlResult) + ->method('getIfNullSql'); + + $this->collection->prepareSummary($range, $customStart, $customEnd, $isFilter); + } + + /** + * @param int $range + * @param string $customStart + * @param string $customEnd + * @param string $expectedInterval + * @dataProvider firstPartDateRangeDataProvider + * @return void + */ + public function testGetDateRangeFirstPart($range, $customStart, $customEnd, $expectedInterval) + { + $result = $this->collection->getDateRange($range, $customStart, $customEnd); + $interval = $result['to']->diff($result['from']); + $intervalResult = $interval->format('%y %m %d %h:%i:%s'); + $this->assertEquals($expectedInterval, $intervalResult); + } + + /** + * @param int $range + * @param string $customStart + * @param string $customEnd + * @param string $config + * @dataProvider secondPartDateRangeDataProvider + * @return void + */ + public function testGetDateRangeSecondPart($range, $customStart, $customEnd, $config) + { + $this->scopeConfigMock + ->expects($this->once()) + ->method('getValue') + ->with( + $config, + \Magento\Store\Model\ScopeInterface::SCOPE_STORE + ) + ->willReturn(1); + + $result = $this->collection->getDateRange($range, $customStart, $customEnd); + $this->assertEquals(3, count($result)); + } + + /** + * @return void + */ + public function testGetDateRangeWithReturnObject() + { + $this->assertEquals(2, count($this->collection->getDateRange('7d', '', '', true))); + $this->assertEquals(3, count($this->collection->getDateRange('7d', '', '', false))); + } + + /** + * @return void + */ + public function testAddItemCountExpr() + { + $this->selectMock + ->expects($this->once()) + ->method('columns') + ->with(['items_count' => 'total_item_count'], 'main_table'); + $this->collection->addItemCountExpr(); + } + + /** + * @param int $isFilter + * @param int $useAggregatedData + * @param string $mainTable + * @param \PHPUnit_Framework_MockObject_Matcher_InvokedCount $getIfNullSqlResult + * @dataProvider totalsDataProvider + * @return void + */ + public function testCalculateTotals($isFilter, $useAggregatedData, $mainTable, $getIfNullSqlResult) + { + $this->scopeConfigMock + ->expects($this->once()) + ->method('getValue') + ->with( + 'sales/dashboard/use_aggregated_data', + \Magento\Store\Model\ScopeInterface::SCOPE_STORE + ) + ->willReturn($useAggregatedData); + + $this->resourceMock + ->expects($this->at(0)) + ->method('getTable') + ->with($mainTable); + + $this->dbMock + ->expects($getIfNullSqlResult) + ->method('getIfNullSql'); + + $this->collection->checkIsLive(''); + $this->collection->calculateTotals($isFilter); + } + + /** + * @param int $isFilter + * @param string $useAggregatedData + * @param string $mainTable + * @dataProvider salesDataProvider + * @return void + */ + public function testCalculateSales($isFilter, $useAggregatedData, $mainTable) + { + $this->scopeConfigMock + ->expects($this->once()) + ->method('getValue') + ->with( + 'sales/dashboard/use_aggregated_data', + \Magento\Store\Model\ScopeInterface::SCOPE_STORE + ) + ->willReturn($useAggregatedData); + + $storeMock = $this->getMockBuilder('Magento\Store\Model\Store') + ->disableOriginalConstructor() + ->getMock(); + + $this->storeManagerMock + ->expects($this->any()) + ->method('getStore') + ->willReturn($storeMock); + + $this->resourceMock + ->expects($this->at(0)) + ->method('getTable') + ->with($mainTable); + + $this->collection->calculateSales($isFilter); + } + + /** + * @return void + */ + public function testSetDateRange() + { + $fromDate = '1'; + $toDate = '2'; + + $this->dbMock + ->expects($this->at(0)) + ->method('prepareSqlCondition') + ->with('"created_at"', ['from' => $fromDate, 'to' => $toDate]); + + $this->collection->setDateRange($fromDate, $toDate); + } + + /** + * @param array $storeIds + * @param array $parameters + * @dataProvider storesDataProvider + * @return void + */ + public function testSetStoreIds($storeIds, $parameters) + { + $this->dbMock + ->expects($this->any()) + ->method('getIfNullSql') + ->willReturn('text'); + + $this->selectMock + ->expects($this->once()) + ->method('columns') + ->with($parameters) + ->willReturnSelf(); + + $this->collection->setStoreIds($storeIds); + } + + /** + * @return array + */ + public function useAggregatedDataDataProvider() + { + return [ + [1, 'sales_order_aggregated_created', 0, $this->never()], + [0, 'sales_order', 0, $this->exactly(7)], + [0, 'sales_order', 1, $this->exactly(6)] + ]; + } + + /** + * @return array + */ + public function firstPartDateRangeDataProvider() + { + return [ + ['', '', '', '0 0 0 23:59:59'], + ['24h', '', '', '0 0 1 0:0:0'], + ['7d', '', '', '0 0 6 23:59:59'] + ]; + } + + /** + * @return array + */ + public function secondPartDateRangeDataProvider() + { + return [ + ['1m', 1, 10, 'reports/dashboard/mtd_start'], + ['1y', 1, 10, 'reports/dashboard/ytd_start'], + ['2y', 1, 10, 'reports/dashboard/ytd_start'] + ]; + } + + /** + * @return array + */ + public function totalsDataProvider() + { + return [ + [1, 1, 'sales_order_aggregated_created', $this->never()], + [0, 1, 'sales_order_aggregated_created', $this->never()], + [1, 0, 'sales_order', $this->exactly(10)], + [0, 0, 'sales_order', $this->exactly(11)] + ]; + } + + /** + * @return array + */ + public function salesDataProvider() + { + return [ + [1, 1, 'sales_order_aggregated_created'], + [0, 1, 'sales_order_aggregated_created'], + [1, 0, 'sales_order'], + [0, 0, 'sales_order'] + ]; + } + + /** + * @return array + */ + public function storesDataProvider() + { + $firstReturn = [ + 'subtotal' => 'SUM(main_table.base_subtotal * main_table.base_to_global_rate)', + 'tax' => 'SUM(main_table.base_tax_amount * main_table.base_to_global_rate)', + 'shipping' => 'SUM(main_table.base_shipping_amount * main_table.base_to_global_rate)', + 'discount' => 'SUM(main_table.base_discount_amount * main_table.base_to_global_rate)', + 'total' => 'SUM(main_table.base_grand_total * main_table.base_to_global_rate)', + 'invoiced' => 'SUM(main_table.base_total_paid * main_table.base_to_global_rate)', + 'refunded' => 'SUM(main_table.base_total_refunded * main_table.base_to_global_rate)', + 'profit' => 'SUM(text * main_table.base_to_global_rate) + SUM(text * main_table.base_to_global_rate) '. + '- SUM(text * main_table.base_to_global_rate) - SUM(text * main_table.base_to_global_rate) '. + '- SUM(text * main_table.base_to_global_rate)', + ]; + + $secondReturn = [ + 'subtotal' => 'SUM(main_table.base_subtotal)', + 'tax' => 'SUM(main_table.base_tax_amount)', + 'shipping' => 'SUM(main_table.base_shipping_amount)', + 'discount' => 'SUM(main_table.base_discount_amount)', + 'total' => 'SUM(main_table.base_grand_total)', + 'invoiced' => 'SUM(main_table.base_total_paid)', + 'refunded' => 'SUM(main_table.base_total_refunded)', + 'profit' => 'SUM(text) + SUM(text) - SUM(text) - SUM(text) - SUM(text)', + ]; + + return [ + [[], $firstReturn], + [[1], $secondReturn] + ]; + } +} diff --git a/app/code/Magento/Reports/Test/Unit/Model/Resource/Report/Collection/AbstractCollectionTest.php b/app/code/Magento/Reports/Test/Unit/Model/Resource/Report/Collection/AbstractCollectionTest.php index 96ad13c9b21868aa019927b72cee62eba019797b..ed5075a8bf70b7e4aeeb28e4e5eec0e08af3d08f 100644 --- a/app/code/Magento/Reports/Test/Unit/Model/Resource/Report/Collection/AbstractCollectionTest.php +++ b/app/code/Magento/Reports/Test/Unit/Model/Resource/Report/Collection/AbstractCollectionTest.php @@ -4,16 +4,16 @@ * See COPYING.txt for license details. */ -// @codingStandardsIgnoreFile - namespace Magento\Reports\Test\Unit\Model\Resource\Report\Collection; class AbstractCollectionTest extends \PHPUnit_Framework_TestCase { /** - * @var AbstractCollection + * Tested collection + * + * @var \Magento\Reports\Model\Resource\Report\Collection\AbstractCollection */ - protected $_model; + protected $collection; protected function setUp() { @@ -29,7 +29,7 @@ class AbstractCollectionTest extends \PHPUnit_Framework_TestCase ->getMockForAbstractClass(); $resource->method('getReadConnection')->willReturn($connection); - $this->_model = new \Magento\Reports\Model\Resource\Report\Collection\AbstractCollection( + $this->collection = new \Magento\Reports\Model\Resource\Report\Collection\AbstractCollection( $entityFactory, $logger, $fetchStrategy, @@ -41,15 +41,15 @@ class AbstractCollectionTest extends \PHPUnit_Framework_TestCase public function testIsSubtotalsGetDefault() { - $this->assertFalse($this->_model->isSubTotals()); + $this->assertFalse($this->collection->isSubTotals()); } public function testSetIsSubtotals() { - $this->_model->setIsSubTotals(true); - $this->assertTrue($this->_model->isSubTotals()); + $this->collection->setIsSubTotals(true); + $this->assertTrue($this->collection->isSubTotals()); - $this->_model->setIsSubTotals(false); - $this->assertFalse($this->_model->isSubTotals()); + $this->collection->setIsSubTotals(false); + $this->assertFalse($this->collection->isSubTotals()); } } diff --git a/app/code/Magento/Reports/Test/Unit/Model/Resource/Report/CollectionTest.php b/app/code/Magento/Reports/Test/Unit/Model/Resource/Report/CollectionTest.php index c1e8adeeee7d3c16a6bb8984939699ef12c1ef48..ca08b3b21761a51c314c60a315f89e1dc5d359e2 100644 --- a/app/code/Magento/Reports/Test/Unit/Model/Resource/Report/CollectionTest.php +++ b/app/code/Magento/Reports/Test/Unit/Model/Resource/Report/CollectionTest.php @@ -3,32 +3,196 @@ * Copyright © 2015 Magento. All rights reserved. * See COPYING.txt for license details. */ + namespace Magento\Reports\Test\Unit\Model\Resource\Report; +use Magento\Reports\Model\Resource\Report\Collection; + class CollectionTest extends \PHPUnit_Framework_TestCase { /** * @var \Magento\Reports\Model\Resource\Report\Collection */ - protected $_model; + protected $collection; + /** + * @var \Magento\Framework\Data\Collection\EntityFactory|\PHPUnit_Framework_MockObject_MockObject + */ + protected $entityFactoryMock; + + /** + * @var \Magento\Framework\Stdlib\DateTime\TimezoneInterface|\PHPUnit_Framework_MockObject_MockObject + */ + protected $timezoneMock; + + /** + * @var \Magento\Reports\Model\Resource\Report\Collection\Factory|\PHPUnit_Framework_MockObject_MockObject + */ + protected $factoryMock; + + /** + * {@inheritDoc} + */ protected function setUp() { - $helper = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this); - $this->_model = $helper->getObject('Magento\Reports\Model\Resource\Report\Collection'); + $this->entityFactoryMock = $this->getMockBuilder('Magento\Framework\Data\Collection\EntityFactory') + ->disableOriginalConstructor() + ->getMock(); + $this->timezoneMock = $this->getMockBuilder('Magento\Framework\Stdlib\DateTime\TimezoneInterface') + ->getMock(); + $this->factoryMock = $this->getMockBuilder('Magento\Reports\Model\Resource\Report\Collection\Factory') + ->disableOriginalConstructor() + ->getMock(); + + $this->timezoneMock + ->expects($this->any()) + ->method('formatDateTime') + ->will($this->returnCallback([$this, 'formatDateTime'])); + + $this->collection = new Collection( + $this->entityFactoryMock, + $this->timezoneMock, + $this->factoryMock + ); } - public function testGetIntervalsWithoutSpecifiedPeriod() + /** + * @return void + */ + public function testGetPeriods() { - $startDate = new \DateTime('-3 day'); - $endDate = new \DateTime('+3 day'); - $this->_model->setInterval($startDate, $endDate); + $expectedArray = ['day' => 'Day', 'month' => 'Month', 'year' => 'Year']; + $this->assertEquals($expectedArray, $this->collection->getPeriods()); + } - $this->assertEquals(0, $this->_model->getSize()); + /** + * @return void + */ + public function testGetStoreIds() + { + $storeIds = [1]; + $this->assertEquals(null, $this->collection->getStoreIds()); + $this->collection->setStoreIds($storeIds); + $this->assertEquals($storeIds, $this->collection->getStoreIds()); } - public function testGetIntervalsWithoutSpecifiedInterval() + /** + * @param string $period + * @param \DateTime $fromDate + * @param \DateTime $toDate + * @param int $size + * @dataProvider intervalsDataProvider + * @return void + */ + public function testGetSize($period, $fromDate, $toDate, $size) { - $this->assertEquals(0, $this->_model->getSize()); + $this->collection->setPeriod($period); + $this->collection->setInterval($fromDate, $toDate); + $this->assertEquals($size, $this->collection->getSize()); + } + + /** + * @return void + */ + public function testGetPageSize() + { + $pageSize = 1; + $this->assertEquals(null, $this->collection->getPageSize()); + $this->collection->setPageSize($pageSize); + $this->assertEquals($pageSize, $this->collection->getPageSize()); + } + + /** + * @param string $period + * @param \DateTime $fromDate + * @param \DateTime $toDate + * @param int $size + * @dataProvider intervalsDataProvider + * @return void + */ + public function testGetReports($period, $fromDate, $toDate, $size) + { + $this->collection->setPeriod($period); + $this->collection->setInterval($fromDate, $toDate); + $reports = $this->collection->getReports(); + foreach ($reports as $report) { + $this->assertInstanceOf('\Magento\Framework\Object', $report); + $reportData = $report->getData(); + $this->assertTrue(empty($reportData['children'])); + $this->assertTrue($reportData['is_empty']); + } + $this->assertEquals($size, count($reports)); + } + + /** + * @return void + */ + public function testLoadData() + { + $this->assertInstanceOf('\Magento\Reports\Model\Resource\Report\Collection', $this->collection->loadData()); + } + + /** + * @return array + */ + public function intervalsDataProvider() + { + return [ + [ + '_period' => 'day', + '_from' => new \DateTime('-3 day'), + '_to' => new \DateTime('+3 day'), + 'size' => 7 + ], + [ + '_period' => 'month', + '_from' => new \DateTime('2015-01-15 11:11:11'), + '_to' => new \DateTime('2015-01-25 11:11:11'), + 'size' => 1 + ], + [ + '_period' => 'month', + '_from' => new \DateTime('2015-01-15 11:11:11'), + '_to' => new \DateTime('2015-02-25 11:11:11'), + 'size' => 2 + ], + [ + '_period' => 'year', + '_from' => new \DateTime('2015-01-15 11:11:11'), + '_to' => new \DateTime('2015-01-25 11:11:11'), + 'size' => 1 + ], + [ + '_period' => 'year', + '_from' => new \DateTime('2014-01-15 11:11:11'), + '_to' => new \DateTime('2015-01-25 11:11:11'), + 'size' => 2 + ], + [ + '_period' => null, + '_from' => new \DateTime('-3 day'), + '_to' => new \DateTime('+3 day'), + 'size' => 0 + ] + ]; + } + + /** + * @return string + */ + public function formatDateTime() + { + $args = func_get_args(); + + $dateStart = $args[0]; + + $formatter = new \IntlDateFormatter( + "en_US", + \IntlDateFormatter::SHORT, + \IntlDateFormatter::SHORT, + 'America/Los_Angeles' + ); + + return $formatter->format($dateStart); } } diff --git a/app/code/Magento/Reports/Test/Unit/Model/Resource/Report/Product/ViewedTest.php b/app/code/Magento/Reports/Test/Unit/Model/Resource/Report/Product/ViewedTest.php new file mode 100644 index 0000000000000000000000000000000000000000..b22e4f2bf044939cb3db933093d341afbf6318ac --- /dev/null +++ b/app/code/Magento/Reports/Test/Unit/Model/Resource/Report/Product/ViewedTest.php @@ -0,0 +1,286 @@ +<?php +/** + * Copyright © 2015 Magento. All rights reserved. + * See COPYING.txt for license details. + */ + +namespace Magento\Reports\Test\Unit\Model\Resource\Report\Product; + +use Magento\Reports\Model\Resource\Report\Product\Viewed; + +/** + * @SuppressWarnings(PHPMD.TooManyFields) + * @SuppressWarnings(PHPMD.CouplingBetweenObjects) + */ +class ViewedTest extends \PHPUnit_Framework_TestCase +{ + /** + * @var \Magento\Reports\Model\Resource\Report\Product\Viewed + */ + protected $viewed; + + /** + * @var \Magento\Framework\Model\Resource\Db\Context|\PHPUnit_Framework_MockObject_MockObject + */ + protected $contextMock; + + /** + * @var \Psr\Log\LoggerInterface|\PHPUnit_Framework_MockObject_MockObject + */ + protected $loggerMock; + + /** + * @var \Magento\Framework\Stdlib\DateTime\TimezoneInterface|\PHPUnit_Framework_MockObject_MockObject + */ + protected $timezoneMock; + + /** + * @var \Magento\Reports\Model\FlagFactory|\PHPUnit_Framework_MockObject_MockObject + */ + protected $flagFactoryMock; + + /** + * @var \Magento\Framework\Stdlib\DateTime|\PHPUnit_Framework_MockObject_MockObject + */ + protected $dateTimeMock; + + /** + * @var \Magento\Framework\Stdlib\DateTime\Timezone\Validator|\PHPUnit_Framework_MockObject_MockObject + */ + protected $validatorMock; + + /** + * @var \Magento\Catalog\Model\Resource\Product|\PHPUnit_Framework_MockObject_MockObject + */ + protected $productMock; + + /** + * @var \Magento\Reports\Model\Resource\Helper|\PHPUnit_Framework_MockObject_MockObject + */ + protected $helperMock; + + /** + * @var \Magento\Framework\DB\Adapter\AdapterInterface|\PHPUnit_Framework_MockObject_MockObject + */ + protected $connectionMock; + + /** + * @var \Magento\Framework\App\Resource|\PHPUnit_Framework_MockObject_MockObject + */ + protected $resourceMock; + + /** + * @var \Magento\Framework\DB\Select|\PHPUnit_Framework_MockObject_MockObject + */ + protected $selectMock; + + /** + * @var \Zend_Db_Statement_Interface|\PHPUnit_Framework_MockObject_MockObject + */ + protected $zendDbMock; + + /** + * @var \Magento\Eav\Model\Entity\Attribute\AbstractAttribute|\PHPUnit_Framework_MockObject_MockObject + */ + protected $attributeMock; + + /** + * @var \Magento\Eav\Model\Entity\Attribute\Backend\AbstractBackend|\PHPUnit_Framework_MockObject_MockObject + */ + protected $backendMock; + + /** + * @var \Magento\Reports\Model\Flag|\PHPUnit_Framework_MockObject_MockObject + */ + protected $flagMock; + + /** + * @SuppressWarnings(PHPMD.ExcessiveMethodLength) + * @return void + */ + protected function setUp() + { + $this->zendDbMock = $this->getMockBuilder('Zend_Db_Statement_Interface')->getMock(); + $this->zendDbMock->expects($this->any())->method('fetchColumn')->willReturn([]); + + $this->selectMock = $this->getMockBuilder('Magento\Framework\DB\Select') + ->disableOriginalConstructor() + ->setMethods( + [ + 'from', + 'where', + 'joinInner', + 'joinLeft', + 'having', + 'useStraightJoin', + 'insertFromSelect', + '__toString' + ] + ) + ->getMock(); + $this->selectMock->expects($this->any())->method('from')->willReturnSelf(); + $this->selectMock->expects($this->any())->method('where')->willReturnSelf(); + $this->selectMock->expects($this->any())->method('joinInner')->willReturnSelf(); + $this->selectMock->expects($this->any())->method('joinLeft')->willReturnSelf(); + $this->selectMock->expects($this->any())->method('having')->willReturnSelf(); + $this->selectMock->expects($this->any())->method('useStraightJoin')->willReturnSelf(); + $this->selectMock->expects($this->any())->method('insertFromSelect')->willReturnSelf(); + $this->selectMock->expects($this->any())->method('__toString')->willReturn('string'); + + $this->connectionMock = $this->getMockBuilder('Magento\Framework\DB\Adapter\AdapterInterface')->getMock(); + $this->connectionMock->expects($this->any())->method('select')->willReturn($this->selectMock); + $this->connectionMock->expects($this->any())->method('query')->willReturn($this->zendDbMock); + + $this->resourceMock = $this->getMockBuilder('Magento\Framework\App\Resource') + ->disableOriginalConstructor() + ->getMock(); + $this->resourceMock->expects($this->any())->method('getConnection')->willReturn($this->connectionMock); + $this->resourceMock->expects($this->any())->method('getTableName')->will( + $this->returnCallback( + function ($arg) { + return $arg; + } + ) + ); + + $this->contextMock = $this->getMockBuilder('Magento\Framework\Model\Resource\Db\Context') + ->disableOriginalConstructor() + ->getMock(); + $this->contextMock->expects($this->any())->method('getResources')->willReturn($this->resourceMock); + + $this->loggerMock = $this->getMockBuilder('Psr\Log\LoggerInterface')->getMock(); + + $dateTime = $this->getMockBuilder('DateTime')->getMock(); + + $this->timezoneMock = $this->getMockBuilder('Magento\Framework\Stdlib\DateTime\TimezoneInterface')->getMock(); + $this->timezoneMock->expects($this->any())->method('scopeDate')->willReturn($dateTime); + + $this->dateTimeMock = $this->getMockBuilder('Magento\Framework\Stdlib\DateTime')->getMock(); + + $this->flagMock = $this->getMockBuilder('Magento\Reports\Model\Flag') + ->disableOriginalConstructor() + ->setMethods(['setReportFlagCode', 'unsetData', 'loadSelf', 'setFlagData', 'setLastUpdate', 'save']) + ->getMock(); + + $this->flagFactoryMock = $this->getMockBuilder('Magento\Reports\Model\FlagFactory') + ->disableOriginalConstructor() + ->setMethods(['create']) + ->getMock(); + $this->flagFactoryMock->expects($this->any())->method('create')->willReturn($this->flagMock); + + $this->validatorMock = $this->getMockBuilder('Magento\Framework\Stdlib\DateTime\Timezone\Validator') + ->disableOriginalConstructor() + ->getMock(); + + $this->backendMock = $this->getMockBuilder('Magento\Eav\Model\Entity\Attribute\Backend\AbstractBackend') + ->disableOriginalConstructor() + ->getMock(); + + $this->attributeMock = $this->getMockBuilder('Magento\Eav\Model\Entity\Attribute\AbstractAttribute') + ->disableOriginalConstructor() + ->getMock(); + $this->attributeMock->expects($this->any())->method('getBackend')->willReturn($this->backendMock); + + $this->productMock = $this->getMockBuilder('Magento\Catalog\Model\Resource\Product') + ->disableOriginalConstructor() + ->getMock(); + $this->productMock->expects($this->any())->method('getAttribute')->willReturn($this->attributeMock); + + $this->helperMock = $this->getMockBuilder('Magento\Reports\Model\Resource\Helper') + ->disableOriginalConstructor() + ->getMock(); + + $this->viewed = new Viewed( + $this->contextMock, + $this->loggerMock, + $this->timezoneMock, + $this->flagFactoryMock, + $this->dateTimeMock, + $this->validatorMock, + $this->productMock, + $this->helperMock + ); + } + + /** + * @param mixed $from + * @param mixed $to + * @param \PHPUnit_Framework_MockObject_Matcher_InvokedCount $truncateCount + * @param \PHPUnit_Framework_MockObject_Matcher_InvokedCount $deleteCount + * @dataProvider intervalsDataProvider + * @return void + */ + public function testAggregate($from, $to, $truncateCount, $deleteCount) + { + $this->connectionMock->expects($truncateCount)->method('truncateTable'); + $this->connectionMock->expects($deleteCount)->method('delete'); + + $this->helperMock + ->expects($this->at(0)) + ->method('updateReportRatingPos') + ->with( + $this->connectionMock, + 'day', + 'views_num', + 'report_viewed_product_aggregated_daily', + 'report_viewed_product_aggregated_daily' + ) + ->willReturnSelf(); + $this->helperMock + ->expects($this->at(1)) + ->method('updateReportRatingPos') + ->with( + $this->connectionMock, + 'month', + 'views_num', + 'report_viewed_product_aggregated_daily', + 'report_viewed_product_aggregated_monthly' + ) + ->willReturnSelf(); + $this->helperMock + ->expects($this->at(2)) + ->method('updateReportRatingPos') + ->with( + $this->connectionMock, + 'year', + 'views_num', + 'report_viewed_product_aggregated_daily', + 'report_viewed_product_aggregated_yearly' + ) + ->willReturnSelf(); + + $this->flagMock->expects($this->once())->method('unsetData')->willReturnSelf(); + $this->flagMock->expects($this->once())->method('loadSelf')->willReturnSelf(); + $this->flagMock->expects($this->never())->method('setFlagData')->willReturnSelf(); + $this->flagMock->expects($this->once())->method('setLastUpdate')->willReturnSelf(); + $this->flagMock->expects($this->once())->method('save')->willReturnSelf(); + $this->flagMock + ->expects($this->once()) + ->method('setReportFlagCode') + ->with(\Magento\Reports\Model\Flag::REPORT_PRODUCT_VIEWED_FLAG_CODE) + ->willReturnSelf(); + + $this->viewed->aggregate($from, $to); + } + + /** + * @return array + */ + public function intervalsDataProvider() + { + return [ + [ + 'from' => new \DateTime('+3 day'), + 'to' => new \DateTime('-3 day'), + 'truncateCount' => $this->never(), + 'deleteCount' => $this->once() + ], + [ + 'from' => null, + 'to' => null, + 'truncateCount' => $this->once(), + 'deleteCount' => $this->never() + ] + ]; + } +} diff --git a/app/code/Magento/Rule/Model/AbstractModel.php b/app/code/Magento/Rule/Model/AbstractModel.php index 8aedb81590ed17eb55dc379c90a3058160af320a..ce15aad634bed7a86551a2b483fc8039e2edb679 100644 --- a/app/code/Magento/Rule/Model/AbstractModel.php +++ b/app/code/Magento/Rule/Model/AbstractModel.php @@ -4,8 +4,6 @@ * See COPYING.txt for license details. */ -// @codingStandardsIgnoreFile - /** * Abstract Rule entity data model */ @@ -63,16 +61,22 @@ abstract class AbstractModel extends \Magento\Framework\Model\AbstractModel abstract public function getActionsInstance(); /** + * Form factory + * * @var \Magento\Framework\Data\FormFactory */ protected $_formFactory; /** + * Timezone instance + * * @var \Magento\Framework\Stdlib\DateTime\TimezoneInterface */ protected $_localeDate; /** + * Constructor + * * @param \Magento\Framework\Model\Context $context * @param \Magento\Framework\Registry $registry * @param \Magento\Framework\Data\FormFactory $formFactory @@ -233,7 +237,7 @@ abstract class AbstractModel extends \Magento\Framework\Model\AbstractModel */ protected function _resetConditions($conditions = null) { - if (is_null($conditions)) { + if (null === $conditions) { $conditions = $this->getConditionsInstance(); } $conditions->setRule($this)->setId('1')->setPrefix('conditions'); @@ -250,7 +254,7 @@ abstract class AbstractModel extends \Magento\Framework\Model\AbstractModel */ protected function _resetActions($actions = null) { - if (is_null($actions)) { + if (null === $actions) { $actions = $this->getActionsInstance(); } $actions->setRule($this)->setId('1')->setPrefix('actions'); @@ -390,6 +394,7 @@ abstract class AbstractModel extends \Magento\Framework\Model\AbstractModel * Check availability to delete rule * * @return bool + * @codeCoverageIgnore */ public function isDeleteable() { @@ -401,6 +406,7 @@ abstract class AbstractModel extends \Magento\Framework\Model\AbstractModel * * @param bool $value * @return $this + * @codeCoverageIgnore */ public function setIsDeleteable($value) { @@ -412,6 +418,7 @@ abstract class AbstractModel extends \Magento\Framework\Model\AbstractModel * Check if rule is readonly * * @return bool + * @codeCoverageIgnore */ public function isReadonly() { @@ -423,6 +430,7 @@ abstract class AbstractModel extends \Magento\Framework\Model\AbstractModel * * @param bool $value * @return $this + * @codeCoverageIgnore */ public function setIsReadonly($value) { diff --git a/app/code/Magento/Rule/Test/Unit/Model/Condition/Product/AbstractProductTest.php b/app/code/Magento/Rule/Test/Unit/Model/Condition/Product/AbstractProductTest.php index 32d0b012c88418f6e18656975357f3d17a9461f1..7c628927f6c15426dba5042fa02316cb428864bd 100644 --- a/app/code/Magento/Rule/Test/Unit/Model/Condition/Product/AbstractProductTest.php +++ b/app/code/Magento/Rule/Test/Unit/Model/Condition/Product/AbstractProductTest.php @@ -4,8 +4,6 @@ * See COPYING.txt for license details. */ -// @codingStandardsIgnoreFile - namespace Magento\Rule\Test\Unit\Model\Condition\Product; use ReflectionMethod; @@ -14,24 +12,30 @@ use ReflectionProperty; class AbstractProductTest extends \PHPUnit_Framework_TestCase { /** - * @var AbstractProduct|\PHPUnit_Framework_MockObject_MockObject + * Tested condition + * + * @var \Magento\Rule\Model\Condition\Product\AbstractProduct|\PHPUnit_Framework_MockObject_MockObject */ protected $_condition; /** + * Framework object + * * @var \Magento\Framework\Object|\PHPUnit_Framework_MockObject_MockObject */ protected $_object; /** + * Reflection for Magento\Rule\Model\Condition\Product\AbstractProduct::$_entityAttributeValues + * * @var \ReflectionProperty - * 'Magento\Rule\Model\Condition\Product\AbstractProduct::_entityAttributeValues' */ protected $_entityAttributeValuesProperty; /** + * Reflection for Magento\Rule\Model\Condition\Product\AbstractProduct::$_config + * * @var \ReflectionProperty - * 'Magento\Rule\Model\Condition\Product\AbstractProduct::_config' */ protected $_configProperty; @@ -159,8 +163,10 @@ class AbstractProductTest extends \PHPUnit_Framework_TestCase $this->_condition, $this->getMock('Magento\Eav\Model\Config', [], [], '', false) ); - $this->_entityAttributeValuesProperty->setValue($this->_condition, - $this->getMock('Magento\Eav\Model\Config', [], [], '', false)); + $this->_entityAttributeValuesProperty->setValue( + $this->_condition, + $this->getMock('Magento\Eav\Model\Config', [], [], '', false) + ); $attribute = new \Magento\Framework\Object(); $attribute->setBackendType('datetime'); @@ -306,7 +312,7 @@ class AbstractProductTest extends \PHPUnit_Framework_TestCase ->disableOriginalConstructor() ->getMock(); $attrObjectSourceMock - ->expects(is_null($expectedAttrObjSourceAllOptionsParam) ? $this->never() : $this->once()) + ->expects((null === $expectedAttrObjSourceAllOptionsParam) ? $this->never() : $this->once()) ->method('getAllOptions') ->with($expectedAttrObjSourceAllOptionsParam) ->willReturn($attrObjectSourceAllOptionsValue); @@ -317,7 +323,7 @@ class AbstractProductTest extends \PHPUnit_Framework_TestCase ->getMock(); $attributeObjectMock->method('usesSource')->willReturn(true); $attributeObjectMock - ->expects(is_null($attributeObjectFrontendInput) ? $this->never() : $this->once()) + ->expects((null === $attributeObjectFrontendInput) ? $this->never() : $this->once()) ->method('getFrontendInput') ->willReturn($attributeObjectFrontendInput); $attributeObjectMock->method('getSource')->willReturn($attrObjectSourceMock); @@ -345,12 +351,14 @@ class AbstractProductTest extends \PHPUnit_Framework_TestCase $attrSetCollectionValueMock->method('setEntityTypeFilter')->will($this->returnSelf()); $attrSetCollectionValueMock->method('load')->will($this->returnSelf()); $attrSetCollectionValueMock - ->expects(is_null($attrSetCollectionOptionsArray) ? $this->never() : $this->once()) + ->expects((null === $attrSetCollectionOptionsArray) ? $this->never() : $this->once()) ->method('toOptionArray') ->willReturn($attrSetCollectionOptionsArray); - $attrSetCollectionProperty = - new ReflectionProperty('Magento\Rule\Model\Condition\Product\AbstractProduct', '_attrSetCollection'); + $attrSetCollectionProperty = new ReflectionProperty( + 'Magento\Rule\Model\Condition\Product\AbstractProduct', + '_attrSetCollection' + ); $attrSetCollectionProperty->setAccessible(true); $attrSetCollectionProperty->setValue($this->_condition, $attrSetCollectionValueMock); @@ -366,6 +374,8 @@ class AbstractProductTest extends \PHPUnit_Framework_TestCase } /** + * Data provider for prepare value options + * * @return array * @SuppressWarnings(PHPMD.ExcessiveMethodLength) */