From 00c4da60be7c421ea7a50b9db572dfcc1a41b0b9 Mon Sep 17 00:00:00 2001 From: Yaroslav Onischenko Date: Wed, 6 May 2015 13:23:35 +0300 Subject: [PATCH 01/19] MAGETWO-36949: Decrease CRAP of Magento\Review\Model\Resource\Rating::_afterSave --- .../Magento/Review/Model/Resource/Rating.php | 155 ++++++++++-------- .../Review/Model/Resource/RatingTest.php | 80 +++++++++ 2 files changed, 165 insertions(+), 70 deletions(-) create mode 100644 dev/tests/integration/testsuite/Magento/Review/Model/Resource/RatingTest.php diff --git a/app/code/Magento/Review/Model/Resource/Rating.php b/app/code/Magento/Review/Model/Resource/Rating.php index e09fa16992692..8232e01e5bcd9 100644 --- a/app/code/Magento/Review/Model/Resource/Rating.php +++ b/app/code/Magento/Review/Model/Resource/Rating.php @@ -159,88 +159,103 @@ public function getStores($ratingId) * * @param \Magento\Framework\Model\AbstractModel|\Magento\Review\Model\Rating $object * @return $this - * @SuppressWarnings(PHPMD.CyclomaticComplexity) */ protected function _afterSave(\Magento\Framework\Model\AbstractModel $object) { parent::_afterSave($object); - - $adapter = $this->_getWriteAdapter(); - $ratingId = (int)$object->getId(); - if ($object->hasRatingCodes()) { - $ratingTitleTable = $this->getTable('rating_title'); - $adapter->beginTransaction(); - try { - $select = $adapter->select()->from( - $ratingTitleTable, - ['store_id', 'value'] - )->where( - 'rating_id = :rating_id' - ); - $old = $adapter->fetchPairs($select, [':rating_id' => $ratingId]); - $new = array_filter(array_map('trim', $object->getRatingCodes())); - - $insert = array_diff_assoc($new, $old); - $delete = array_diff_assoc($old, $new); - if (!empty($delete)) { - $where = ['rating_id = ?' => $ratingId, 'store_id IN(?)' => array_keys($delete)]; - $adapter->delete($ratingTitleTable, $where); - } - - if ($insert) { - $data = []; - foreach ($insert as $storeId => $title) { - $data[] = ['rating_id' => $ratingId, 'store_id' => (int)$storeId, 'value' => $title]; - } - if (!empty($data)) { - $adapter->insertMultiple($ratingTitleTable, $data); - } - } - $adapter->commit(); - } catch (\Exception $e) { - $this->_logger->critical($e); - $adapter->rollBack(); - } + $this->processRatingCodes($object); } if ($object->hasStores()) { - $ratingStoreTable = $this->getTable('rating_store'); - $adapter->beginTransaction(); - try { - $select = $adapter->select()->from( - $ratingStoreTable, - ['store_id'] - )->where( - 'rating_id = :rating_id' - ); - $old = $adapter->fetchCol($select, [':rating_id' => $ratingId]); - $new = $object->getStores(); - - $insert = array_diff($new, $old); - $delete = array_diff($old, $new); - - if ($delete) { - $where = ['rating_id = ?' => $ratingId, 'store_id IN(?)' => $delete]; - $adapter->delete($ratingStoreTable, $where); - } + $this->processRatingStores($object); + } - if ($insert) { - $data = []; - foreach ($insert as $storeId) { - $data[] = ['rating_id' => $ratingId, 'store_id' => (int)$storeId]; - } - $adapter->insertMultiple($ratingStoreTable, $data); - } + return $this; + } - $adapter->commit(); - } catch (\Exception $e) { - $this->_logger->critical($e); - $adapter->rollBack(); - } + /** + * @param \Magento\Framework\Model\AbstractModel $object + */ + protected function processRatingCodes(\Magento\Framework\Model\AbstractModel $object) + { + $adapter = $this->_getWriteAdapter(); + $ratingId = (int)$object->getId(); + $table = $this->getTable('rating_title'); + $select = $adapter->select()->from($table, ['store_id', 'value']) + ->where('rating_id = :rating_id'); + $old = $adapter->fetchPairs($select, [':rating_id' => $ratingId]); + $new = array_filter(array_map('trim', $object->getRatingCodes())); + $this->deleteRatingData($ratingId, $table, array_diff_assoc($old, $new)); + + $insert = []; + foreach (array_diff_assoc($new, $old) as $storeId => $title) { + $insert[] = ['rating_id' => $ratingId, 'store_id' => (int)$storeId, 'value' => $title]; } + $this->insertRatingData($table, $insert); + } - return $this; + /** + * @param \Magento\Framework\Model\AbstractModel $object + */ + protected function processRatingStores(\Magento\Framework\Model\AbstractModel $object) + { + $adapter = $this->_getWriteAdapter(); + $ratingId = (int)$object->getId(); + $table = $this->getTable('rating_store'); + $select = $adapter->select()->from($table, ['store_id']) + ->where('rating_id = :rating_id'); + $old = $adapter->fetchCol($select, [':rating_id' => $ratingId]); + $new = $object->getStores(); + $this->deleteRatingData($ratingId, $table, array_diff_assoc($old, $new)); + + $insert = []; + foreach (array_diff_assoc($new, $old) as $storeId => $title) { + $insert[] = ['rating_id' => $ratingId, 'store_id' => (int)$storeId]; + } + $this->insertRatingData($table, $insert); + } + + /** + * @param int $ratingId + * @param string $table + * @param array $data + */ + protected function deleteRatingData($ratingId, $table, array $data) + { + if (empty($data)) { + return; + } + $adapter = $this->_getWriteAdapter(); + $adapter->beginTransaction(); + try { + $where = ['rating_id = ?' => $ratingId, 'store_id IN(?)' => array_keys($data)]; + $adapter->delete($table, $where); + $adapter->commit(); + } catch (\Exception $e) { + $this->_logger->critical($e); + $adapter->rollBack(); + } + } + + /** + * @param string $table + * @param array $data + */ + protected function insertRatingData($table, array $data) + { + if (empty($data)) { + return; + } + $adapter = $this->_getWriteAdapter(); + $adapter->beginTransaction(); + try { + $adapter->insertMultiple($table, $data); + $adapter->commit(); + } catch (\Exception $e) { + $this->_logger->critical($e); + $adapter->rollBack(); + } } /** diff --git a/dev/tests/integration/testsuite/Magento/Review/Model/Resource/RatingTest.php b/dev/tests/integration/testsuite/Magento/Review/Model/Resource/RatingTest.php new file mode 100644 index 0000000000000..910fb6b0c42ef --- /dev/null +++ b/dev/tests/integration/testsuite/Magento/Review/Model/Resource/RatingTest.php @@ -0,0 +1,80 @@ +get('Magento\Store\Model\StoreManagerInterface') + ->getStore()->getId(); + + $rating = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create('Magento\Review\Model\Rating'); + $rating->setData([ + 'rating_code' => 'Test Rating', + 'position' => 0, + 'is_active' => true, + 'entity_id' => 1 + ]); + $rating->setRatingCodes([$storeId => 'Test Rating']); + $rating->setStores([$storeId]); + $rating->save(); + $this->id = $rating->getId(); + } + + /** + * @magentoDbIsolation enabled + */ + public function testRatingLoad() + { + $rating = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create('Magento\Review\Model\Rating'); + $rating->load($this->id); + $this->assertEquals('Test Rating', $rating->getRatingCode()); + } + + /** + * @magentoDbIsolation enabled + */ + public function testRatingEdit() + { + $rating = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create('Magento\Review\Model\Rating'); + $rating->load($this->id); + $this->assertEquals('Test Rating', $rating->getRatingCode()); + $storeId = \Magento\TestFramework\Helper\Bootstrap::getObjectManager() + ->get('Magento\Store\Model\StoreManagerInterface') + ->getStore()->getId(); + $rating->setRatingCode('Test Rating Edited'); + $rating->setRatingCodes([$storeId => 'Test Rating Edited']); + $rating->save(); + + $this->assertEquals('Test Rating Edited', $rating->getRatingCode()); + $this->assertEquals([$storeId => 'Test Rating Edited'], $rating->getRatingCodes()); + } + + /** + * @magentoDbIsolation enabled + */ + public function testRatingSaveWithError() + { + $this->setExpectedException('Exception', 'Rolled back transaction has not been completed correctly'); + $rating = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create('Magento\Review\Model\Rating'); + $rating->load($this->id); + $rating->setRatingCodes([222 => 'Test Rating Edited']); + $rating->save(); + } +} From f4ea0ad2fe656dea87aa53634462bb55e50252a4 Mon Sep 17 00:00:00 2001 From: Alex Bomko Date: Wed, 6 May 2015 16:17:07 +0300 Subject: [PATCH 02/19] MAGETWO-36950: Decrease CRAP of Magento\Newsletter\Block\Adminhtml\Template\Preview::_toHtml --- .../Block/Adminhtml/Template/Preview.php | 39 ++-- .../Block/Adminhtml/Template/PreviewTest.php | 168 ++++++++++++++++++ .../layout/newsletter_queue_preview.xml | 1 + .../layout/newsletter_template_preview.xml | 2 +- .../adminhtml/templates/subscriber/list.phtml | 6 +- 5 files changed, 195 insertions(+), 21 deletions(-) create mode 100644 app/code/Magento/Newsletter/Test/Unit/Block/Adminhtml/Template/PreviewTest.php diff --git a/app/code/Magento/Newsletter/Block/Adminhtml/Template/Preview.php b/app/code/Magento/Newsletter/Block/Adminhtml/Template/Preview.php index bc298348c71de..da28da43f2f25 100644 --- a/app/code/Magento/Newsletter/Block/Adminhtml/Template/Preview.php +++ b/app/code/Magento/Newsletter/Block/Adminhtml/Template/Preview.php @@ -6,8 +6,6 @@ /** * Newsletter template preview block - * - * @author Magento Core Team */ namespace Magento\Newsletter\Block\Adminhtml\Template; @@ -58,18 +56,6 @@ protected function _toHtml() $template->setTemplateStyles($this->getRequest()->getParam('styles')); } - $storeId = (int)$this->getRequest()->getParam('store_id'); - if (!$storeId) { - $defaultStore = $this->_storeManager->getDefaultStoreView(); - if (!$defaultStore) { - $allStores = $this->_storeManager->getStores(); - if (isset($allStores[0])) { - $defaultStore = $allStores[0]; - } - } - $storeId = $defaultStore ? $defaultStore->getId() : null; - } - \Magento\Framework\Profiler::start("newsletter_template_proccessing"); $vars = []; @@ -78,7 +64,7 @@ protected function _toHtml() $vars['subscriber']->load($this->getRequest()->getParam('subscriber')); } - $template->emulateDesign($storeId); + $template->emulateDesign($this->getStoreId()); $templateProcessed = $this->_appState->emulateAreaCode( \Magento\Newsletter\Model\Template::DEFAULT_DESIGN_AREA, [$template, 'getProcessedTemplate'], @@ -94,4 +80,27 @@ protected function _toHtml() return $templateProcessed; } + + /** + * Get Store Id from request or default + * + * @return int|null + */ + protected function getStoreId() + { + $storeId = (int)$this->getRequest()->getParam('store_id'); + if ($storeId) { + return $storeId; + } + + $defaultStore = $this->_storeManager->getDefaultStoreView(); + if (!$defaultStore) { + $allStores = $this->_storeManager->getStores(); + if (isset($allStores[0])) { + $defaultStore = $allStores[0]; + } + } + + return $defaultStore ? $defaultStore->getId() : null; + } } diff --git a/app/code/Magento/Newsletter/Test/Unit/Block/Adminhtml/Template/PreviewTest.php b/app/code/Magento/Newsletter/Test/Unit/Block/Adminhtml/Template/PreviewTest.php new file mode 100644 index 0000000000000..a0c04a1af24c1 --- /dev/null +++ b/app/code/Magento/Newsletter/Test/Unit/Block/Adminhtml/Template/PreviewTest.php @@ -0,0 +1,168 @@ +request = $this->getMock('Magento\Framework\App\RequestInterface', [], [], '', false); + $this->appState = $this->getMock('Magento\Framework\App\State', [], [], '', false); + $this->storeManager = $this->getMock('Magento\Store\Model\StoreManagerInterface', [], [], '', false); + $this->template = $this->getMock( + 'Magento\Newsletter\Model\Template', + [ + 'setTemplateType', + 'setTemplateText', + 'setTemplateStyles', + 'isPlain', + 'emulateDesign', + 'revertDesign', + 'getProcessedTemplate', + 'load' + ], + [], + '', + false + ); + $templateFactory = $this->getMock('Magento\Newsletter\Model\TemplateFactory', [], [], '', false); + $templateFactory->expects($this->once())->method('create')->willReturn($this->template); + $this->subscriberFactory = $this->getMock('Magento\Newsletter\Model\SubscriberFactory', [], [], '', false); + + $this->objectManagerHelper = new ObjectManagerHelper($this); + $this->preview = $this->objectManagerHelper->getObject( + 'Magento\Newsletter\Block\Adminhtml\Template\Preview', + [ + 'appState' => $this->appState, + 'storeManager' => $this->storeManager, + 'request' => $this->request, + 'templateFactory' => $templateFactory, + 'subscriberFactory' => $this->subscriberFactory + ] + ); + } + + public function testToHtml() + { + $this->request->expects($this->any())->method('getParam')->willReturnMap([ + ['id', null, 1], + ['store_id', null, 1] + ]); + + $this->template->expects($this->atLeastOnce())->method('emulateDesign')->with(1); + $this->template->expects($this->atLeastOnce())->method('revertDesign'); + + $this->appState->expects($this->atLeastOnce())->method('emulateAreaCode') + ->with( + \Magento\Newsletter\Model\Template::DEFAULT_DESIGN_AREA, + [$this->template, 'getProcessedTemplate'], + [['subscriber' => null], true] + ) + ->willReturn('Processed Template'); + + $this->assertEquals('Processed Template', $this->preview->toHtml()); + } + + public function testToHtmlForNewTemplate() + { + $this->request->expects($this->any())->method('getParam')->willReturnMap([ + ['type', null, TemplateTypesInterface::TYPE_TEXT], + ['text', null, 'Processed Template'], + ['styles', null, '.class-name{color:red;}'] + ]); + + $this->template->expects($this->once())->method('setTemplateType')->with(TemplateTypesInterface::TYPE_TEXT) + ->willReturnSelf(); + $this->template->expects($this->once())->method('setTemplateText')->with('Processed Template') + ->willReturnSelf(); + $this->template->expects($this->once())->method('setTemplateStyles')->with('.class-name{color:red;}') + ->willReturnSelf(); + $this->template->expects($this->atLeastOnce())->method('isPlain')->willReturn(true); + $this->template->expects($this->atLeastOnce())->method('emulateDesign')->with(1); + $this->template->expects($this->atLeastOnce())->method('revertDesign'); + + $store = $this->getMock('Magento\Store\Model\Store', [], [], '', false); + $store->expects($this->atLeastOnce())->method('getId')->willReturn(1); + + $this->storeManager->expects($this->atLeastOnce())->method('getStores')->willReturn([$store]); + + + $this->appState->expects($this->atLeastOnce())->method('emulateAreaCode') + ->with( + \Magento\Newsletter\Model\Template::DEFAULT_DESIGN_AREA, + [ + $this->template, + 'getProcessedTemplate' + ], + [ + [ + 'subscriber' => null + ], + true + ] + ) + ->willReturn('Processed Template'); + + $this->assertEquals('
Processed Template
', $this->preview->toHtml()); + } + + public function testToHtmlWithSubscriber() + { + $this->request->expects($this->any())->method('getParam')->willReturnMap([ + ['id', null, 2], + ['store_id', null, 1], + ['subscriber', null, 3] + ]); + $subscriber = $this->getMock('Magento\Newsletter\Model\Subscriber', [], [], '', false); + $subscriber->expects($this->atLeastOnce())->method('load')->with(3)->willReturnSelf(); + $this->subscriberFactory->expects($this->atLeastOnce())->method('create')->willReturn($subscriber); + + $this->template->expects($this->atLeastOnce())->method('emulateDesign')->with(1); + $this->template->expects($this->atLeastOnce())->method('revertDesign'); + + $this->appState->expects($this->atLeastOnce())->method('emulateAreaCode') + ->with( + \Magento\Newsletter\Model\Template::DEFAULT_DESIGN_AREA, + [ + $this->template, + 'getProcessedTemplate' + ], + [ + [ + 'subscriber' => $subscriber + ], + true + ] + ) + ->willReturn('Processed Template'); + + $this->assertEquals('Processed Template', $this->preview->toHtml()); + } +} diff --git a/app/code/Magento/Newsletter/view/adminhtml/layout/newsletter_queue_preview.xml b/app/code/Magento/Newsletter/view/adminhtml/layout/newsletter_queue_preview.xml index 76f9bc780ae85..cb7ac6cb26d42 100644 --- a/app/code/Magento/Newsletter/view/adminhtml/layout/newsletter_queue_preview.xml +++ b/app/code/Magento/Newsletter/view/adminhtml/layout/newsletter_queue_preview.xml @@ -15,6 +15,7 @@ + diff --git a/app/code/Magento/Newsletter/view/adminhtml/layout/newsletter_template_preview.xml b/app/code/Magento/Newsletter/view/adminhtml/layout/newsletter_template_preview.xml index cb7ac6cb26d42..d468c2a843414 100644 --- a/app/code/Magento/Newsletter/view/adminhtml/layout/newsletter_template_preview.xml +++ b/app/code/Magento/Newsletter/view/adminhtml/layout/newsletter_template_preview.xml @@ -12,7 +12,7 @@ - + diff --git a/app/code/Magento/Newsletter/view/adminhtml/templates/subscriber/list.phtml b/app/code/Magento/Newsletter/view/adminhtml/templates/subscriber/list.phtml index b273b7dd4a35b..9ff5ae3d09619 100644 --- a/app/code/Magento/Newsletter/view/adminhtml/templates/subscriber/list.phtml +++ b/app/code/Magento/Newsletter/view/adminhtml/templates/subscriber/list.phtml @@ -20,8 +20,6 @@ From f990bc123df94a25fc8d15c87956b342ad5fd4e9 Mon Sep 17 00:00:00 2001 From: Denys Rudchenko Date: Wed, 6 May 2015 16:57:07 +0300 Subject: [PATCH 03/19] MAGETWO-35744: [MX] [Nord] Code coverage - Sprint 20 - MAGETWO-36953: Decrease CRAP of Magento\Newsletter\Block\Adminhtml\Queue\Preview::_toHtml --- .../Block/Adminhtml/Queue/PreviewTest.php | 96 +++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100644 app/code/Magento/Newsletter/Test/Unit/Block/Adminhtml/Queue/PreviewTest.php diff --git a/app/code/Magento/Newsletter/Test/Unit/Block/Adminhtml/Queue/PreviewTest.php b/app/code/Magento/Newsletter/Test/Unit/Block/Adminhtml/Queue/PreviewTest.php new file mode 100644 index 0000000000000..db1bcddc9192c --- /dev/null +++ b/app/code/Magento/Newsletter/Test/Unit/Block/Adminhtml/Queue/PreviewTest.php @@ -0,0 +1,96 @@ +getMock('Magento\Newsletter\Model\TemplateFactory', ['create'], [], '', false); + $this->template = $this->getMock('Magento\Newsletter\Model\Template', [], [], '', false); + $templateFactory->expects($this->once())->method('create')->will($this->returnValue($this->template)); + $queueFactory = $this->getMock('Magento\Newsletter\Model\QueueFactory', ['create'], [], '', false); + $this->queue = $this->getMock('Magento\Newsletter\Model\Queue', ['load'], [], '', false); + $queueFactory->expects($this->any())->method('create')->will($this->returnValue($this->queue)); + + $this->request = $this->getMock('Magento\Framework\App\Request\Http', [], [], '', false); + $this->storeManager = $this->getMock( + 'Magento\Store\Model\StoreManager', + ['getStores', 'getDefaultStoreView'], + [], + '', + false + ); + + $this->objectManager = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this); + $this->preview = $this->objectManager->getObject( + 'Magento\Newsletter\Block\Adminhtml\Queue\Preview', + [ + 'templateFactory' => $templateFactory, + 'queueFactory' => $queueFactory, + 'request' => $this->request, + 'storeManager' => $this->storeManager + ] + ); + } + + public function testToHtmlEmpty() + { + /** @var \Magento\Store\Model\Store $store */ + $store = $this->getMock('Magento\Store\Model\Store', ['getId'], [], '', false); + $this->storeManager->expects($this->once())->method('getDefaultStoreView')->will($this->returnValue($store)); + $result = $this->preview->toHtml(); + $this->assertEquals('', $result); + } + + public function testToHtmlWithId() + { + $this->request->expects($this->any())->method('getParam')->will($this->returnValueMap( + [ + ['id', null, 1], + ['store_id', null, 0] + ] + )); + $this->queue->expects($this->once())->method('load')->will($this->returnSelf()); + $this->template->expects($this->any())->method('isPlain')->will($this->returnValue(true)); + /** @var \Magento\Store\Model\Store $store */ + $this->storeManager->expects($this->once())->method('getDefaultStoreView')->will($this->returnValue(null)); + $store = $this->getMock('Magento\Store\Model\Store', ['getId'], [], '', false); + $this->storeManager->expects($this->once())->method('getStores')->will($this->returnValue([0 => $store])); + $result = $this->preview->toHtml(); + $this->assertEquals('
', $result);
+    }
+}

