diff --git a/src/Form/MenuItemType.php b/src/Form/MenuItemType.php index e3c07f8..0761e21 100644 --- a/src/Form/MenuItemType.php +++ b/src/Form/MenuItemType.php @@ -4,18 +4,15 @@ namespace App\Form; use App\Entity\MenuItem; use App\Repository\MenuItemRepository; -use Doctrine\DBAL\Types\TextType; use Doctrine\ORM\QueryBuilder; use Override; use Symfony\Bridge\Doctrine\Form\Type\EntityType; -use Symfony\Bridge\Doctrine\Types\UlidType; use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\FormBuilderInterface; use Symfony\Component\OptionsResolver\OptionsResolver; -use Symfony\Component\Uid\Ulid; - +use Symfony\Component\Validator\Constraints\Length; use Symfony\Component\Validator\Constraints\NotBlank; -use function array_map; + use function assert; final class MenuItemType extends AbstractType @@ -28,16 +25,18 @@ final class MenuItemType extends AbstractType $builder->add('name', \Symfony\Component\Form\Extension\Core\Type\TextType::class, [ 'constraints' => [ - new NotBlank(), - new \Symfony\Component\Validator\Constraints\Length(['min' => 3]), - ] + new NotBlank, + new Length([ + 'min' => 3, + ]), + ], ]); $builder->add('aliases', EntityType::class, [ 'class' => MenuItem::class, 'choice_label' => 'name', 'multiple' => true, 'expanded' => true, - 'query_builder' => static fn (MenuItemRepository $repository): QueryBuilder + 'query_builder' => static fn(MenuItemRepository $repository): QueryBuilder => $repository->getSuitableAliasQueryBuilder($item), ]); } diff --git a/src/Repository/MenuItemRepository.php b/src/Repository/MenuItemRepository.php index 51ca1a3..651a52b 100644 --- a/src/Repository/MenuItemRepository.php +++ b/src/Repository/MenuItemRepository.php @@ -7,6 +7,9 @@ use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository; use Doctrine\Persistence\ManagerRegistry; use Symfony\Bridge\Doctrine\Types\UlidType; use Symfony\Component\Uid\Ulid; +use Doctrine\ORM\QueryBuilder; + +use function array_map; /** * @extends ServiceEntityRepository @@ -18,7 +21,7 @@ final class MenuItemRepository extends ServiceEntityRepository parent::__construct($registry, MenuItem::class); } - public function getSuitableAliasQueryBuilder(MenuItem $menuItem): \Doctrine\ORM\QueryBuilder + public function getSuitableAliasQueryBuilder(MenuItem $menuItem): QueryBuilder { $ids = $this->createQueryBuilder('m') ->select('DISTINCT IDENTITY(m.aliasOf)') diff --git a/tests/Controller/FoodVendorControllerTest.php b/tests/Controller/FoodVendorControllerTest.php index d000d79..d7fa1b9 100644 --- a/tests/Controller/FoodVendorControllerTest.php +++ b/tests/Controller/FoodVendorControllerTest.php @@ -9,7 +9,6 @@ use Override; use function sprintf; - final class FoodVendorControllerTest extends DbWebTest { private string $path = '/food/vendor/'; @@ -33,11 +32,12 @@ final class FoodVendorControllerTest extends DbWebTest 'food_vendor[name]' => 'TestingNew', ]); - $newVendor = $this->repository->findOneBy(['name' => 'TestingNew']); + $newVendor = $this->repository->findOneBy([ + 'name' => 'TestingNew', + ]); $this->assertInstanceof(FoodVendor::class, $newVendor); self::assertSame(1, $this->repository->count([])); - } public function testShow(): void diff --git a/tests/Controller/MenuItemControllerTest.php b/tests/Controller/MenuItemControllerTest.php index 05b2a1e..92cb1a0 100644 --- a/tests/Controller/MenuItemControllerTest.php +++ b/tests/Controller/MenuItemControllerTest.php @@ -37,12 +37,14 @@ final class MenuItemControllerTest extends DbWebTest $this->aliasOne = new MenuItem; $this->aliasOne->setName('AliasOne'); $this->aliasOne->setFoodVendor($this->vendor); + $this->menuItem->addAlias($this->aliasOne); $this->aliasTwo = new MenuItem; $this->aliasTwo->setName('AliasTwo'); $this->aliasTwo->setFoodVendor($this->vendor); $this->aliasTwo->setAliasOf($this->menuItem); + $this->menuItem->addAlias($this->aliasTwo); $this->manager->persist($this->aliasOne); @@ -91,7 +93,8 @@ final class MenuItemControllerTest extends DbWebTest $nameElem->attr('value') ); - $form = $crawler->selectButton('Update')->form(); + $form = $crawler->selectButton('Update') + ->form(); $form['menu_item[name]'] = 'Testing-1'; $form['menu_item[aliases]'][0]->untick(); @@ -114,7 +117,8 @@ final class MenuItemControllerTest extends DbWebTest $nameElem->attr('value') ); - $form = $crawler->selectButton('Update')->form(); + $form = $crawler->selectButton('Update') + ->form(); $form['menu_item[name]'] = 'a'; $this->client->submit($form); @@ -122,7 +126,6 @@ final class MenuItemControllerTest extends DbWebTest self::assertResponseStatusCodeSame(422); } - public function testDelete(): void { $order = new FoodOrder; diff --git a/tests/Entity/MenuItemTest.php b/tests/Entity/MenuItemTest.php index a30de40..a56c81d 100644 --- a/tests/Entity/MenuItemTest.php +++ b/tests/Entity/MenuItemTest.php @@ -36,6 +36,7 @@ final class MenuItemTest extends TestCase $vendor = new FoodVendor; $vendor->setName('Test'); + $item->setFoodVendor($vendor); $item2 = new MenuItem;