[], 'indexer3' => []]; /** * @var \Magento\Framework\Serialize\SerializerInterface|\PHPUnit_Framework_MockObject_MockObject */ private $serializerMock; protected function setUp() { $this->reader = $this->createPartialMock(\Magento\Framework\Indexer\Config\Reader::class, ['read']); $this->cache = $this->getMockForAbstractClass( \Magento\Framework\Config\CacheInterface::class, [], '', false, false, true, ['test', 'load', 'save'] ); $this->stateCollection = $this->createPartialMock( \Magento\Indexer\Model\ResourceModel\Indexer\State\Collection::class, ['getItems'] ); $this->serializerMock = $this->createMock(\Magento\Framework\Serialize\SerializerInterface::class); } public function testConstructorWithCache() { $serializedData = 'serialized data'; $this->cache->expects($this->once())->method('test')->with($this->cacheId)->will($this->returnValue(true)); $this->cache->expects($this->once()) ->method('load') ->with($this->cacheId) ->willReturn($serializedData); $this->serializerMock->expects($this->once()) ->method('unserialize') ->with($serializedData) ->willReturn($this->indexers); $this->stateCollection->expects($this->never())->method('getItems'); $this->model = new \Magento\Indexer\Model\Config\Data( $this->reader, $this->cache, $this->stateCollection, $this->cacheId, $this->serializerMock ); } public function testConstructorWithoutCache() { $this->cache->expects($this->once())->method('test')->with($this->cacheId)->will($this->returnValue(false)); $this->cache->expects($this->once())->method('load')->with($this->cacheId)->will($this->returnValue(false)); $this->reader->expects($this->once())->method('read')->will($this->returnValue($this->indexers)); $stateExistent = $this->createPartialMock( \Magento\Indexer\Model\Indexer\State::class, ['getIndexerId', '__wakeup', 'delete'] ); $stateExistent->expects($this->once())->method('getIndexerId')->will($this->returnValue('indexer1')); $stateExistent->expects($this->never())->method('delete'); $stateNonexistent = $this->createPartialMock( \Magento\Indexer\Model\Indexer\State::class, ['getIndexerId', '__wakeup', 'delete'] ); $stateNonexistent->expects($this->once())->method('getIndexerId')->will($this->returnValue('indexer2')); $stateNonexistent->expects($this->once())->method('delete'); $states = [$stateExistent, $stateNonexistent]; $this->stateCollection->expects($this->once())->method('getItems')->will($this->returnValue($states)); $this->model = new \Magento\Indexer\Model\Config\Data( $this->reader, $this->cache, $this->stateCollection, $this->cacheId, $this->serializerMock ); } }