From 91084df83d1ddf5bbf58b91f37c43c83ecb7fe99 Mon Sep 17 00:00:00 2001
From: Yaroslav Onischenko 
Date: Thu, 7 May 2015 18:32:28 +0300
Subject: [PATCH 04/19] MAGETWO-36949: Decrease CRAP of
 Magento\Review\Model\Resource\Rating::_afterSave

---
 app/code/Magento/Review/Model/Resource/Rating.php | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/app/code/Magento/Review/Model/Resource/Rating.php b/app/code/Magento/Review/Model/Resource/Rating.php
index 8232e01e5bcd9..b6beedc2b234e 100644
--- a/app/code/Magento/Review/Model/Resource/Rating.php
+++ b/app/code/Magento/Review/Model/Resource/Rating.php
@@ -176,6 +176,7 @@ protected function _afterSave(\Magento\Framework\Model\AbstractModel $object)
 
     /**
      * @param \Magento\Framework\Model\AbstractModel $object
+     * @return $this
      */
     protected function processRatingCodes(\Magento\Framework\Model\AbstractModel $object)
     {
@@ -193,10 +194,12 @@ protected function processRatingCodes(\Magento\Framework\Model\AbstractModel $ob
             $insert[] = ['rating_id' => $ratingId, 'store_id' => (int)$storeId, 'value' => $title];
         }
         $this->insertRatingData($table, $insert);
+        return $this;
     }
 
     /**
      * @param \Magento\Framework\Model\AbstractModel $object
+     * @return $this
      */
     protected function processRatingStores(\Magento\Framework\Model\AbstractModel $object)
     {
@@ -214,12 +217,14 @@ protected function processRatingStores(\Magento\Framework\Model\AbstractModel $o
             $insert[] = ['rating_id' => $ratingId, 'store_id' => (int)$storeId];
         }
         $this->insertRatingData($table, $insert);
+        return $this;
     }
 
     /**
      * @param int $ratingId
      * @param string $table
      * @param array $data
+     * @return void
      */
     protected function deleteRatingData($ratingId, $table, array $data)
     {
@@ -241,6 +246,7 @@ protected function deleteRatingData($ratingId, $table, array $data)
     /**
      * @param string $table
      * @param array $data
+     * @return void
      */
     protected function insertRatingData($table, array $data)
     {

From 71a12e9b1574d374018170fae248d9376d8dfb64 Mon Sep 17 00:00:00 2001
From: Denys Rudchenko 
Date: Thu, 7 May 2015 18:48:47 +0300
Subject: [PATCH 05/19] MAGETWO-35744: [MX] [Nord] Code coverage - Sprint 20

- MAGETWO-36954: Decrease CRAP of Magento\Review\Model\Resource\Rating\Collection::addEntitySummaryToItem
---
 .../Model/Resource/Rating/CollectionTest.php  | 43 +++++++++++++++++++
 .../Magento/Review/_files/customer_rating.php | 22 ++++++++++
 2 files changed, 65 insertions(+)
 create mode 100644 dev/tests/integration/testsuite/Magento/Review/Model/Resource/Rating/CollectionTest.php
 create mode 100644 dev/tests/integration/testsuite/Magento/Review/_files/customer_rating.php

diff --git a/dev/tests/integration/testsuite/Magento/Review/Model/Resource/Rating/CollectionTest.php b/dev/tests/integration/testsuite/Magento/Review/Model/Resource/Rating/CollectionTest.php
new file mode 100644
index 0000000000000..f876c104e090f
--- /dev/null
+++ b/dev/tests/integration/testsuite/Magento/Review/Model/Resource/Rating/CollectionTest.php
@@ -0,0 +1,43 @@
+collection = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create(
+            'Magento\Review\Model\Resource\Rating\Collection'
+        );
+    }
+
+    /**
+     * @magentoDataFixture Magento/Review/_files/customer_rating.php
+     */
+    public function testAddEntitySummaryToItem()
+    {
+        $ratingData = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()
+            ->get('Magento\Framework\Registry')
+            ->registry('rating_data');
+        $this->collection->addEntitySummaryToItem($ratingData->getEntityId(), $ratingData->getStoreId());
+    }
+
+    public function testAddStoreData()
+    {
+        $this->collection->addStoreData();
+    }
+
+    public function testSetStoreFilter()
+    {
+        $this->collection->setStoreFilter(1);
+    }
+
+}
diff --git a/dev/tests/integration/testsuite/Magento/Review/_files/customer_rating.php b/dev/tests/integration/testsuite/Magento/Review/_files/customer_rating.php
new file mode 100644
index 0000000000000..82c612b35188d
--- /dev/null
+++ b/dev/tests/integration/testsuite/Magento/Review/_files/customer_rating.php
@@ -0,0 +1,22 @@
+create(
+    'Magento\Review\Model\Rating',
+    ['data' => [
+        'rating_code' => 'test',
+        'rating_codes' => ['test'],
+        'position' => 0,
+        'isActive' => 1,
+        'entityId' => $review->getEntityId()
+    ]]
+);
+$ratingModel->save();
+\Magento\TestFramework\Helper\Bootstrap::getObjectManager()->get('Magento\Framework\Registry')->register(
+    'rating_data',
+    $ratingModel
+);

