/** * @param bool $hasConfig * @param bool $isEnabled * @param bool $isManyToOneExists * @param string $expectedType * @param array $expectedOptions * * @dataProvider guessTypeProvider */ public function testGuessType($hasConfig, $isEnabled, $isManyToOneExists, $expectedType, $expectedOptions) { $className = 'Test\\Entity'; $relatedEntityName = 'Test\\EntityRelated'; $property = 'subject'; $this->setupExtendHasConfig($className, $property, $hasConfig, ['is_deleted' => false, 'state' => ExtendScope::STATE_ACTIVE, 'target_entity' => $relatedEntityName]); $this->setupFormIsEnabled($className, $property, RelationType::TO_ONE, $isEnabled); if ($hasConfig && $isEnabled) { $this->fieldProviderMock->expects($this->once())->method('getFields')->with($className, true)->willReturn([['name' => 'subject', 'related_entity_name' => $relatedEntityName]]); } if ($isManyToOneExists) { $this->setupEntityConfig($className, $property); $this->guesser->addExtendTypeMapping(RelationType::TO_ONE, 'entity'); } $guess = $this->guesser->guessType($className, $property); $this->assertEquals($expectedType, $guess->getType(), 'Failed asserting type guessed correctly'); $this->assertEquals($expectedOptions, $guess->getOptions(), 'Failed asserting options guessed correctly'); }