Exemple #1
0
 /**
  * @depends testCloneFeatureCombination
  * @param ProductCloneEvent $event
  * @return ProductCloneEvent
  */
 public function testCloneAssociatedContent(ProductCloneEvent $event)
 {
     // Call function to test
     $action = new Product();
     $action->cloneAssociatedContent($event);
     // Get products' associated contents
     $originalProductAssocConts = ProductAssociatedContentQuery::create()->findByProductId($event->getOriginalProduct()->getId());
     $cloneProductAssocConts = ProductAssociatedContentQuery::create()->filterByProductId($event->getClonedProduct()->getId())->count();
     $this->assertEquals(count($originalProductAssocConts), $cloneProductAssocConts, 'There must be the same quantity of associated contents');
     // Check clone product's associated contents
     foreach ($originalProductAssocConts as $originalProductAssocCont) {
         $cloneProductAssocCont = ProductAssociatedContentQuery::create()->filterByProductId($event->getClonedProduct()->getId())->filterByPosition($originalProductAssocCont->getPosition())->findOneByContentId($originalProductAssocCont->getContentId());
         $this->assertInstanceOf('Thelia\\Model\\ProductAssociatedContent', $cloneProductAssocCont, 'Instance of clone product associated content must be Thelia\\Model\\ProductAssociatedContent');
         $this->assertEquals($event->getClonedProduct()->getId(), $cloneProductAssocCont->getProductId(), 'ProductID must be equal');
         $this->assertEquals($originalProductAssocCont->getContentId(), $cloneProductAssocCont->getContentId(), 'ContentID must be equal');
         $this->assertEquals($originalProductAssocCont->getPosition(), $cloneProductAssocCont->getPosition(), 'Position must be equal');
     }
     return $event;
 }
 /**
  * @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;
 }
Exemple #3
0
 /**
  * @depends testSetProductTemplate
  */
 public function testDelete(ProductModel $product)
 {
     $event = new ProductDeleteEvent($product->getId());
     $event->setDispatcher($this->getDispatcher());
     $action = new Product();
     $action->delete($event);
     $deletedProduct = $event->getProduct();
     $this->assertInstanceOf('Thelia\\Model\\Product', $deletedProduct, 'deleted product must be an instance of Thelia\\Model\\Product');
     $this->assertTrue($deletedProduct->isDeleted());
 }