From dfdc20b5562e6aaf7a5cd2638e8af2bf6b1b79a2 Mon Sep 17 00:00:00 2001
From: Igor Melnikov <imelnikov@magento.com>
Date: Tue, 1 Nov 2016 17:26:44 -0500
Subject: [PATCH] MAGETWO-60357: Extra parameter passed to parent constructor
 in \Magento\Indexer\Model\Config\Data::__construct

Reverting commit 67918750a813ebfce65faf6c3d2ea0d939e2da6b
---
 .../Magento/Indexer/Model/Config/Data.php     | 22 ++--------
 .../Test/Unit/Model/Config/DataTest.php       | 43 +++----------------
 2 files changed, 10 insertions(+), 55 deletions(-)

diff --git a/app/code/Magento/Indexer/Model/Config/Data.php b/app/code/Magento/Indexer/Model/Config/Data.php
index 7fdd3b326d5..703c875d1ef 100644
--- a/app/code/Magento/Indexer/Model/Config/Data.php
+++ b/app/code/Magento/Indexer/Model/Config/Data.php
@@ -6,7 +6,6 @@
 namespace Magento\Indexer\Model\Config;
 
 use Magento\Framework\Serialize\SerializerInterface;
-use Magento\Framework\Serialize\Serializer\Serialize;
 
 class Data extends \Magento\Framework\Config\Data
 {
@@ -22,18 +21,20 @@ class Data extends \Magento\Framework\Config\Data
      * @param \Magento\Framework\Config\CacheInterface $cache
      * @param \Magento\Indexer\Model\ResourceModel\Indexer\State\Collection $stateCollection
      * @param string $cacheId
+     * @param SerializerInterface|null $serializer
      */
     public function __construct(
         \Magento\Framework\Indexer\Config\Reader $reader,
         \Magento\Framework\Config\CacheInterface $cache,
         \Magento\Indexer\Model\ResourceModel\Indexer\State\Collection $stateCollection,
-        $cacheId = 'indexer_config'
+        $cacheId = 'indexer_config',
+        SerializerInterface $serializer = null
     ) {
         $this->stateCollection = $stateCollection;
 
         $isCacheExists = $cache->test($cacheId);
 
-        parent::__construct($reader, $cache, $cacheId);
+        parent::__construct($reader, $cache, $cacheId, $serializer);
 
         if (!$isCacheExists) {
             $this->deleteNonexistentStates();
@@ -54,19 +55,4 @@ class Data extends \Magento\Framework\Config\Data
             }
         }
     }
-
-    /**
-     * Get serializer
-     *
-     * @return SerializerInterface
-     * @deprecated
-     */
-    protected function getSerializer()
-    {
-        if ($this->serializer === null) {
-            $this->serializer = \Magento\Framework\App\ObjectManager::getInstance()
-                ->get(Serialize::class);
-        }
-        return $this->serializer;
-    }
 }
diff --git a/app/code/Magento/Indexer/Test/Unit/Model/Config/DataTest.php b/app/code/Magento/Indexer/Test/Unit/Model/Config/DataTest.php
index fe66da6366e..e16c21b8f11 100644
--- a/app/code/Magento/Indexer/Test/Unit/Model/Config/DataTest.php
+++ b/app/code/Magento/Indexer/Test/Unit/Model/Config/DataTest.php
@@ -5,9 +5,6 @@
  */
 namespace Magento\Indexer\Test\Unit\Model\Config;
 
-use Magento\Framework\Serialize\SerializerInterface;
-use Magento\Framework\Serialize\Serializer\Serialize;
-
 class DataTest extends \PHPUnit_Framework_TestCase
 {
     /**
@@ -41,7 +38,7 @@ class DataTest extends \PHPUnit_Framework_TestCase
     protected $indexers = ['indexer1' => [], 'indexer3' => []];
 
     /**
-     * @var SerializerInterface|\PHPUnit_Framework_MockObject_MockObject
+     * @var \Magento\Framework\Serialize\SerializerInterface|\PHPUnit_Framework_MockObject_MockObject
      */
     private $serializerMock;
 
@@ -64,14 +61,7 @@ class DataTest extends \PHPUnit_Framework_TestCase
             '',
             false
         );
-        $this->serializerMock = $this->getMock(SerializerInterface::class);
-    }
-
-    protected function tearDown()
-    {
-        $reflectionProperty = new \ReflectionProperty(\Magento\Framework\App\ObjectManager::class, '_instance');
-        $reflectionProperty->setAccessible(true);
-        $reflectionProperty->setValue(null);
+        $this->serializerMock = $this->getMock(\Magento\Framework\Serialize\SerializerInterface::class);
     }
 
     public function testConstructorWithCache()
@@ -90,13 +80,12 @@ class DataTest extends \PHPUnit_Framework_TestCase
 
         $this->stateCollection->expects($this->never())->method('getItems');
 
-        $this->mockObjectManager([Serialize::class => $this->serializerMock]);
-
         $this->model = new \Magento\Indexer\Model\Config\Data(
             $this->reader,
             $this->cache,
             $this->stateCollection,
-            $this->cacheId
+            $this->cacheId,
+            $this->serializerMock
         );
     }
 
@@ -131,32 +120,12 @@ class DataTest extends \PHPUnit_Framework_TestCase
 
         $this->stateCollection->expects($this->once())->method('getItems')->will($this->returnValue($states));
 
-        $this->mockObjectManager([Serialize::class => $this->serializerMock]);
-
         $this->model = new \Magento\Indexer\Model\Config\Data(
             $this->reader,
             $this->cache,
             $this->stateCollection,
-            $this->cacheId
+            $this->cacheId,
+            $this->serializerMock
         );
     }
-
-    /**
-     * Mock application object manager to return configured dependencies
-     *
-     * @param array $dependencies
-     * @return void
-     */
-    private function mockObjectManager($dependencies)
-    {
-        $dependencyMap = [];
-        foreach ($dependencies as $type => $instance) {
-            $dependencyMap[] = [$type, $instance];
-        }
-        $objectManagerMock = $this->getMock(\Magento\Framework\ObjectManagerInterface::class);
-        $objectManagerMock->expects($this->any())
-            ->method('get')
-            ->will($this->returnValueMap($dependencyMap));
-        \Magento\Framework\App\ObjectManager::setInstance($objectManagerMock);
-    }
 }
-- 
GitLab