/**
  * @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');
 }