/**
  * Test modification.
  */
 public function testModify()
 {
     $expectedCategory1 = new CategoryDocument();
     $expectedCategory1->setId('fada9485f003c731b7fad08b873214e0');
     $expectedCategory1->setActive(true);
     $expectedCategory1->setHidden(true);
     $expectedCategory1->setLeft(4);
     $expectedCategory1->setRight(5);
     $expectedCategory1->setParentId('fad2d80baf7aca6ac54e819e066f24aa');
     $expectedCategory1->setRootId('30e44ab83fdee7564.23264141');
     $expectedCategory1->setSort(3010101);
     $expectedCategory1->setTitle('BestCategory');
     $expectedCategory1->setDescription('Description 1');
     $attribute = new AttributeObject();
     $attribute->setPos(9999);
     $attribute->setTitle('testAttribute');
     $expectedCategory1->setAttributes([$attribute]);
     $url = new UrlNested();
     $url->setUrl('Test/Category/1');
     $expectedCategory1->setUrls(new \ArrayIterator([$url]));
     $expectedCategory1->setExpiredUrls([]);
     $expectedCategory2 = new CategoryDocument();
     $expectedCategory2->setId('0f41a4463b227c437f6e6bf57b1697c4');
     $expectedCategory2->setActive(false);
     $expectedCategory2->setHidden(false);
     $expectedCategory2->setLeft(6);
     $expectedCategory2->setRight(7);
     $expectedCategory2->setParentId('fada9485f003c731b7fad08b873214e0');
     $expectedCategory2->setRootId('943a9ba3050e78b443c16e043ae60ef3');
     $expectedCategory2->setSort(103);
     $expectedCategory2->setTitle('Trapeze');
     $expectedCategory2->setDescription('Description 2');
     $expectedCategory2->setAttributes([]);
     $url = new UrlNested();
     $url->setUrl('Test/Category/2');
     $expectedCategory2->setUrls(new \ArrayIterator([$url]));
     $expectedCategory2->setExpiredUrls([]);
     $expectedCategories = [$expectedCategory1, $expectedCategory2];
     /** @var Category[] $categoryItems */
     $categoryItems = $this->getTestElements(['fada9485f003c731b7fad08b873214e0', '0f41a4463b227c437f6e6bf57b1697c4'], 'ONGROXIDConnectorBundleTest:Category');
     $this->assertCount(2, $categoryItems);
     // Test if we have the correct attribute.
     /** @var CategoryToAttribute[] $categoryToAttribute */
     $categoryToAttribute = $categoryItems[0]->getAttributes();
     $this->assertEquals($attribute->getTitle(), $categoryToAttribute[0]->getAttribute()->getTitle());
     $seoFinder = new SeoFinder();
     $seoFinder->setEntityManager($this->getEntityManager());
     $seoFinder->setShopId(0);
     $seoFinder->setRepository('ONGROXIDConnectorBundleTest:Seo');
     $modifier = new CategoryModifier(new AttributesToDocumentsService());
     $modifier->setSeoFinderService($seoFinder);
     /** @var ItemPipelineEvent|\PHPUnit_Framework_MockObject_MockObject $event */
     $event = $this->getMock('ONGR\\ConnectionsBundle\\Pipeline\\Event\\ItemPipelineEvent', [], [], '', false);
     foreach ($expectedCategories as $key => $expectedCategory) {
         $actualCategory = new CategoryDocument();
         $modifier->modify(new ImportItem($categoryItems[$key], $actualCategory), $event);
         $this->assertEquals($expectedCategory, $actualCategory);
     }
 }
 /**
  * Test for modify().
  */
 public function testModify()
 {
     /** @var Category $root */
     $root = $this->getMockForAbstractClass('ONGR\\OXIDConnectorBundle\\Entity\\Category');
     $root->setId('testIdRoot');
     /** @var Category $category */
     $category = $this->getMockForAbstractClass('ONGR\\OXIDConnectorBundle\\Entity\\Category');
     // Attribute to be added to Category.
     $attribute = new Attribute();
     $attribute->setId(123);
     $attribute->setPos(1);
     $attribute->setTitle('testAttributeTitle');
     $catToAttr = new CategoryToAttribute();
     $catToAttr->setId(321);
     $catToAttr->setSort(1);
     $catToAttr->setCategory($category);
     $catToAttr->setAttribute($attribute);
     $category->setId('testId')->setActive(true)->setHidden(false)->setTitle('testTitle')->setDesc('testDescription')->setLongDesc('testLongDescription')->setSort(3)->setRoot($root)->setRight(501)->setLeft(102)->addAttribute($catToAttr);
     /** @var CategoryDocument $expectedDocument */
     $expectedDocument = new CategoryDocument();
     $expectedDocument->setId('testId');
     $expectedDocument->setActive(true);
     $expectedDocument->setHidden(false);
     $expectedDocument->setTitle('testTitle');
     $expectedDocument->setDescription('testDescription');
     $expectedDocument->setLongDescription('testLongDescription');
     $expectedDocument->setSort(3);
     $expectedDocument->setRootId('testIdRoot');
     $expectedDocument->setParentId('oxrootid');
     $expectedDocument->setLeft(102);
     $expectedDocument->setRight(501);
     $expectedDocument->setUrls(new \ArrayIterator());
     $expectedDocument->setExpiredUrls([]);
     $attrObj = new AttributeObject();
     $attrObj->setPos(1);
     $attrObj->setTitle('testAttributeTitle');
     $expectedDocument->setAttributes([$attrObj]);
     $document = new CategoryDocument();
     /** @var ItemPipelineEvent|\PHPUnit_Framework_MockObject_MockObject $event */
     $event = $this->getMock('ONGR\\ConnectionsBundle\\Pipeline\\Event\\ItemPipelineEvent', [], [], '', false);
     $this->modifier->modify(new ImportItem($category, $document), $event);
     $this->assertEquals($expectedDocument, $document);
 }
 /**
  * Test category modifier listener.
  */
 public function testCategoryListener()
 {
     $category = $this->getMock('\\ONGR\\OXIDConnectorBundle\\Tests\\Functional\\Entity\\Category');
     $category->expects($this->exactly(2))->method('getId')->willReturnOnConsecutiveCalls($this->returnValue(432), $this->returnValue(234));
     $this->mockExpectsMethods($this->catEntity, [['getId', 1, 123], ['isActive', 1, true], ['isHidden', 1, false], ['getLeft', 1, 12], ['getRight', 1, 17], ['getRoot', 1, $category], ['getSort', 1, 12], ['getTitle', 1, 'testTitle'], ['getDesc', 1, 'testDescription'], ['getLongDesc', 1, 'testLongDescription'], ['getAttributes', 1, [1, 2, 3]], ['getParent', 1, $category]]);
     $this->mockExpectsMethods($this->catDocument, [['setId', 1, null, 123], ['setActive', 1, null, true], ['setHidden', 1, null, false], ['setLeft', 1, null, 12], ['setRight', 1, null, 17], ['setRootId', 1, null, 432], ['setSort', 1, null, 12], ['setTitle', 1, null, 'testTitle'], ['setDescription', 1, null, 'testDescription'], ['setLongDescription', 1, null, 'testLongDescription'], ['setAttributes', 1, null, [11, 22, 33]], ['setParentId', 1, null, 234]]);
     /** @var ImportItem|MockObject $importItem */
     $importItem = $this->getMockBuilder('ONGR\\ConnectionsBundle\\Pipeline\\Item\\ImportItem')->disableOriginalConstructor()->getMock();
     $importItem->expects($this->once())->method('getEntity')->will($this->returnValue($this->catEntity));
     $importItem->expects($this->once())->method('getDocument')->will($this->returnValue($this->catDocument));
     /** @var ItemPipelineEvent|MockObject $itemPipelineEvent */
     $itemPipelineEvent = $this->getMockBuilder('\\ONGR\\ConnectionsBundle\\Pipeline\\Event\\ItemPipelineEvent')->disableOriginalConstructor()->getMock();
     $itemPipelineEvent->expects($this->once())->method('getItem')->will($this->returnValue($importItem));
     $this->attrToDocService->expects($this->once())->method('transform')->with([1, 2, 3])->will($this->returnValue([11, 22, 33]));
     $this->catModifierListener->onModify($itemPipelineEvent);
 }