protected function setUp() { $this->em = $this->getMockBuilder('Doctrine\\ORM\\EntityManager')->disableOriginalConstructor()->getMock(); $translator = $this->getMock('Symfony\\Component\\Translation\\TranslatorInterface'); $translator->expects($this->any())->method('trans')->will($this->returnArgument(0)); $registry = $this->getMockForAbstractClass('Doctrine\\Common\\Persistence\\ManagerRegistry', [], '', false); $registry->expects($this->any())->method('getManagerForClass')->will($this->returnValue($this->em)); $this->formFactory = Forms::createFormFactoryBuilder()->addExtensions([new PreloadedExtension(['oro_type_filter' => new FilterType($translator), 'oro_type_choice_filter' => new ChoiceFilterType($translator), 'entity' => new EntityType($registry), 'oro_type_entity_filter' => new EntityFilterType($translator)], []), new CsrfExtension($this->getMock('Symfony\\Component\\Form\\Extension\\Csrf\\CsrfProvider\\CsrfProviderInterface'))])->getFormFactory(); $classMetaData = $this->getMockBuilder('Doctrine\\ORM\\Mapping\\ClassMetadata')->disableOriginalConstructor()->getMock(); $classMetaData->expects($this->any())->method('getName')->will($this->returnValue('OroSegment:Segment')); $classMetaData->expects($this->any())->method('getIdentifier')->will($this->returnValue(['id'])); $this->em->expects($this->any())->method('getClassMetadata')->will($this->returnValue($classMetaData)); $this->dynamicSegmentQueryBuilder = $this->getMockBuilder('Oro\\Bundle\\SegmentBundle\\Query\\DynamicSegmentQueryBuilder')->disableOriginalConstructor()->getMock(); $this->staticSegmentQueryBuilder = $this->getMockBuilder('Oro\\Bundle\\SegmentBundle\\Query\\StaticSegmentQueryBuilder')->disableOriginalConstructor()->getMock(); $this->entityNameProvider = $this->getMock('Oro\\Bundle\\SegmentBundle\\Provider\\EntityNameProvider'); $this->entityNameProvider->expects($this->any())->method('getEntityName')->will($this->returnValue('Namespace\\Entity')); $this->entityConfigProvider = $this->getMockBuilder('Oro\\Bundle\\EntityConfigBundle\\Provider\\ConfigProvider')->disableOriginalConstructor()->getMock(); $this->extendConfigProvider = $this->getMockBuilder('Oro\\Bundle\\EntityConfigBundle\\Provider\\ConfigProvider')->disableOriginalConstructor()->getMock(); $configManager = $this->getMockBuilder('Oro\\Bundle\\EntityConfigBundle\\Config\\ConfigManager')->disableOriginalConstructor()->getMock(); $this->entityConfigProvider->expects($this->any())->method('getConfigManager')->will($this->returnValue($configManager)); $configManager->expects($this->any())->method('getEntityManager')->will($this->returnValue($this->em)); $staticQBServiceID = uniqid('static'); $dynamicQBServiceID = uniqid('dynamic'); $container = new Container(); $container->set($staticQBServiceID, $this->staticSegmentQueryBuilder); $container->set($dynamicQBServiceID, $this->dynamicSegmentQueryBuilder); $this->filter = new SegmentFilter($this->formFactory, new FilterUtility(), new ServiceLink($container, $dynamicQBServiceID), new ServiceLink($container, $staticQBServiceID), $this->entityNameProvider, $this->entityConfigProvider, $this->extendConfigProvider); $this->filter->init('segment', ['entity' => '']); }
public function testProvider() { $this->assertFalse($this->provider->getEntityName()); $entityName = 'Acme\\Entity\\Test\\Entity'; $this->entity->expects($this->once())->method('getEntity')->will($this->returnValue($entityName)); $this->provider->setCurrentItem($this->entity); $this->assertEquals($entityName, $this->provider->getEntityName()); }
/** * {@inheritDoc} */ public function getForm() { if (!$this->form) { $entityName = $this->entityNameProvider->getEntityName(); // hard coded field, do not allow to pass any option $this->form = $this->formFactory->create($this->getFormType(), [], ['csrf_protection' => false, 'field_options' => ['class' => 'OroSegmentBundle:Segment', 'property' => 'name', 'required' => true, 'query_builder' => function (EntityRepository $repo) use($entityName) { $qb = $repo->createQueryBuilder('s'); if ($entityName) { $qb->where('s.entity = :entity')->setParameter('entity', $entityName); } return $qb; }]]); } return $this->form; }