/**
  * post persist callback method
  *
  * @param LifecycleEventArgs $event event args
  *
  * @return void
  */
 public function postPersist(LifecycleEventArgs $event)
 {
     $object = $event->getObject();
     if ($object instanceof Translatable) {
         $event = new TranslatablePersistEvent($object->getLocale(), $object->getDomain());
         $this->dispatcher->dispatch(TranslatablePersistEvent::EVENT_NAME, $event);
     }
 }
 function it_converts_metric_data_before_updating(LifecycleEventArgs $args, MetricInterface $metric, MeasureManager $manager, MeasureConverter $converter, DocumentManager $dm, ProductInterface $product, ProductValueInterface $productValue, UnitOfWork $uow, ClassMetadata $metadata)
 {
     $args->getObject()->willReturn($product);
     $product->getValues()->willReturn([$productValue]);
     $productValue->getData()->willReturn($metric);
     $metric->getId()->willReturn(12);
     $args->getObjectManager()->willReturn($dm);
     $dm->getUnitOfWork()->willReturn($uow);
     $uow->recomputeSingleDocumentChangeSet(Argument::type('Doctrine\\Common\\Persistence\\Mapping\\ClassMetadata'), $metric)->shouldBeCalled();
     $metric->getUnit()->willReturn('cm');
     $metric->getFamily()->willReturn('distance');
     $metric->getData()->willReturn(100);
     $manager->getStandardUnitForFamily('distance')->willReturn('m');
     $converter->setFamily('distance')->shouldBeCalled()->willReturn($converter);
     $converter->convertBaseToStandard('cm', 100)->willReturn(1);
     $metric->setBaseData(1)->shouldBeCalled()->willReturn($metric);
     $metric->setBaseUnit('m')->shouldBeCalled();
     $dm->getClassMetadata(Argument::any())->willReturn($metadata);
     $dm->getUnitOfWork()->willReturn($uow);
     $uow->recomputeSingleDocumentChangeSet($metadata, $metric)->shouldBeCalled();
     $this->preUpdate($args);
 }
 /**
  * post persist callback method
  *
  * @param LifecycleEventArgs $event event args
  *
  * @return void
  */
 public function postPersist(LifecycleEventArgs $event)
 {
     $object = $event->getObject();
     if ($object instanceof Translatable) {
         $domain = $object->getDomain();
         $locale = $object->getLocale();
         $triggerFile = __DIR__ . '/../Resources/translations/' . $domain . '.' . $locale . '.odm';
         $cacheDirMask = __DIR__ . '/../../../../app/cache/*/translations';
         $fs = new Filesystem();
         if (!$fs->exists($triggerFile)) {
             $fs->touch($triggerFile);
         }
         try {
             $finder = new Finder();
             $finder->files()->in($cacheDirMask)->name('*.' . $locale . '.*');
             foreach ($finder as $file) {
                 $fs->remove($file->getRealPath());
             }
         } catch (\InvalidArgumentException $e) {
             // InvalidArgumentException gets thrown if the translation cache dir doesn't exist.
             // we ignore it since it's normal under some circumstances (no cache warmup yet)
         }
     }
 }