protected function setUp() { $objectManager = new ObjectManager($this); $this->categoryInfoMetadata = $this->getMockBuilder('Magento\\Catalog\\Service\\V1\\Data\\Eav\\Category\\Info\\Metadata')->disableOriginalConstructor()->getMock(); $this->categoryBuilder = $this->getMockBuilder('Magento\\Catalog\\Service\\V1\\Data\\Eav\\Category\\Info\\MetadataBuilder')->setMethods(['create', 'populateWithArray'])->disableOriginalConstructor()->getMock(); $this->categoryBuilder->expects($this->any())->method('create')->will($this->returnValue($this->categoryInfoMetadata)); $this->category = $this->getMockBuilder('Magento\\Catalog\\Model\\Category')->setMethods(['getData', 'getId', 'load', '__wakeup', 'getProductsPosition', 'getProductCollection'])->disableOriginalConstructor()->getMock(); /** @var \Magento\Catalog\Model\CategoryFactory|\PHPUnit_Framework_MockObject_MockObject $categoryFactory */ $categoryFactory = $this->getMockBuilder('Magento\\Catalog\\Model\\CategoryFactory')->setMethods(['create'])->disableOriginalConstructor()->getMock(); $categoryFactory->expects($this->any())->method('create')->will($this->returnValue($this->category)); $this->converter = $this->getMockBuilder('Magento\\Catalog\\Service\\V1\\Data\\Eav\\Category\\Info\\Converter')->setMethods(['createDataFromModel'])->disableOriginalConstructor()->getMock(); $this->converterFactory = $this->getMockBuilder('Magento\\Catalog\\Service\\V1\\Data\\Eav\\Category\\Info\\ConverterFactory')->setMethods(['create'])->disableOriginalConstructor()->getMock(); $this->converterFactory->expects($this->any())->method('create')->will($this->returnValue($this->converter)); $this->converter->expects($this->any())->method('createDataFromModel')->with($this->identicalTo($this->category))->will($this->returnValue($this->categoryInfoMetadata)); $this->model = $objectManager->getObject('Magento\\Catalog\\Service\\V1\\Category\\ReadService', ['categoryFactory' => $categoryFactory, 'builder' => $this->categoryBuilder, 'converterFactory' => $this->converterFactory]); }
/** * @param Category $category * @return Metadata */ public function createDataFromModel(Category $category) { $builder = $this->builder->populateWithArray($category->getData())->setCategoryId($category->getId())->setActive($category->getIsActive())->setChildren($category->getAllChildren(true)); return $builder->create(); }