From fd1e1f984c16275e5263e633eec8c9e4ce96abac Mon Sep 17 00:00:00 2001
From: Denys Rudchenko 
Date: Fri, 8 May 2015 17:41:59 +0300
Subject: [PATCH 06/19] MAGETWO-35744: [MX] [Nord] Code coverage - Sprint 20

- MAGETWO-36954: Decrease CRAP of Magento\Review\Model\Resource\Rating\Collection::addEntitySummaryToItem
---
 .../Model/Resource/Rating/CollectionTest.php  | 14 +++++++++-
 .../Magento/Review/_files/customer_rating.php | 27 ++++++++++++++++---
 2 files changed, 37 insertions(+), 4 deletions(-)

diff --git a/dev/tests/integration/testsuite/Magento/Review/Model/Resource/Rating/CollectionTest.php b/dev/tests/integration/testsuite/Magento/Review/Model/Resource/Rating/CollectionTest.php
index f876c104e090f..85ed6ef1fc958 100644
--- a/dev/tests/integration/testsuite/Magento/Review/Model/Resource/Rating/CollectionTest.php
+++ b/dev/tests/integration/testsuite/Magento/Review/Model/Resource/Rating/CollectionTest.php
@@ -27,7 +27,19 @@ public function testAddEntitySummaryToItem()
         $ratingData = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()
             ->get('Magento\Framework\Registry')
             ->registry('rating_data');
-        $this->collection->addEntitySummaryToItem($ratingData->getEntityId(), $ratingData->getStoreId());
+
+        $result = $this->collection->addEntitySummaryToItem($ratingData->getEntityId(), $ratingData->getStoreId());
+        $this->assertEquals($this->collection, $result);
+    }
+
+    public function testAddEntitySummaryToItemEmpty()
+    {
+        foreach ($this->collection->getItems() as $item) {
+            $item->delete();
+        }
+        $this->collection->clear();
+        $result = $this->collection->addEntitySummaryToItem(1, 1);
+        $this->assertEquals($this->collection, $result);
     }
 
     public function testAddStoreData()
diff --git a/dev/tests/integration/testsuite/Magento/Review/_files/customer_rating.php b/dev/tests/integration/testsuite/Magento/Review/_files/customer_rating.php
index 82c612b35188d..cf75322b2e78a 100644
--- a/dev/tests/integration/testsuite/Magento/Review/_files/customer_rating.php
+++ b/dev/tests/integration/testsuite/Magento/Review/_files/customer_rating.php
@@ -5,17 +5,38 @@
  */
 require __DIR__ . '/customer_review.php';
 
+$storeId = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()
+    ->get('Magento\Store\Model\StoreManagerInterface')
+    ->getStore()
+    ->getId();
+/** @var \Magento\Review\Model\Rating $ratingModel */
 $ratingModel = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create(
     'Magento\Review\Model\Rating',
     ['data' => [
         'rating_code' => 'test',
-        'rating_codes' => ['test'],
         'position' => 0,
-        'isActive' => 1,
-        'entityId' => $review->getEntityId()
+        'isActive' => 1
     ]]
 );
+$ratingModel->setStoreId($storeId)
+    ->setStores([$storeId])
+    ->setEntityId($ratingModel->getEntityIdByCode(Magento\Review\Model\Rating::ENTITY_PRODUCT_CODE))
+    ->setRatingCodes(['test']);
 $ratingModel->save();
