protected function getExtensions() { $registry = $this->getMockBuilder('Doctrine\\Common\\Persistence\\ManagerRegistry')->disableOriginalConstructor()->getMock(); $em = $this->getMockBuilder('Doctrine\\ORM\\EntityManager')->disableOriginalConstructor()->getMock(); $meta = $this->getMockBuilder('Doctrine\\ORM\\Mapping\\ClassMetadata')->disableOriginalConstructor()->getMock(); $repo = $this->getMockBuilder('Doctrine\\ORM\\EntityRepository')->disableOriginalConstructor()->getMock(); $calendar = new Calendar(); ReflectionUtil::setId($calendar, 1); $registry->expects($this->any())->method('getManagerForClass')->with('OroCalendarBundle:Calendar')->will($this->returnValue($em)); $em->expects($this->any())->method('getClassMetadata')->with('OroCalendarBundle:Calendar')->will($this->returnValue($meta)); $em->expects($this->any())->method('getRepository')->with('OroCalendarBundle:Calendar')->will($this->returnValue($repo)); $meta->expects($this->any())->method('getSingleIdentifierFieldName')->will($this->returnValue('id')); $repo->expects($this->any())->method('find')->with($calendar->getId())->will($this->returnValue($calendar)); $childType = new EntityIdentifierType($registry); return array(new PreloadedExtension(array($childType->getName() => $childType), array())); }
/** * @dataProvider multipleTypeDataProvider * @param bool $isMultiple */ public function testCreateEntitiesToIdsTransformer($isMultiple) { $options = array('em' => $this->getMockEntityManager(), 'multiple' => $isMultiple, 'class' => 'TestClass', 'property' => 'id', 'queryBuilder' => function ($repository, array $ids) { return $repository->createQueryBuilder('o')->where('o.id IN (:values)')->setParameter('values', $ids); }, 'values_delimiter' => ','); $builder = $this->getMockBuilder('Symfony\\Component\\Form\\Test\\FormBuilderInterface')->setMethods(array('addViewTransformer', 'addEventSubscriber'))->getMockForAbstractClass(); $builder->expects($this->at(0))->method('addViewTransformer')->with($this->callback(function ($transformer) use($options, $isMultiple) { if ($isMultiple) { \PHPUnit_Framework_TestCase::assertInstanceOf('Oro\\Bundle\\FormBundle\\Form\\DataTransformer\\EntitiesToIdsTransformer', $transformer); } else { \PHPUnit_Framework_TestCase::assertInstanceOf('Oro\\Bundle\\FormBundle\\Form\\DataTransformer\\EntityToIdTransformer', $transformer); } \PHPUnit_Framework_TestCase::assertAttributeEquals($options['em'], 'em', $transformer); \PHPUnit_Framework_TestCase::assertAttributeEquals($options['class'], 'className', $transformer); \PHPUnit_Framework_TestCase::assertAttributeEquals($options['property'], 'property', $transformer); \PHPUnit_Framework_TestCase::assertAttributeEquals($options['queryBuilder'], 'queryBuilderCallback', $transformer); return true; }))->will($this->returnSelf()); if ($isMultiple) { $builder->expects($this->at(1))->method('addViewTransformer')->will($this->returnSelf()); } $this->type = new EntityIdentifierType($this->getMockManagerRegistry()); $this->type->buildForm($builder, $options); }