Esempio n. 1
0
 public function createOrUpdate(MetaDataCreateOrUpdateEvent $event)
 {
     $metaData = MetaDataQuery::create()->filterByMetaKey($event->getMetaKey())->filterByElementKey($event->getElementKey())->filterByElementId($event->getElementId())->findOne();
     if (null === $metaData) {
         $metaData = new MetaDataModel();
         $metaData->setMetaKey($event->getMetaKey())->setElementKey($event->getElementkey())->setElementId($event->getElementId());
     }
     $metaData->setValue($event->getValue());
     $metaData->save();
     $event->setMetaData($metaData);
 }
Esempio n. 2
0
 /**
  * @params Product $product
  *
  * @depends testRead
  */
 public function testUpdate(Product $product)
 {
     $metaData = MetaDataQuery::create()->filterByMetaKey('test')->filterByElementKey(get_class($product))->filterByElementId($product->getId())->findOne();
     $this->assertNotNull($metaData);
     $event = new MetaDataCreateOrUpdateEvent();
     $event->setMetaKey($metaData->getMetaKey())->setElementKey($metaData->getElementKey())->setElementId($metaData->getElementId())->setValue(array("fr_FR" => "bonjour", "en_US" => "Hello"))->setDispatcher($this->dispatcher);
     $action = new MetaData();
     $action->createOrUpdate($event);
     $updated = $event->getMetaData();
     $this->assertInstanceOf('Thelia\\Model\\MetaData', $updated);
     $this->assertFalse($updated->isNew());
     $this->assertEquals('test', $updated->getMetaKey());
     $this->assertEquals(get_class($product), $updated->getElementKey());
     $this->assertEquals($product->getId(), $updated->getElementId());
     $this->assertEquals(array("fr_FR" => "bonjour", "en_US" => "Hello"), $updated->getValue());
     $this->assertEquals(true, $updated->getIsSerialized());
     return $product;
 }