mirror of
				https://github.com/kevinveenbirkenbach/infinito.git
				synced 2025-10-31 01:09:41 +00:00 
			
		
		
		
	Added FormClassNameService
This commit is contained in:
		| @@ -0,0 +1,31 @@ | ||||
| <?php | ||||
|  | ||||
| namespace App\Domain\FormManagement; | ||||
|  | ||||
| use App\Entity\EntityInterface; | ||||
|  | ||||
| /** | ||||
|  * @author kevinfrantz | ||||
|  */ | ||||
| final class FormClassNameService implements FormClassNameServiceInterface | ||||
| { | ||||
|     const ENTITY_BASE_PATH = 'App\\Entity'; | ||||
|  | ||||
|     const FORM_BASE_PATH = 'App\\Form'; | ||||
|  | ||||
|     const SUFFIX = 'Type'; | ||||
|  | ||||
|     /** | ||||
|      * @param EntityInterface $entity | ||||
|      * | ||||
|      * @return string | ||||
|      */ | ||||
|     public function getName(EntityInterface $entity): string | ||||
|     { | ||||
|         $class = get_class($entity); | ||||
|         $replaced = str_replace(self::ENTITY_BASE_PATH, self::FORM_BASE_PATH, $class); | ||||
|         $withSuffix = $replaced.self::SUFFIX; | ||||
|  | ||||
|         return $withSuffix; | ||||
|     } | ||||
| } | ||||
| @@ -0,0 +1,18 @@ | ||||
| <?php | ||||
|  | ||||
| namespace App\Domain\FormManagement; | ||||
|  | ||||
| use App\Entity\EntityInterface; | ||||
|  | ||||
| /** | ||||
|  * @author kevinfrantz | ||||
|  */ | ||||
| interface FormClassNameServiceInterface | ||||
| { | ||||
|     /** | ||||
|      * @param EntityInterface $entity | ||||
|      * | ||||
|      * @return string The name of the form of the entity | ||||
|      */ | ||||
|     public function getName(EntityInterface $entity): string; | ||||
| } | ||||
| @@ -0,0 +1,21 @@ | ||||
| <?php | ||||
|  | ||||
| namespace tests\Unit\Domain\FormManagement; | ||||
|  | ||||
| use PHPUnit\Framework\TestCase; | ||||
| use App\Domain\FormManagement\FormClassNameService; | ||||
| use App\Entity\Source\PureSource; | ||||
|  | ||||
| /** | ||||
|  * @author kevinfrantz | ||||
|  */ | ||||
| class FormClassNameServiceTest extends TestCase | ||||
| { | ||||
|     public function testGetName() | ||||
|     { | ||||
|         $entity = new PureSource(); | ||||
|         $formNameService = new FormClassNameService(); | ||||
|         $entityForm = $formNameService->getName($entity); | ||||
|         $this->assertEquals('App\\Form\\Source\\PureSourceType', $entityForm); | ||||
|     } | ||||
| } | ||||
		Reference in New Issue
	
	Block a user