public function testBeforeValueRenderProceedManyToOneWithCustomEntity() { $entity = $this->getMock('\\StdClass'); $value = $this->getMock('\\StdClass', array('getId')); $fieldType = 'manyToOne'; $field = 'test'; $id = 42; $title = 'test title'; $expectedClass = 'Oro\\Bundle\\UserBundle\\Entity\\User'; $routeExpectedClass = 'Oro_Bundle_UserBundle_Entity_User'; $route = '/test-route/42'; $value->{$field} = $title; $value->expects($this->once())->method('getId')->will($this->returnValue($id)); $fieldConfig = $this->getManyToOneFieldConfig($fieldType); $this->setupManyToOneExtendConfig($field, $expectedClass, $fieldConfig); $this->setupManyToOneMetadata($expectedClass); $this->setupExtendRelationConfig($expectedClass); $this->router->expects($this->once())->method('generate')->with(ExtendFieldValueRenderListener::ENTITY_VIEW_ROUTE, array('entityName' => $routeExpectedClass, 'id' => $id))->will($this->returnValue($route)); $event = new ValueRenderEvent($entity, $value, $fieldConfig); $this->target->beforeValueRender($event); $value = $event->getFieldViewValue(); $this->assertArrayHasKey('title', $value); $this->assertEquals($value['title'], $title); $this->assertArrayHasKey('link', $value); $this->assertEquals($value['link'], $route); }
/** * @dataProvider relationsDataProvider * * @param array $data * @param array|string $expected */ public function testBeforeValueRenderProceedSingleRelations(array $data, $expected) { $entity = $this->getMock('\\StdClass'); $value = $this->getMock('\\StdClass', ['getId']); $fieldType = 'manyToOne'; if (!empty($data['field'])) { $value->{$data}['field'] = $data['title']; } $value->expects($this->any())->method('getId')->will($this->returnValue($data['id'])); if (isset($data['permissionsGranted'])) { $this->facade->expects($this->once())->method('isGranted')->with('VIEW', $value)->willReturn(true); } $fieldConfig = $this->getMockBuilder('Oro\\Bundle\\EntityConfigBundle\\Config\\Id\\FieldConfigId')->disableOriginalConstructor()->getMock(); $fieldConfig->expects($this->once())->method('getFieldType')->will($this->returnValue($fieldType)); $this->setupManyToOneExtendConfigMock($data['field'], $data['class'], $fieldConfig); $this->setupManyToOneMetadataStub($data['class']); $this->setupExtendRelationConfigStub($data['class'], $data['isCustomEntity']); if (isset($data['viewPageRoute'])) { $this->setupEntityMetadataStub($data['viewPageRoute'], $data['class']); if ($data['routeClassParam']) { $this->entityClassNameHelper->expects($this->any())->method('getUrlSafeClassName')->willReturn($data['routeClassParam']); } $this->setupRouterStub($data['viewPageRoute'], [$data], $data['isCustomEntity'], $data['routeClassParam']); } $event = new ValueRenderEvent($entity, $value, $fieldConfig); $this->target->beforeValueRender($event); $actual = $event->getFieldViewValue(); $this->assertEquals($expected, $actual); }