public function testTransform() { $entity = $this->getMock('Oro\\Bundle\\TagBundle\\Entity\\Taggable'); $this->transformer->setEntity($entity); $resultArray = array(array('some key' => 'some value')); $phpUnit = $this; $this->manager->expects($this->once())->method('getPreparedArray')->will($this->returnCallback(function ($entityArg, $tagsArg) use($phpUnit, $entity, $resultArray) { $phpUnit->assertEquals($entity, $entityArg); $phpUnit->assertInstanceOf('Doctrine\\Common\\Collections\\ArrayCollection', $tagsArg); return $resultArray; }))->will($this->returnValue($resultArray)); $this->assertEquals($this->transformer->transform(array()), json_encode($resultArray)); }
/** * Loads tagging and transform it to view data * * @param FormEvent $event */ public function preSet(FormEvent $event) { $entity = $event->getForm()->getParent()->getData(); if (!$entity instanceof Taggable) { // do nothing if new entity or some error return; } $tags = $this->manager->getPreparedArray($entity); $ownTags = array_filter($tags, function ($item) { return isset($item['owner']) && $item['owner']; }); // pass entity to transformer $this->transformer->setEntity($entity); $event->setData(array('autocomplete' => null, 'all' => json_encode($tags), 'owner' => json_encode($ownTags))); }
/** * @dataProvider valueTransformProvider * * @param $expected * @param $value */ public function testTransform($expected, $value) { $this->assertEquals($expected, $this->transformer->transform($value)); }