function let(ManagerRegistry $managerRegistry, TranslatableListener $translatableListener, ObjectManager $manager, ClassMetadata $translatableMetadata)
 {
     $managerRegistry->getManagerForClass(Argument::type('string'))->willReturn($manager);
     $translatableListener->getExtendedMetadata($manager, Argument::type('string'))->willReturn($translatableMetadata);
     $translatableListener->getLocale()->willReturn('en');
     $this->beConstructedWith($managerRegistry, $translatableListener, new PropertyAccessor());
 }
 public function let(ManagerRegistry $managerRegistry, ObjectManager $objectManager, ClassMetadataFactory $metadataFactory, ClassMetadata $classMetadata, TranslatableListener $translatableListener, TranslatableMetadata $translatableMetadata, EntityRepository $entityRepository, TranslatableRepository $translatableRepository, ParamConverter $paramConverter)
 {
     $managerRegistry->getManagerForClass(Argument::type('string'))->willReturn($objectManager);
     $metadataFactory->isTransient(Argument::type('string'))->willReturn(false);
     $objectManager->getMetadataFactory()->willReturn($metadataFactory);
     $objectManager->getClassMetadata(Argument::type('string'))->willReturn($classMetadata);
     $objectManager->getRepository('NonTranslatableEntity')->willReturn($entityRepository);
     $objectManager->getRepository('TranslatableEntity')->willReturn($translatableRepository);
     $translatableListener->getExtendedMetadata($objectManager, Argument::type('string'))->willReturn($translatableMetadata);
     $paramConverter->getOptions()->willReturn(array());
     $paramConverter->getName()->willReturn('object');
     $this->beConstructedWith($managerRegistry, $translatableListener);
 }
 function it_does_nothing_if_forms_property_is_not_translatable_in_first_translatable_parent(ManagerRegistry $managerRegistry, ObjectManager $manager, TranslatableListener $translatableListener, ClassMetadata $translatableMetadata, PropertyPath $propertyPath, FormView $view, FormInterface $form, FormConfigInterface $formConfig, FormInterface $parentForm, FormConfigInterface $parentFormConfig, FormInterface $grandParentForm, FormConfigInterface $grandParentFormConfig)
 {
     $propertyPath->__toString()->willReturn('translatable_property');
     $form->getPropertyPath()->willReturn($propertyPath);
     $form->getConfig()->willReturn($formConfig);
     $form->getParent()->willReturn($parentForm);
     $parentForm->getConfig()->willReturn($parentFormConfig);
     $parentFormConfig->getInheritData()->willReturn(true);
     $parentForm->getParent()->willReturn($grandParentForm);
     $grandParentForm->getConfig()->willReturn($grandParentFormConfig);
     $grandParentFormConfig->getInheritData()->willReturn(false);
     $grandParentFormConfig->getDataClass()->willReturn('translatable_class');
     $managerRegistry->getManagerForClass('translatable_class')->willReturn($manager);
     $translatableListener->getExtendedMetadata($manager, 'translatable_class')->willReturn($translatableMetadata);
     $translatableMetadata->hasTranslatableProperties()->willReturn(true);
     $translatableMetadata->getTranslatableProperties()->willReturn(array());
     $this->finishView($view, $form, array());
     expect($view->vars['translatable'])->toBe(false);
     expect($view->vars['not_translated'])->toBe(false);
 }
 /**
  * @param object $object
  * @return \FSi\Component\Metadata\ClassMetadataInterface
  */
 private function getObjectTranslatableMetadata($object)
 {
     $class = get_class($object);
     $manager = $this->managerRegistry->getManagerForClass($class);
     return $this->translatableListener->getExtendedMetadata($manager, $class);
 }
 /**
  * @param string $class
  * @return ClassMetadata
  */
 private function getTranslatableMetadata($class)
 {
     return $this->translatableListener->getExtendedMetadata($this->getManagerForClass($class), $class);
 }
 /**
  * @param FormEvent $event
  * @return ClassMetadata
  */
 private function getFormDataTranslatableMetadata(FormEvent $event)
 {
     return $this->translatableListener->getExtendedMetadata($this->getManagerForDataClass($event), $this->getFormDataClass($event));
 }
 function it_does_nothing_when_form_data_has_no_translatable_properties(ManagerRegistry $managerRegistry, ObjectManager $objectManager, TranslatableListener $translatableListener, FormEvent $event, FormInterface $form, FormConfigInterface $formConfig, ClassMetadata $translatableClassMetadata)
 {
     $translatableListener->getLocale()->willReturn('en');
     $event->getForm()->willReturn($form);
     $form->getConfig()->willReturn($formConfig);
     $formConfig->getOption('data_class')->willReturn('TranslatableEntity');
     $managerRegistry->getManagerForClass('TranslatableEntity')->willReturn($objectManager);
     $translatableListener->getExtendedMetadata($objectManager, 'TranslatableEntity')->willReturn($translatableClassMetadata);
     $translatableClassMetadata->hasTranslatableProperties()->willReturn(false);
     $event->getData()->shouldNotBeCalled();
     $this->setTranslatableLocale($event);
 }
 /**
  * @param \Sensio\Bundle\FrameworkExtraBundle\Configuration\ParamConverter $configuration
  * @return \FSi\DoctrineExtensions\Translatable\Mapping\ClassMetadata $translatableMetadata
  */
 private function getTranslatableMetadata(ParamConverter $configuration)
 {
     return $this->translatableListener->getExtendedMetadata($this->getManager($configuration), $configuration->getClass());
 }