From abd634bb2dd1fb5cf807c37882f053610e4eb1be Mon Sep 17 00:00:00 2001 From: Igor Melnikov <imelnikov@magento.com> Date: Wed, 28 Dec 2016 13:28:17 -0600 Subject: [PATCH] MAGETWO-62134: Create data converter that can process nested serialized data Resolving code review feedback --- .../Sales/Order/Pdf/Items/Creditmemo.php | 15 +++++++++++--- .../Model/Sales/Order/Pdf/Items/Invoice.php | 20 +++++++++++++------ .../Model/Sales/Order/Pdf/Items/Shipment.php | 15 +++++++++++--- .../Order/Pdf/Items/AbstractItemsTest.php | 13 ++++++------ 4 files changed, 44 insertions(+), 19 deletions(-) diff --git a/app/code/Magento/Bundle/Model/Sales/Order/Pdf/Items/Creditmemo.php b/app/code/Magento/Bundle/Model/Sales/Order/Pdf/Items/Creditmemo.php index 2ac6e484bb5..c6f643b5afb 100644 --- a/app/code/Magento/Bundle/Model/Sales/Order/Pdf/Items/Creditmemo.php +++ b/app/code/Magento/Bundle/Model/Sales/Order/Pdf/Items/Creditmemo.php @@ -5,8 +5,11 @@ */ namespace Magento\Bundle\Model\Sales\Order\Pdf\Items; +use Magento\Framework\App\ObjectManager; +use Magento\Framework\Serialize\Serializer\Json; + /** - * Sales Order Creditmemo Pdf default items renderer + * Order creditmemo pdf default items renderer */ class Creditmemo extends AbstractItems { @@ -18,6 +21,8 @@ class Creditmemo extends AbstractItems protected $string; /** + * Constructor + * * @param \Magento\Framework\Model\Context $context * @param \Magento\Framework\Registry $registry * @param \Magento\Tax\Helper\Data $taxData @@ -27,6 +32,7 @@ class Creditmemo extends AbstractItems * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data + * @param \Magento\Framework\Serialize\Serializer\Json|null $serializer */ public function __construct( \Magento\Framework\Model\Context $context, @@ -37,9 +43,11 @@ class Creditmemo extends AbstractItems \Magento\Framework\Stdlib\StringUtils $string, \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, - array $data = [] + array $data = [], + Json $serializer = null ) { $this->string = $string; + $serializer = $serializer ?: ObjectManager::getInstance()->get(Json::class); parent::__construct( $context, $registry, @@ -48,7 +56,8 @@ class Creditmemo extends AbstractItems $filterManager, $resource, $resourceCollection, - $data + $data, + $serializer ); } diff --git a/app/code/Magento/Bundle/Model/Sales/Order/Pdf/Items/Invoice.php b/app/code/Magento/Bundle/Model/Sales/Order/Pdf/Items/Invoice.php index 9b5d0b4a9c0..89c84c623aa 100644 --- a/app/code/Magento/Bundle/Model/Sales/Order/Pdf/Items/Invoice.php +++ b/app/code/Magento/Bundle/Model/Sales/Order/Pdf/Items/Invoice.php @@ -3,13 +3,15 @@ * Copyright © 2016 Magento. All rights reserved. * See COPYING.txt for license details. */ - -// @codingStandardsIgnoreFile - namespace Magento\Bundle\Model\Sales\Order\Pdf\Items; +use Magento\Framework\App\ObjectManager; +use Magento\Framework\Serialize\Serializer\Json; + /** - * Sales Order Invoice Pdf default items renderer + * Order invoice pdf default items renderer + * + * @codingStandardsIgnoreFile */ class Invoice extends AbstractItems { @@ -19,6 +21,8 @@ class Invoice extends AbstractItems protected $string; /** + * Constructor + * * @param \Magento\Framework\Model\Context $context * @param \Magento\Framework\Registry $registry * @param \Magento\Tax\Helper\Data $taxData @@ -28,6 +32,7 @@ class Invoice extends AbstractItems * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data + * @param \Magento\Framework\Serialize\Serializer\Json|null $serializer */ public function __construct( \Magento\Framework\Model\Context $context, @@ -38,8 +43,10 @@ class Invoice extends AbstractItems \Magento\Framework\Stdlib\StringUtils $coreString, \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, - array $data = [] + array $data = [], + Json $serializer = null ) { + $serializer = $serializer ?: ObjectManager::getInstance()->get(Json::class); $this->string = $coreString; parent::__construct( $context, @@ -49,7 +56,8 @@ class Invoice extends AbstractItems $filterManager, $resource, $resourceCollection, - $data + $data, + $serializer ); } diff --git a/app/code/Magento/Bundle/Model/Sales/Order/Pdf/Items/Shipment.php b/app/code/Magento/Bundle/Model/Sales/Order/Pdf/Items/Shipment.php index fec75878c30..17aaadaf7f9 100644 --- a/app/code/Magento/Bundle/Model/Sales/Order/Pdf/Items/Shipment.php +++ b/app/code/Magento/Bundle/Model/Sales/Order/Pdf/Items/Shipment.php @@ -5,8 +5,11 @@ */ namespace Magento\Bundle\Model\Sales\Order\Pdf\Items; +use Magento\Framework\App\ObjectManager; +use Magento\Framework\Serialize\Serializer\Json; + /** - * Sales Order Shipment Pdf items renderer + * Order shipment pdf items renderer */ class Shipment extends AbstractItems { @@ -16,6 +19,8 @@ class Shipment extends AbstractItems protected $string; /** + * Constructor + * * @param \Magento\Framework\Model\Context $context * @param \Magento\Framework\Registry $registry * @param \Magento\Tax\Helper\Data $taxData @@ -25,6 +30,7 @@ class Shipment extends AbstractItems * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data + * @param \Magento\Framework\Serialize\Serializer\Json|null $serializer */ public function __construct( \Magento\Framework\Model\Context $context, @@ -35,9 +41,11 @@ class Shipment extends AbstractItems \Magento\Framework\Stdlib\StringUtils $string, \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, - array $data = [] + array $data = [], + Json $serializer = null ) { $this->string = $string; + $serializer = $serializer ?: ObjectManager::getInstance()->get(Json::class); parent::__construct( $context, $registry, @@ -46,7 +54,8 @@ class Shipment extends AbstractItems $filterManager, $resource, $resourceCollection, - $data + $data, + $serializer ); } diff --git a/app/code/Magento/Bundle/Test/Unit/Model/Sales/Order/Pdf/Items/AbstractItemsTest.php b/app/code/Magento/Bundle/Test/Unit/Model/Sales/Order/Pdf/Items/AbstractItemsTest.php index 9038b070f58..b74deab061f 100644 --- a/app/code/Magento/Bundle/Test/Unit/Model/Sales/Order/Pdf/Items/AbstractItemsTest.php +++ b/app/code/Magento/Bundle/Test/Unit/Model/Sales/Order/Pdf/Items/AbstractItemsTest.php @@ -27,14 +27,13 @@ class AbstractItemsTest extends \PHPUnit_Framework_TestCase ); $objectManager = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this); - $this->model = $objectManager->getObject(\Magento\Bundle\Model\Sales\Order\Pdf\Items\Shipment::class); - $this->serializer = $this->getMock(\Magento\Framework\Serialize\Serializer\Json::class); - $reflection = new \ReflectionClass(\Magento\Bundle\Model\Sales\Order\Pdf\Items\AbstractItems::class); - $reflectionProperty = $reflection->getProperty('serializer'); - $reflectionProperty->setAccessible(true); - $reflectionProperty->setValue($this->model, $this->serializer); - + $this->model = $objectManager->getObject( + \Magento\Bundle\Model\Sales\Order\Pdf\Items\Shipment::class, + [ + 'serializer' => $this->serializer + ] + ); } /** -- GitLab