Example #1
0
 /**
  * @depends testCloneAssociatedContent
  * @param ProductCloneEvent $event
  * @return ProductCloneEvent
  */
 public function testCloneAccessories(ProductCloneEvent $event)
 {
     // Call function to test
     $action = new Product();
     $action->cloneAccessories($event);
     // Get products' associated contents
     $originalProductAccessoryList = AccessoryQuery::create()->findByProductId($event->getOriginalProduct()->getId());
     $cloneProductAccessoryList = AccessoryQuery::create()->filterByProductId($event->getClonedProduct()->getId())->count();
     $this->assertEquals(count($originalProductAccessoryList), $cloneProductAccessoryList, 'There must be the same quantity of accessories');
     // Check clone product's accessories
     foreach ($originalProductAccessoryList as $originalProductAccessory) {
         $cloneProductAccessory = AccessoryQuery::create()->filterByProductId($event->getClonedProduct()->getId())->filterByPosition($originalProductAccessory->getPosition())->findOneByAccessory($originalProductAccessory->getAccessory());
         $this->assertInstanceOf('Thelia\\Model\\Accessory', $cloneProductAccessory, 'Instance of clone product accessory must be Thelia\\Model\\Accessory');
         $this->assertEquals($event->getClonedProduct()->getId(), $cloneProductAccessory->getProductId(), 'ProductID must be equal');
         $this->assertEquals($originalProductAccessory->getAccessory(), $cloneProductAccessory->getAccessory(), 'Accessory must be equal');
         $this->assertEquals($originalProductAccessory->getPosition(), $cloneProductAccessory->getPosition(), 'Position must be equal');
     }
     return $event;
 }