+
+/** @var \Magento\Review\Model\Rating\Option $optionModel */
+$optionModel = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create(
+    'Magento\Review\Model\Rating\Option'
+);
+$optionModel->setCode(1)
+    ->setValue(1)
+    ->setRatingId($ratingModel->getId())
+    ->setPosition(1)
+    ->setReviewId($review->getId())
+    ->setEntityPkValue($product->getId())
+    ->save();
+$optionModel->addVote();
+
 \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->get('Magento\Framework\Registry')->register(
     'rating_data',
     $ratingModel

From 5fe6f36d7b9998e4fa45e44e4d1ebf80e8ea1f22 Mon Sep 17 00:00:00 2001
From: Denys Rudchenko 
Date: Fri, 8 May 2015 19:22:30 +0300
Subject: [PATCH 07/19] MAGETWO-35744: [MX] [Nord] Code coverage - Sprint 20

- MAGETWO-36953: Decrease CRAP of Magento\Newsletter\Block\Adminhtml\Queue\Preview::_toHtml
---
 .../Block/Adminhtml/Queue/Preview.php         | 75 ++++---------------
 .../Block/Adminhtml/Template/Preview.php      | 24 +++++-
 2 files changed, 35 insertions(+), 64 deletions(-)

diff --git a/app/code/Magento/Newsletter/Block/Adminhtml/Queue/Preview.php b/app/code/Magento/Newsletter/Block/Adminhtml/Queue/Preview.php
index 27494f5272324..f8f2ec4c13a70 100644
--- a/app/code/Magento/Newsletter/Block/Adminhtml/Queue/Preview.php
+++ b/app/code/Magento/Newsletter/Block/Adminhtml/Queue/Preview.php
@@ -11,23 +11,18 @@
  */
 namespace Magento\Newsletter\Block\Adminhtml\Queue;
 
-class Preview extends \Magento\Backend\Block\Widget
+class Preview extends \Magento\Newsletter\Block\Adminhtml\Template\Preview
 {
     /**
-     * @var \Magento\Newsletter\Model\TemplateFactory
+     * {@inheritdoc}
      */
-    protected $_templateFactory;
+    protected $profilerName = "newsletter_queue_proccessing";
 
     /**
      * @var \Magento\Newsletter\Model\QueueFactory
      */
     protected $_queueFactory;
 
-    /**
-     * @var \Magento\Newsletter\Model\SubscriberFactory
-     */
-    protected $_subscriberFactory;
-
     /**
      * @param \Magento\Backend\Block\Template\Context $context
      * @param \Magento\Newsletter\Model\TemplateFactory $templateFactory
@@ -42,64 +37,22 @@ public function __construct(
         \Magento\Newsletter\Model\SubscriberFactory $subscriberFactory,
         array $data = []
     ) {
-        $this->_templateFactory = $templateFactory;
         $this->_queueFactory = $queueFactory;
-        $this->_subscriberFactory = $subscriberFactory;
-        parent::__construct($context, $data);
+        parent::__construct($context, $templateFactory, $subscriberFactory, $data);
     }
 
     /**
-     * Get html code
-     *
-     * @return string
+     * @param \Magento\Newsletter\Model\Template $template
+     * @param string $id
+     * @return $this
      */
-    protected function _toHtml()
+    protected function loadTemplate(\Magento\Newsletter\Model\Template $template, $id)
     {
-        /* @var $template \Magento\Newsletter\Model\Template */
-        $template = $this->_templateFactory->create();
-
-        if ($id = (int)$this->getRequest()->getParam('id')) {
-            $queue = $this->_queueFactory->create()->load($id);
-            $template->setTemplateType($queue->getNewsletterType());
-            $template->setTemplateText($queue->getNewsletterText());
-            $template->setTemplateStyles($queue->getNewsletterStyles());
-        } else {
-            $template->setTemplateType($this->getRequest()->getParam('type'));
-            $template->setTemplateText($this->getRequest()->getParam('text'));
-            $template->setTemplateStyles($this->getRequest()->getParam('styles'));
-        }
-
-        $storeId = (int)$this->getRequest()->getParam('store_id');
-        if (!$storeId) {
-            $defaultStore = $this->_storeManager->getDefaultStoreView();
-            if (!$defaultStore) {
-                $allStores = $this->_storeManager->getStores();
-                if (isset($allStores[0])) {
-                    $defaultStore = $allStores[0];
-                }
-            }
-            $storeId = $defaultStore ? $defaultStore->getId() : null;
-        }
-
-        \Magento\Framework\Profiler::start("newsletter_queue_proccessing");
-        $vars = [];
-
-        $vars['subscriber'] = $this->_subscriberFactory->create();
-
-        $template->emulateDesign($storeId);
-        $templateProcessed = $this->_appState->emulateAreaCode(
-            \Magento\Newsletter\Model\Template::DEFAULT_DESIGN_AREA,
-            [$template, 'getProcessedTemplate'],
-            [$vars, true]
-        );
-        $template->revertDesign();
-
-        if ($template->isPlain()) {
-            $templateProcessed = "
" . htmlspecialchars($templateProcessed) . "
"; - } - - \Magento\Framework\Profiler::stop("newsletter_queue_proccessing"); - - return $templateProcessed; + /** @var \Magento\Newsletter\Model\Queue $queue */ + $queue = $this->_queueFactory->create()->load($id); + $template->setTemplateType($queue->getNewsletterType()); + $template->setTemplateText($queue->getNewsletterText()); + $template->setTemplateStyles($queue->getNewsletterStyles()); + return $this; } } diff --git a/app/code/Magento/Newsletter/Block/Adminhtml/Template/Preview.php b/app/code/Magento/Newsletter/Block/Adminhtml/Template/Preview.php index da28da43f2f25..1166eca0d4d88 100644 --- a/app/code/Magento/Newsletter/Block/Adminhtml/Template/Preview.php +++ b/app/code/Magento/Newsletter/Block/Adminhtml/Template/Preview.php @@ -11,6 +11,13 @@ class Preview extends \Magento\Backend\Block\Widget { + /** + * Name for profiler + * + * @var string + */ + protected $profilerName = "newsletter_template_proccessing"; + /** * @var \Magento\Newsletter\Model\TemplateFactory */ @@ -49,14 +56,14 @@ protected function _toHtml() $template = $this->_templateFactory->create(); if ($id = (int)$this->getRequest()->getParam('id')) { - $template->load($id); + $this->loadTemplate($template, $id); } else { $template->setTemplateType($this->getRequest()->getParam('type')); $template->setTemplateText($this->getRequest()->getParam('text')); $template->setTemplateStyles($this->getRequest()->getParam('styles')); } - \Magento\Framework\Profiler::start("newsletter_template_proccessing"); + \Magento\Framework\Profiler::start($this->profilerName); $vars = []; $vars['subscriber'] = $this->_subscriberFactory->create(); @@ -76,7 +83,7 @@ protected function _toHtml() $templateProcessed = "
" . htmlspecialchars($templateProcessed) . "
"; } - \Magento\Framework\Profiler::stop("newsletter_template_proccessing"); + \Magento\Framework\Profiler::stop($this->profilerName); return $templateProcessed; } @@ -103,4 +110,15 @@ protected function getStoreId() return $defaultStore ? $defaultStore->getId() : null; } + + /** + * @param \Magento\Newsletter\Model\Template $template + * @param string $id + * @return $this + */ + protected function loadTemplate(\Magento\Newsletter\Model\Template $template, $id) + { + $template->load($id); + return $this; + } } From e836997a4c2dc05eaa1fa23d20b50156e34aa541 Mon Sep 17 00:00:00 2001 From: Victor Rad Date: Wed, 13 May 2015 16:30:07 +0300 Subject: [PATCH 08/19] MAGETWO-36951: Decrease CRAP of Magento\Review\Model\Resource\Review::aggregate --- .../Magento/Review/Model/Resource/Review.php | 106 +++++++++++------- .../Model/Resource/Review/ReviewTest.php | 64 +++++++++++ .../_files/customer_review_with_rating.php | 60 ++++++++++ 3 files changed, 188 insertions(+), 42 deletions(-) create mode 100644 dev/tests/integration/testsuite/Magento/Review/Model/Resource/Review/ReviewTest.php create mode 100644 dev/tests/integration/testsuite/Magento/Review/_files/customer_review_with_rating.php diff --git a/app/code/Magento/Review/Model/Resource/Review.php b/app/code/Magento/Review/Model/Resource/Review.php index 9ca5b4617f759..126f9cac5a28f 100644 --- a/app/code/Magento/Review/Model/Resource/Review.php +++ b/app/code/Magento/Review/Model/Resource/Review.php @@ -322,8 +322,6 @@ public function getTotalReviews($entityPkValue, $approvedOnly = false, $storeId */ public function aggregate($object) { - $readAdapter = $this->_getReadAdapter(); - $writeAdapter = $this->_getWriteAdapter(); if (!$object->getEntityPkValue() && $object->getId()) { $object->load($object->getReviewId()); } @@ -332,48 +330,72 @@ public function aggregate($object) $ratingSummaries = $ratingModel->getEntitySummary($object->getEntityPkValue(), false); foreach ($ratingSummaries as $ratingSummaryObject) { - if ($ratingSummaryObject->getCount()) { - $ratingSummary = round($ratingSummaryObject->getSum() / $ratingSummaryObject->getCount()); - } else { - $ratingSummary = $ratingSummaryObject->getSum(); - } + $this->aggregateReviewSummary($object, $ratingSummaryObject); + } + } - $reviewsCount = $this->getTotalReviews( - $object->getEntityPkValue(), - true, - $ratingSummaryObject->getStoreId() - ); - $select = $readAdapter->select()->from($this->_aggregateTable) - ->where('entity_pk_value = :pk_value') - ->where('entity_type = :entity_type') - ->where('store_id = :store_id'); - $bind = [ - ':pk_value' => $object->getEntityPkValue(), - ':entity_type' => $object->getEntityId(), - ':store_id' => $ratingSummaryObject->getStoreId(), - ]; - $oldData = $readAdapter->fetchRow($select, $bind); - - $data = new \Magento\Framework\Object(); - - $data->setReviewsCount($reviewsCount) - ->setEntityPkValue($object->getEntityPkValue()) - ->setEntityType($object->getEntityId()) - ->setRatingSummary($ratingSummary > 0 ? $ratingSummary : 0) - ->setStoreId($ratingSummaryObject->getStoreId()); - - $writeAdapter->beginTransaction(); - try { - if ($oldData['primary_id'] > 0) { - $condition = ["{$this->_aggregateTable}.primary_id = ?" => $oldData['primary_id']]; - $writeAdapter->update($this->_aggregateTable, $data->getData(), $condition); - } else { - $writeAdapter->insert($this->_aggregateTable, $data->getData()); - } - $writeAdapter->commit(); - } catch (\Exception $e) { - $writeAdapter->rollBack(); + /** + * Aggregate review summary + * + * @param \Magento\Framework\Model\AbstractModel $object + * @param $ratingSummaryObject + */ + protected function aggregateReviewSummary($object, $ratingSummaryObject) + { + $readAdapter = $this->_getReadAdapter(); + + if ($ratingSummaryObject->getCount()) { + $ratingSummary = round($ratingSummaryObject->getSum() / $ratingSummaryObject->getCount()); + } else { + $ratingSummary = $ratingSummaryObject->getSum(); + } + + $reviewsCount = $this->getTotalReviews( + $object->getEntityPkValue(), + true, + $ratingSummaryObject->getStoreId() + ); + $select = $readAdapter->select()->from($this->_aggregateTable) + ->where('entity_pk_value = :pk_value') + ->where('entity_type = :entity_type') + ->where('store_id = :store_id'); + $bind = [ + ':pk_value' => $object->getEntityPkValue(), + ':entity_type' => $object->getEntityId(), + ':store_id' => $ratingSummaryObject->getStoreId(), + ]; + $oldData = $readAdapter->fetchRow($select, $bind); + $data = new \Magento\Framework\Object(); + + $data->setReviewsCount($reviewsCount) + ->setEntityPkValue($object->getEntityPkValue()) + ->setEntityType($object->getEntityId()) + ->setRatingSummary($ratingSummary > 0 ? $ratingSummary : 0) + ->setStoreId($ratingSummaryObject->getStoreId()); + + $this->writeReviewSummary($oldData, $data); + } + + /** + * Write rating summary + * + * @param array|bool $oldData + * @param \Magento\Framework\Object $data + */ + protected function writeReviewSummary($oldData, \Magento\Framework\Object $data) + { + $writeAdapter = $this->_getWriteAdapter(); + $writeAdapter->beginTransaction(); + try { + if (isset($oldData['primary_id']) && $oldData['primary_id'] > 0) { + $condition = ["{$this->_aggregateTable}.primary_id = ?" => $oldData['primary_id']]; + $writeAdapter->update($this->_aggregateTable, $data->getData(), $condition); + } else { + $writeAdapter->insert($this->_aggregateTable, $data->getData()); } + $writeAdapter->commit(); + } catch (\Exception $e) { + $writeAdapter->rollBack(); } } diff --git a/dev/tests/integration/testsuite/Magento/Review/Model/Resource/Review/ReviewTest.php b/dev/tests/integration/testsuite/Magento/Review/Model/Resource/Review/ReviewTest.php new file mode 100644 index 0000000000000..31168c9b72883 --- /dev/null +++ b/dev/tests/integration/testsuite/Magento/Review/Model/Resource/Review/ReviewTest.php @@ -0,0 +1,64 @@ +objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager(); + $this->resource = $this->objectManager->get('Magento\Framework\App\Resource'); + $this->adapter = $this->resource->getConnection('core_read'); + $this->review = $this->objectManager->create('Magento\Review\Model\Review'); + $this->reviewResource = $this->objectManager->create('Magento\Review\Model\Resource\Review'); + } + + /** + * @magentoDataFixture Magento/Review/_files/customer_review_with_rating.php + */ + public function testAggregate() + { + $rating = $this->review->getCollection()->getFirstItem(); + $this->reviewResource->aggregate($rating); + + $select = $this->adapter->select()->from($this->resource->getTableName('review_entity_summary')); + $result = $this->adapter->fetchRow($select); + + $this->assertEquals(1, $result['reviews_count']); + $this->assertEquals(40, $result['rating_summary']); + } +} diff --git a/dev/tests/integration/testsuite/Magento/Review/_files/customer_review_with_rating.php b/dev/tests/integration/testsuite/Magento/Review/_files/customer_review_with_rating.php new file mode 100644 index 0000000000000..3c1d16f71350d --- /dev/null +++ b/dev/tests/integration/testsuite/Magento/Review/_files/customer_review_with_rating.php @@ -0,0 +1,60 @@ +loadArea( + \Magento\Backend\App\Area\FrontNameResolver::AREA_CODE +); + +require __DIR__ . '/../../../Magento/Customer/_files/customer.php'; +require __DIR__ . '/../../../Magento/Catalog/_files/product_simple.php'; + +$storeId = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->get('Magento\Store\Model\StoreManagerInterface') + ->getStore()->getId(); + +$review = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create( + 'Magento\Review\Model\Review', + ['data' => [ + 'customer_id' => $customer->getId(), + 'title' => 'Review Summary', + 'detail' => 'Review text', + 'nickname' => 'Nickname', + ]] +); + +$review + ->setEntityId($review->getEntityIdByCode(\Magento\Review\Model\Review::ENTITY_PRODUCT_CODE)) + ->setEntityPkValue($product->getId()) + ->setStatusId(\Magento\Review\Model\Review::STATUS_APPROVED) + ->setStoreId($storeId) + ->setStores([$storeId]) + ->save(); + +\Magento\TestFramework\Helper\Bootstrap::getObjectManager()->get('Magento\Framework\Registry')->register( + 'review_data', + $review +); + +$ratingCollection = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create( + '\Magento\Review\Model\Rating' +)->getCollection() + ->setPageSize(2) + ->setCurPage(1); + +foreach($ratingCollection as $rating) { + $rating->setStores([$storeId])->setIsActive(1)->save(); +} + +foreach($ratingCollection as $rating) { + $ratingOption = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create( + '\Magento\Review\Model\Rating\Option' + )->getCollection() + ->setPageSize(1) + ->setCurPage(2) + ->addRatingFilter($rating->getId()) + ->getFirstItem(); + $rating->setReviewId($review->getId()) + ->addOptionVote($ratingOption->getId(), $product->getId()); +} From e4fc80c942f9ee9bdaa8a4130dee5e010f8af6a0 Mon Sep 17 00:00:00 2001 From: Alex Bomko Date: Thu, 14 May 2015 17:08:28 +0300 Subject: [PATCH 09/19] MAGETWO-32629: Define Public API - Nord (MX) --- app/code/Magento/Catalog/Block/Adminhtml/Rss/Grid/Link.php | 1 - .../Catalog/Test/Unit/Model/Template/Filter/FactoryTest.php | 2 +- .../CatalogInventory/Api/Data/StockCollectionInterface.php | 1 + app/code/Magento/CatalogInventory/Api/Data/StockInterface.php | 1 + .../CatalogInventory/Api/Data/StockItemCollectionInterface.php | 2 +- .../Magento/CatalogInventory/Api/Data/StockItemInterface.php | 1 + .../Api/Data/StockStatusCollectionInterface.php | 1 + .../Magento/CatalogInventory/Api/Data/StockStatusInterface.php | 1 + .../CatalogInventory/Api/StockConfigurationInterface.php | 1 + .../Magento/CatalogInventory/Api/StockCriteriaInterface.php | 1 + app/code/Magento/CatalogInventory/Api/StockIndexInterface.php | 1 + .../Magento/CatalogInventory/Api/StockItemCriteriaInterface.php | 1 + .../CatalogInventory/Api/StockItemRepositoryInterface.php | 1 + .../Magento/CatalogInventory/Api/StockManagementInterface.php | 1 + .../Magento/CatalogInventory/Api/StockRegistryInterface.php | 1 + .../Magento/CatalogInventory/Api/StockRepositoryInterface.php | 1 + app/code/Magento/CatalogInventory/Api/StockStateInterface.php | 1 + .../CatalogInventory/Api/StockStatusCriteriaInterface.php | 1 + .../CatalogInventory/Api/StockStatusRepositoryInterface.php | 1 + lib/internal/Magento/Framework/App/Rss/UrlBuilder.php | 1 - 20 files changed, 18 insertions(+), 4 deletions(-) diff --git a/app/code/Magento/Catalog/Block/Adminhtml/Rss/Grid/Link.php b/app/code/Magento/Catalog/Block/Adminhtml/Rss/Grid/Link.php index c630e455bd4c3..aede90bc9eabb 100644 --- a/app/code/Magento/Catalog/Block/Adminhtml/Rss/Grid/Link.php +++ b/app/code/Magento/Catalog/Block/Adminhtml/Rss/Grid/Link.php @@ -7,7 +7,6 @@ /** * Class Link - * @package Magento\Review\Block\Adminhtml\Grid\Rss */ class Link extends \Magento\Framework\View\Element\Template { diff --git a/app/code/Magento/Catalog/Test/Unit/Model/Template/Filter/FactoryTest.php b/app/code/Magento/Catalog/Test/Unit/Model/Template/Filter/FactoryTest.php index ec50e2fcbc476..bc15652c83252 100755 --- a/app/code/Magento/Catalog/Test/Unit/Model/Template/Filter/FactoryTest.php +++ b/app/code/Magento/Catalog/Test/Unit/Model/Template/Filter/FactoryTest.php @@ -13,7 +13,7 @@ class FactoryTest extends \PHPUnit_Framework_TestCase protected $_objectManagerMock; /** - * @var \Magento\Newsletter\Model\Template\Filter\Factory + * @var \Magento\Catalog\Model\Template\Filter\Factory */ protected $_factory; diff --git a/app/code/Magento/CatalogInventory/Api/Data/StockCollectionInterface.php b/app/code/Magento/CatalogInventory/Api/Data/StockCollectionInterface.php index 8f5bdc39025cb..c3f4b5dcc4d01 100644 --- a/app/code/Magento/CatalogInventory/Api/Data/StockCollectionInterface.php +++ b/app/code/Magento/CatalogInventory/Api/Data/StockCollectionInterface.php @@ -13,6 +13,7 @@ /** * Interface StockCollectionInterface + * @api */ interface StockCollectionInterface extends SearchResultsInterface { diff --git a/app/code/Magento/CatalogInventory/Api/Data/StockInterface.php b/app/code/Magento/CatalogInventory/Api/Data/StockInterface.php index 47bd9b85cc321..8908ea0ee96af 100644 --- a/app/code/Magento/CatalogInventory/Api/Data/StockInterface.php +++ b/app/code/Magento/CatalogInventory/Api/Data/StockInterface.php @@ -9,6 +9,7 @@ /** * Interface Stock + * @api */ interface StockInterface extends ExtensibleDataInterface { diff --git a/app/code/Magento/CatalogInventory/Api/Data/StockItemCollectionInterface.php b/app/code/Magento/CatalogInventory/Api/Data/StockItemCollectionInterface.php index fad64f575cc00..bd649dc6f41c3 100644 --- a/app/code/Magento/CatalogInventory/Api/Data/StockItemCollectionInterface.php +++ b/app/code/Magento/CatalogInventory/Api/Data/StockItemCollectionInterface.php @@ -13,7 +13,7 @@ /** * Interface StockItemCollectionInterface - * @package Magento\CatalogInventory\Api\Data + * @api */ interface StockItemCollectionInterface extends SearchResultsInterface { diff --git a/app/code/Magento/CatalogInventory/Api/Data/StockItemInterface.php b/app/code/Magento/CatalogInventory/Api/Data/StockItemInterface.php index 0a620ce1562d5..0c4216fd46a99 100644 --- a/app/code/Magento/CatalogInventory/Api/Data/StockItemInterface.php +++ b/app/code/Magento/CatalogInventory/Api/Data/StockItemInterface.php @@ -9,6 +9,7 @@ /** * Interface StockItem + * @api */ interface StockItemInterface extends ExtensibleDataInterface { diff --git a/app/code/Magento/CatalogInventory/Api/Data/StockStatusCollectionInterface.php b/app/code/Magento/CatalogInventory/Api/Data/StockStatusCollectionInterface.php index c20852455ee36..6f53ba8238eb0 100644 --- a/app/code/Magento/CatalogInventory/Api/Data/StockStatusCollectionInterface.php +++ b/app/code/Magento/CatalogInventory/Api/Data/StockStatusCollectionInterface.php @@ -9,6 +9,7 @@ /** * Stock Status collection interface + * @api */ interface StockStatusCollectionInterface extends SearchResultsInterface { diff --git a/app/code/Magento/CatalogInventory/Api/Data/StockStatusInterface.php b/app/code/Magento/CatalogInventory/Api/Data/StockStatusInterface.php index 3c90ea451776a..f4996ac62ec6b 100644 --- a/app/code/Magento/CatalogInventory/Api/Data/StockStatusInterface.php +++ b/app/code/Magento/CatalogInventory/Api/Data/StockStatusInterface.php @@ -9,6 +9,7 @@ /** * Interface StockStatusInterface + * @api */ interface StockStatusInterface extends ExtensibleDataInterface { diff --git a/app/code/Magento/CatalogInventory/Api/StockConfigurationInterface.php b/app/code/Magento/CatalogInventory/Api/StockConfigurationInterface.php index 5052ea004b256..7b4179c7a7188 100644 --- a/app/code/Magento/CatalogInventory/Api/StockConfigurationInterface.php +++ b/app/code/Magento/CatalogInventory/Api/StockConfigurationInterface.php @@ -7,6 +7,7 @@ /** * Interface StockConfigurationInterface + * @api */ interface StockConfigurationInterface { diff --git a/app/code/Magento/CatalogInventory/Api/StockCriteriaInterface.php b/app/code/Magento/CatalogInventory/Api/StockCriteriaInterface.php index 537db0ce5aff1..15e299f8591c7 100644 --- a/app/code/Magento/CatalogInventory/Api/StockCriteriaInterface.php +++ b/app/code/Magento/CatalogInventory/Api/StockCriteriaInterface.php @@ -7,6 +7,7 @@ /** * Interface StockCriteriaInterface + * @api */ interface StockCriteriaInterface extends \Magento\Framework\Api\CriteriaInterface { diff --git a/app/code/Magento/CatalogInventory/Api/StockIndexInterface.php b/app/code/Magento/CatalogInventory/Api/StockIndexInterface.php index 6edba0a23b537..f57936402f0c9 100644 --- a/app/code/Magento/CatalogInventory/Api/StockIndexInterface.php +++ b/app/code/Magento/CatalogInventory/Api/StockIndexInterface.php @@ -7,6 +7,7 @@ /** * Interface StockIndexInterface + * @api */ interface StockIndexInterface { diff --git a/app/code/Magento/CatalogInventory/Api/StockItemCriteriaInterface.php b/app/code/Magento/CatalogInventory/Api/StockItemCriteriaInterface.php index 878aa26d3c2f7..df76cc37f3153 100644 --- a/app/code/Magento/CatalogInventory/Api/StockItemCriteriaInterface.php +++ b/app/code/Magento/CatalogInventory/Api/StockItemCriteriaInterface.php @@ -7,6 +7,7 @@ /** * Interface StockItemCriteriaInterface + * @api */ interface StockItemCriteriaInterface extends \Magento\Framework\Api\CriteriaInterface { diff --git a/app/code/Magento/CatalogInventory/Api/StockItemRepositoryInterface.php b/app/code/Magento/CatalogInventory/Api/StockItemRepositoryInterface.php index 17a2287692281..97804d7043750 100644 --- a/app/code/Magento/CatalogInventory/Api/StockItemRepositoryInterface.php +++ b/app/code/Magento/CatalogInventory/Api/StockItemRepositoryInterface.php @@ -7,6 +7,7 @@ /** * Interface StockItemRepository + * @api */ interface StockItemRepositoryInterface { diff --git a/app/code/Magento/CatalogInventory/Api/StockManagementInterface.php b/app/code/Magento/CatalogInventory/Api/StockManagementInterface.php index 748ed9b39cfc7..b4cd1008bf5ce 100644 --- a/app/code/Magento/CatalogInventory/Api/StockManagementInterface.php +++ b/app/code/Magento/CatalogInventory/Api/StockManagementInterface.php @@ -7,6 +7,7 @@ /** * Interface StockManagementInterface + * @api */ interface StockManagementInterface { diff --git a/app/code/Magento/CatalogInventory/Api/StockRegistryInterface.php b/app/code/Magento/CatalogInventory/Api/StockRegistryInterface.php index 27f90e740f961..95c848f1865b7 100644 --- a/app/code/Magento/CatalogInventory/Api/StockRegistryInterface.php +++ b/app/code/Magento/CatalogInventory/Api/StockRegistryInterface.php @@ -7,6 +7,7 @@ /** * Interface StockRegistryInterface + * @api */ interface StockRegistryInterface { diff --git a/app/code/Magento/CatalogInventory/Api/StockRepositoryInterface.php b/app/code/Magento/CatalogInventory/Api/StockRepositoryInterface.php index 06f5d2f4e9cf7..28b839c6fedb6 100644 --- a/app/code/Magento/CatalogInventory/Api/StockRepositoryInterface.php +++ b/app/code/Magento/CatalogInventory/Api/StockRepositoryInterface.php @@ -7,6 +7,7 @@ /** * Interface StockRepositoryInterface + * @api */ interface StockRepositoryInterface { diff --git a/app/code/Magento/CatalogInventory/Api/StockStateInterface.php b/app/code/Magento/CatalogInventory/Api/StockStateInterface.php index 490f92644df78..140ccee031bfa 100644 --- a/app/code/Magento/CatalogInventory/Api/StockStateInterface.php +++ b/app/code/Magento/CatalogInventory/Api/StockStateInterface.php @@ -7,6 +7,7 @@ /** * Interface StockStateInterface + * @api */ interface StockStateInterface { diff --git a/app/code/Magento/CatalogInventory/Api/StockStatusCriteriaInterface.php b/app/code/Magento/CatalogInventory/Api/StockStatusCriteriaInterface.php index af80ddd5c5caf..7b5dfafa3116a 100644 --- a/app/code/Magento/CatalogInventory/Api/StockStatusCriteriaInterface.php +++ b/app/code/Magento/CatalogInventory/Api/StockStatusCriteriaInterface.php @@ -7,6 +7,7 @@ /** * Interface StockStatusCriteriaInterface + * @api */ interface StockStatusCriteriaInterface extends \Magento\Framework\Api\CriteriaInterface { diff --git a/app/code/Magento/CatalogInventory/Api/StockStatusRepositoryInterface.php b/app/code/Magento/CatalogInventory/Api/StockStatusRepositoryInterface.php index b531c815ceb55..7a8ac82565413 100644 --- a/app/code/Magento/CatalogInventory/Api/StockStatusRepositoryInterface.php +++ b/app/code/Magento/CatalogInventory/Api/StockStatusRepositoryInterface.php @@ -7,6 +7,7 @@ /** * Interface StockStatusRepositoryInterface + * @api */ interface StockStatusRepositoryInterface { diff --git a/lib/internal/Magento/Framework/App/Rss/UrlBuilder.php b/lib/internal/Magento/Framework/App/Rss/UrlBuilder.php index e70f242262452..77f17864db6d4 100644 --- a/lib/internal/Magento/Framework/App/Rss/UrlBuilder.php +++ b/lib/internal/Magento/Framework/App/Rss/UrlBuilder.php @@ -7,7 +7,6 @@ /** * Class UrlBuilder - * @package Magento\Rss\Model */ class UrlBuilder implements UrlBuilderInterface { From 4f66c20921215b7fe41284de56a8d1fb9bc6726b Mon Sep 17 00:00:00 2001 From: Dale Sikkema Date: Thu, 14 May 2015 10:22:39 -0500 Subject: [PATCH 10/19] MAGETWO-36918: Versions tab is absent after publish CMS page on update --- .../Listing/Column/PageActionsTest.php | 54 +++++++++++++++++++ .../Component/Listing/Column/PageActions.php | 26 +++++---- 2 files changed, 66 insertions(+), 14 deletions(-) create mode 100644 app/code/Magento/Cms/Test/Unit/Ui/Component/Listing/Column/PageActionsTest.php diff --git a/app/code/Magento/Cms/Test/Unit/Ui/Component/Listing/Column/PageActionsTest.php b/app/code/Magento/Cms/Test/Unit/Ui/Component/Listing/Column/PageActionsTest.php new file mode 100644 index 0000000000000..4557c9b50354a --- /dev/null +++ b/app/code/Magento/Cms/Test/Unit/Ui/Component/Listing/Column/PageActionsTest.php @@ -0,0 +1,54 @@ +getMockBuilder('Magento\Framework\UrlInterface') + ->disableOriginalConstructor() + ->getMock(); + $inputUrl = 'href/url/for/edit/action'; + + /** @var \Magento\Cms\Ui\Component\Listing\Column\PageActions $model */ + $model = $objectManager->getObject( + 'Magento\Cms\Ui\Component\Listing\Column\PageActions', + [ + 'urlBuilder' => $urlBuilderMock, + 'url' => $inputUrl + ] + ); + + // Define test input and expectations + $items = [['page_id' => 1]]; + $fullUrl = 'full-url-including-base.com/href/url/for/edit/action'; + $name = 'item_name'; + + $editArray = [ + 'href' => $fullUrl, + 'label' => __('Edit'), + 'hidden' => true + ]; + $expectedItems = [ + [ + 'page_id' => 1, + $name => ['edit' => $editArray] + ] + ]; + + // Configure mocks and object data + $urlBuilderMock->expects($this->once())->method('getUrl')->with($inputUrl, ['page_id' => 1])->willReturn($fullUrl); + $model->setName($name); + // Run test + $this->assertEquals( + $expectedItems, + $model->prepareItems($items) + ); + } +} diff --git a/app/code/Magento/Cms/Ui/Component/Listing/Column/PageActions.php b/app/code/Magento/Cms/Ui/Component/Listing/Column/PageActions.php index 2a8140c0923cf..d5d2190249925 100644 --- a/app/code/Magento/Cms/Ui/Component/Listing/Column/PageActions.php +++ b/app/code/Magento/Cms/Ui/Component/Listing/Column/PageActions.php @@ -16,31 +16,27 @@ */ class PageActions extends Column { - /** - * Url path - */ - const URL_PATH = 'cms/page/edit'; + /** Url path */ + const CMS_URL_PATH = 'cms/page/edit'; - /** - * @var UrlBuilder - */ + /** @var UrlBuilder */ protected $actionUrlBuilder; - /** - * @var UrlInterface - */ + /** @var UrlInterface */ protected $urlBuilder; + /** @var string */ + protected $url; + /** - * Constructor - * * @param ContextInterface $context * @param UiComponentFactory $uiComponentFactory * @param UrlBuilder $actionUrlBuilder * @param UrlInterface $urlBuilder * @param array $components * @param array $data + * @param string $url */ public function __construct( ContextInterface $context, @@ -48,10 +44,12 @@ public function __construct( UrlBuilder $actionUrlBuilder, UrlInterface $urlBuilder, array $components = [], - array $data = [] + array $data = [], + $url = self::CMS_URL_PATH ) { $this->urlBuilder = $urlBuilder; $this->actionUrlBuilder = $actionUrlBuilder; + $this->url = $url; parent::__construct($context, $uiComponentFactory, $components, $data); } @@ -64,7 +62,7 @@ public function prepareItems(array & $items) foreach ($items as & $item) { if (isset($item['page_id'])) { $item[$this->getData('name')]['edit'] = [ - 'href' => $this->urlBuilder->getUrl(static::URL_PATH, ['page_id' => $item['page_id']]), + 'href' => $this->urlBuilder->getUrl($this->url, ['page_id' => $item['page_id']]), 'label' => __('Edit'), 'hidden' => true ]; From b9d0826854a281619c7ce9745d44a3910a299bb8 Mon Sep 17 00:00:00 2001 From: Alex Bomko Date: Thu, 14 May 2015 18:33:46 +0300 Subject: [PATCH 11/19] MAGETWO-36955: Pull request, Nord team sprint 20 - fix tests --- app/code/Magento/Newsletter/Block/Adminhtml/Queue/Preview.php | 2 +- app/code/Magento/Review/Model/Resource/Rating.php | 2 +- .../Magento/Review/Model/Resource/Rating/CollectionTest.php | 1 - lib/internal/Magento/Framework/App/Rss/UrlBuilder.php | 4 ++-- 4 files changed, 4 insertions(+), 5 deletions(-) diff --git a/app/code/Magento/Newsletter/Block/Adminhtml/Queue/Preview.php b/app/code/Magento/Newsletter/Block/Adminhtml/Queue/Preview.php index f8f2ec4c13a70..a03aac30892ad 100644 --- a/app/code/Magento/Newsletter/Block/Adminhtml/Queue/Preview.php +++ b/app/code/Magento/Newsletter/Block/Adminhtml/Queue/Preview.php @@ -33,8 +33,8 @@ class Preview extends \Magento\Newsletter\Block\Adminhtml\Template\Preview public function __construct( \Magento\Backend\Block\Template\Context $context, \Magento\Newsletter\Model\TemplateFactory $templateFactory, - \Magento\Newsletter\Model\QueueFactory $queueFactory, \Magento\Newsletter\Model\SubscriberFactory $subscriberFactory, + \Magento\Newsletter\Model\QueueFactory $queueFactory, array $data = [] ) { $this->_queueFactory = $queueFactory; diff --git a/app/code/Magento/Review/Model/Resource/Rating.php b/app/code/Magento/Review/Model/Resource/Rating.php index b6beedc2b234e..b4013ad861e4a 100644 --- a/app/code/Magento/Review/Model/Resource/Rating.php +++ b/app/code/Magento/Review/Model/Resource/Rating.php @@ -214,7 +214,7 @@ protected function processRatingStores(\Magento\Framework\Model\AbstractModel $o $insert = []; foreach (array_diff_assoc($new, $old) as $storeId => $title) { - $insert[] = ['rating_id' => $ratingId, 'store_id' => (int)$storeId]; + $insert[] = ['rating_id' => $ratingId, 'store_id' => (int)$storeId, 'value' => $title]; } $this->insertRatingData($table, $insert); return $this; diff --git a/dev/tests/integration/testsuite/Magento/Review/Model/Resource/Rating/CollectionTest.php b/dev/tests/integration/testsuite/Magento/Review/Model/Resource/Rating/CollectionTest.php index 85ed6ef1fc958..c50178ea22b1f 100644 --- a/dev/tests/integration/testsuite/Magento/Review/Model/Resource/Rating/CollectionTest.php +++ b/dev/tests/integration/testsuite/Magento/Review/Model/Resource/Rating/CollectionTest.php @@ -51,5 +51,4 @@ public function testSetStoreFilter() { $this->collection->setStoreFilter(1); } - } diff --git a/lib/internal/Magento/Framework/App/Rss/UrlBuilder.php b/lib/internal/Magento/Framework/App/Rss/UrlBuilder.php index 77f17864db6d4..b421b8f608db7 100644 --- a/lib/internal/Magento/Framework/App/Rss/UrlBuilder.php +++ b/lib/internal/Magento/Framework/App/Rss/UrlBuilder.php @@ -11,8 +11,8 @@ class UrlBuilder implements UrlBuilderInterface { /** - * @param array $queryParams - * @return string + * {@inheritdoc} + * @SuppressWarnings(PHPMD.UnusedFormalParameter) */ public function getUrl(array $queryParams = []) { From 03859fd89466120f3eb1c309fcd0f5b37c930ccb Mon Sep 17 00:00:00 2001 From: Alex Bomko Date: Thu, 14 May 2015 19:51:24 +0300 Subject: [PATCH 12/19] MAGETWO-32629: Define Public API - Nord (MX) --- .../Model/Resource/Indexer/Stock/StockInterface.php | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/app/code/Magento/CatalogInventory/Model/Resource/Indexer/Stock/StockInterface.php b/app/code/Magento/CatalogInventory/Model/Resource/Indexer/Stock/StockInterface.php index bbb3df89c8688..860c889637094 100644 --- a/app/code/Magento/CatalogInventory/Model/Resource/Indexer/Stock/StockInterface.php +++ b/app/code/Magento/CatalogInventory/Model/Resource/Indexer/Stock/StockInterface.php @@ -7,8 +7,7 @@ /** * CatalogInventory Stock Indexer Interface - * - * @author Magento Core Team + * @api */ interface StockInterface { From ab6af2041da7fc59ce85858494cc715ae6389958 Mon Sep 17 00:00:00 2001 From: Alex Bomko Date: Fri, 15 May 2015 11:09:01 +0300 Subject: [PATCH 13/19] MAGETWO-36955: Pull request, Nord team sprint 20 - fix tests --- app/code/Magento/Review/Model/Resource/Rating.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/code/Magento/Review/Model/Resource/Rating.php b/app/code/Magento/Review/Model/Resource/Rating.php index b4013ad861e4a..86601a0bb1156 100644 --- a/app/code/Magento/Review/Model/Resource/Rating.php +++ b/app/code/Magento/Review/Model/Resource/Rating.php @@ -213,8 +213,8 @@ protected function processRatingStores(\Magento\Framework\Model\AbstractModel $o $this->deleteRatingData($ratingId, $table, array_diff_assoc($old, $new)); $insert = []; - foreach (array_diff_assoc($new, $old) as $storeId => $title) { - $insert[] = ['rating_id' => $ratingId, 'store_id' => (int)$storeId, 'value' => $title]; + foreach (array_keys(array_diff_assoc($new, $old)) as $storeId) { + $insert[] = ['rating_id' => $ratingId, 'store_id' => (int)$storeId]; } $this->insertRatingData($table, $insert); return $this; From 43128810ed993e72ccb4eb9d8391109dcbd3591d Mon Sep 17 00:00:00 2001 From: Victor Rad Date: Fri, 15 May 2015 11:43:32 +0300 Subject: [PATCH 14/19] MAGETWO-36951: Decrease CRAP of Magento\Review\Model\Resource\Review::aggregate - CR fix --- app/code/Magento/Review/Model/Resource/Review.php | 4 +++- .../Review/_files/customer_review_with_rating.php | 10 +++++----- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/app/code/Magento/Review/Model/Resource/Review.php b/app/code/Magento/Review/Model/Resource/Review.php index 126f9cac5a28f..deae1efd57c13 100644 --- a/app/code/Magento/Review/Model/Resource/Review.php +++ b/app/code/Magento/Review/Model/Resource/Review.php @@ -338,7 +338,8 @@ public function aggregate($object) * Aggregate review summary * * @param \Magento\Framework\Model\AbstractModel $object - * @param $ratingSummaryObject + * @param \Magento\Framework\Data\Collection\Db $ratingSummaryObject + * @return void */ protected function aggregateReviewSummary($object, $ratingSummaryObject) { @@ -381,6 +382,7 @@ protected function aggregateReviewSummary($object, $ratingSummaryObject) * * @param array|bool $oldData * @param \Magento\Framework\Object $data + * @return void */ protected function writeReviewSummary($oldData, \Magento\Framework\Object $data) { diff --git a/dev/tests/integration/testsuite/Magento/Review/_files/customer_review_with_rating.php b/dev/tests/integration/testsuite/Magento/Review/_files/customer_review_with_rating.php index 3c1d16f71350d..89d1f7d95e6fa 100644 --- a/dev/tests/integration/testsuite/Magento/Review/_files/customer_review_with_rating.php +++ b/dev/tests/integration/testsuite/Magento/Review/_files/customer_review_with_rating.php @@ -43,14 +43,14 @@ ->setPageSize(2) ->setCurPage(1); -foreach($ratingCollection as $rating) { +foreach ($ratingCollection as $rating) { $rating->setStores([$storeId])->setIsActive(1)->save(); } -foreach($ratingCollection as $rating) { - $ratingOption = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create( - '\Magento\Review\Model\Rating\Option' - )->getCollection() +foreach ($ratingCollection as $rating) { + $ratingOption = \Magento\TestFramework\Helper\Bootstrap::getObjectManager() + ->create('\Magento\Review\Model\Rating\Option') + ->getCollection() ->setPageSize(1) ->setCurPage(2) ->addRatingFilter($rating->getId()) From 1dcbd545afff6b153555a41402ca0bfe30c58054 Mon Sep 17 00:00:00 2001 From: Victor Rad Date: Fri, 15 May 2015 15:54:21 +0300 Subject: [PATCH 15/19] MAGETWO-36951: Decrease CRAP of Magento\Review\Model\Resource\Review::aggregate - CR fix --- app/code/Magento/Review/Model/Resource/Review.php | 2 +- .../Magento/Review/Model/Resource/Review/ReviewTest.php | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/app/code/Magento/Review/Model/Resource/Review.php b/app/code/Magento/Review/Model/Resource/Review.php index deae1efd57c13..16798e3f8b1e5 100644 --- a/app/code/Magento/Review/Model/Resource/Review.php +++ b/app/code/Magento/Review/Model/Resource/Review.php @@ -338,7 +338,7 @@ public function aggregate($object) * Aggregate review summary * * @param \Magento\Framework\Model\AbstractModel $object - * @param \Magento\Framework\Data\Collection\Db $ratingSummaryObject + * @param \Magento\Review\Model\Rating $ratingSummaryObject * @return void */ protected function aggregateReviewSummary($object, $ratingSummaryObject) diff --git a/dev/tests/integration/testsuite/Magento/Review/Model/Resource/Review/ReviewTest.php b/dev/tests/integration/testsuite/Magento/Review/Model/Resource/Review/ReviewTest.php index 31168c9b72883..7a1216f6717e0 100644 --- a/dev/tests/integration/testsuite/Magento/Review/Model/Resource/Review/ReviewTest.php +++ b/dev/tests/integration/testsuite/Magento/Review/Model/Resource/Review/ReviewTest.php @@ -21,9 +21,9 @@ class ReviewTest extends \PHPUnit_Framework_TestCase protected $reviewResource; /** - * @var \Magento\Review\Model\Review + * @var \Magento\Review\Model\Resource\Review\Collection */ - protected $review; + protected $reviewCollection; /** * @var \Magento\Framework\App\Resource @@ -43,7 +43,7 @@ protected function setUp() $this->objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager(); $this->resource = $this->objectManager->get('Magento\Framework\App\Resource'); $this->adapter = $this->resource->getConnection('core_read'); - $this->review = $this->objectManager->create('Magento\Review\Model\Review'); + $this->reviewCollection = $this->objectManager->create('Magento\Review\Model\Resource\Review\Collection'); $this->reviewResource = $this->objectManager->create('Magento\Review\Model\Resource\Review'); } @@ -52,7 +52,7 @@ protected function setUp() */ public function testAggregate() { - $rating = $this->review->getCollection()->getFirstItem(); + $rating = $this->reviewCollection->getFirstItem(); $this->reviewResource->aggregate($rating); $select = $this->adapter->select()->from($this->resource->getTableName('review_entity_summary')); From 5bf96e4781bdf7ed1f39f2b4a708625f759b9ed0 Mon Sep 17 00:00:00 2001 From: Denys Rudchenko Date: Fri, 15 May 2015 17:45:20 +0300 Subject: [PATCH 16/19] MAGETWO-36955: Pull request, Nord team sprint 20 --- .../Model/Resource/Rating/CollectionTest.php | 5 ++- .../Magento/Review/_files/customer_rating.php | 43 ------------------- .../_files/customer_review_with_rating.php | 6 +++ 3 files changed, 10 insertions(+), 44 deletions(-) delete mode 100644 dev/tests/integration/testsuite/Magento/Review/_files/customer_rating.php diff --git a/dev/tests/integration/testsuite/Magento/Review/Model/Resource/Rating/CollectionTest.php b/dev/tests/integration/testsuite/Magento/Review/Model/Resource/Rating/CollectionTest.php index c50178ea22b1f..d5a9161cb4184 100644 --- a/dev/tests/integration/testsuite/Magento/Review/Model/Resource/Rating/CollectionTest.php +++ b/dev/tests/integration/testsuite/Magento/Review/Model/Resource/Rating/CollectionTest.php @@ -20,7 +20,7 @@ protected function setUp() } /** - * @magentoDataFixture Magento/Review/_files/customer_rating.php + * @magentoDataFixture Magento/Review/_files/customer_review_with_rating.php */ public function testAddEntitySummaryToItem() { @@ -32,6 +32,9 @@ public function testAddEntitySummaryToItem() $this->assertEquals($this->collection, $result); } + /** + * @magentoDbIsolation enabled + */ public function testAddEntitySummaryToItemEmpty() { foreach ($this->collection->getItems() as $item) { diff --git a/dev/tests/integration/testsuite/Magento/Review/_files/customer_rating.php b/dev/tests/integration/testsuite/Magento/Review/_files/customer_rating.php deleted file mode 100644 index cf75322b2e78a..0000000000000 --- a/dev/tests/integration/testsuite/Magento/Review/_files/customer_rating.php +++ /dev/null @@ -1,43 +0,0 @@ -get('Magento\Store\Model\StoreManagerInterface') - ->getStore() - ->getId(); -/** @var \Magento\Review\Model\Rating $ratingModel */ -$ratingModel = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create( - 'Magento\Review\Model\Rating', - ['data' => [ - 'rating_code' => 'test', - 'position' => 0, - 'isActive' => 1 - ]] -); -$ratingModel->setStoreId($storeId) - ->setStores([$storeId]) - ->setEntityId($ratingModel->getEntityIdByCode(Magento\Review\Model\Rating::ENTITY_PRODUCT_CODE)) - ->setRatingCodes(['test']); -$ratingModel->save(); - -/** @var \Magento\Review\Model\Rating\Option $optionModel */ -$optionModel = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create( - 'Magento\Review\Model\Rating\Option' -); -$optionModel->setCode(1) - ->setValue(1) - ->setRatingId($ratingModel->getId()) - ->setPosition(1) - ->setReviewId($review->getId()) - ->setEntityPkValue($product->getId()) - ->save(); -$optionModel->addVote(); - -\Magento\TestFramework\Helper\Bootstrap::getObjectManager()->get('Magento\Framework\Registry')->register( - 'rating_data', - $ratingModel -); diff --git a/dev/tests/integration/testsuite/Magento/Review/_files/customer_review_with_rating.php b/dev/tests/integration/testsuite/Magento/Review/_files/customer_review_with_rating.php index 89d1f7d95e6fa..9de0a3b0a52ae 100644 --- a/dev/tests/integration/testsuite/Magento/Review/_files/customer_review_with_rating.php +++ b/dev/tests/integration/testsuite/Magento/Review/_files/customer_review_with_rating.php @@ -37,6 +37,7 @@ $review ); +/** @var \Magento\Review\Model\Resource\Review\Collection $ratingCollection */ $ratingCollection = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create( '\Magento\Review\Model\Rating' )->getCollection() @@ -58,3 +59,8 @@ $rating->setReviewId($review->getId()) ->addOptionVote($ratingOption->getId(), $product->getId()); } + +\Magento\TestFramework\Helper\Bootstrap::getObjectManager()->get('Magento\Framework\Registry')->register( + 'rating_data', + $ratingCollection->getFirstItem() +); From 084284e9a8887435fa6b925774295db3d63569d9 Mon Sep 17 00:00:00 2001 From: Maksym Savich Date: Fri, 15 May 2015 12:37:10 -0500 Subject: [PATCH 17/19] MAGETWO-36918: Versions tab is absent after publish CMS page on update --- .../Magento/Cms/Ui/Component/Listing/Column/PageActions.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/code/Magento/Cms/Ui/Component/Listing/Column/PageActions.php b/app/code/Magento/Cms/Ui/Component/Listing/Column/PageActions.php index d5d2190249925..9bfd30a04669e 100644 --- a/app/code/Magento/Cms/Ui/Component/Listing/Column/PageActions.php +++ b/app/code/Magento/Cms/Ui/Component/Listing/Column/PageActions.php @@ -26,7 +26,7 @@ class PageActions extends Column protected $urlBuilder; /** @var string */ - protected $url; + private $url; /** From dbb786e235cc07ecbf1c112251d8c856eecdf884 Mon Sep 17 00:00:00 2001 From: Maksym Savich Date: Fri, 15 May 2015 13:07:25 -0500 Subject: [PATCH 18/19] MAGETWO-36918: Versions tab is absent after publish CMS page on update --- .../Unit/Ui/Component/Listing/Column/PageActionsTest.php | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/app/code/Magento/Cms/Test/Unit/Ui/Component/Listing/Column/PageActionsTest.php b/app/code/Magento/Cms/Test/Unit/Ui/Component/Listing/Column/PageActionsTest.php index 4557c9b50354a..aee858d9b334f 100644 --- a/app/code/Magento/Cms/Test/Unit/Ui/Component/Listing/Column/PageActionsTest.php +++ b/app/code/Magento/Cms/Test/Unit/Ui/Component/Listing/Column/PageActionsTest.php @@ -3,6 +3,7 @@ * Copyright © 2015 Magento. All rights reserved. * See COPYING.txt for license details. */ +namespace Magento\Cms\Test\Unit\Model\Ui\Component\Listing\Column; class PageActionsTest extends \PHPUnit_Framework_TestCase { @@ -43,7 +44,11 @@ public function testPrepareItemsByPageId() ]; // Configure mocks and object data - $urlBuilderMock->expects($this->once())->method('getUrl')->with($inputUrl, ['page_id' => 1])->willReturn($fullUrl); + $urlBuilderMock->expects($this->once()) + ->method('getUrl') + ->with($inputUrl, ['page_id' => 1]) + ->willReturn($fullUrl); + $model->setName($name); // Run test $this->assertEquals( From fa1dcde9218de7f956f95805279bf4286a8091f4 Mon Sep 17 00:00:00 2001 From: Maksym Savich Date: Fri, 15 May 2015 13:48:31 -0500 Subject: [PATCH 19/19] MAGETWO-36918: Versions tab is absent after publish CMS page on update --- .../Test/Unit/Ui/Component/Listing/Column/PageActionsTest.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/code/Magento/Cms/Test/Unit/Ui/Component/Listing/Column/PageActionsTest.php b/app/code/Magento/Cms/Test/Unit/Ui/Component/Listing/Column/PageActionsTest.php index aee858d9b334f..3e1c5cd675948 100644 --- a/app/code/Magento/Cms/Test/Unit/Ui/Component/Listing/Column/PageActionsTest.php +++ b/app/code/Magento/Cms/Test/Unit/Ui/Component/Listing/Column/PageActionsTest.php @@ -3,7 +3,7 @@ * Copyright © 2015 Magento. All rights reserved. * See COPYING.txt for license details. */ -namespace Magento\Cms\Test\Unit\Model\Ui\Component\Listing\Column; +namespace Magento\Cms\Test\Unit\Ui\Component\Listing\Column; class PageActionsTest extends \PHPUnit_Framework_TestCase {