Merge remote-tracking branch 'origin/master'
# Conflicts: # src/EventListener/RequestListener.php # tests/unit/Listener/FillTest.php
This commit is contained in:
		
						commit
						6886244256
					
				| @ -17,6 +17,8 @@ use Symfony\Component\Validator\Validation; | ||||
| // todo базовая заготовка. Требуется рефакторинг
 | ||||
| class RequestListener | ||||
| { | ||||
|     public const REQUEST_DATA = 'request_data'; | ||||
| 
 | ||||
|     public function onKernelRequest(RequestEvent $event) | ||||
|     { | ||||
|         $request = $event->getRequest(); | ||||
| @ -39,7 +41,7 @@ class RequestListener | ||||
|             if ($errorCollection->hasErrors()) { | ||||
|                 $event->setResponse(new JsonResponse(['errors' => $errorCollection->format()], Response::HTTP_BAD_REQUEST)); | ||||
|             } else { | ||||
|                 $request->attributes->set($requestDTOInstance::class, $requestDTOInstance); | ||||
|                 $request->attributes->set(self::REQUEST_DATA, $requestDTOInstance); | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|  | ||||
| @ -19,7 +19,7 @@ use Symfony\Component\Routing\RouteCollection; | ||||
| 
 | ||||
| use Rinsvent\RequestBundle\EventListener\RequestListener; | ||||
| 
 | ||||
| class GenerateTest extends \Codeception\Test\Unit | ||||
| class FillTest extends \Codeception\Test\Unit | ||||
| { | ||||
|     /** | ||||
|      * @var \UnitTester | ||||
| @ -35,14 +35,14 @@ class GenerateTest extends \Codeception\Test\Unit | ||||
|     } | ||||
| 
 | ||||
|     // tests
 | ||||
|     public function testGenerateEnum() | ||||
|     public function testSuccessFillRequestData() | ||||
|     { | ||||
|         $request = Request::create('/hello/igor', 'GET', [ | ||||
|             'surname' => 'Surname' | ||||
|         ]); | ||||
|         $response = $this->send($request); | ||||
| 
 | ||||
|         $this->assertEquals('Surname', $request->get(HelloRequest::class)->surname); | ||||
|         $this->assertEquals('Surname', $request->get(RequestListener::REQUEST_DATA)->surname); | ||||
|     } | ||||
| 
 | ||||
|     private function send(Request $request): Response | ||||
|  | ||||
							
								
								
									
										14
									
								
								tests/unit/Listener/fixtures/FillTest/BuyRequest.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								tests/unit/Listener/fixtures/FillTest/BuyRequest.php
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,14 @@ | ||||
| <?php | ||||
| 
 | ||||
| namespace Rinsvent\RequestBundle\Tests\unit\Listener\fixtures\FillTest; | ||||
| 
 | ||||
| use Symfony\Component\Validator\Constraints as Assert; | ||||
| 
 | ||||
| class BuyRequest | ||||
| { | ||||
|     #[Assert\NotBlank]
 | ||||
|     public string $surname; | ||||
|     public int $age; | ||||
|     #[Assert\Email]
 | ||||
|     public string $email; | ||||
| } | ||||
| @ -15,4 +15,13 @@ class Controller | ||||
|             sprintf("Hello %s", $request->get('name')) | ||||
|         ); | ||||
|     } | ||||
| 
 | ||||
|     #[RequestDTO(className: HelloRequest::class, jsonPath: '$.user')]
 | ||||
|     #[RequestDTO(className: BuyRequest::class, jsonPath: '$.guest')]
 | ||||
|     public function hello2(Request $request) | ||||
|     { | ||||
|         return new Response( | ||||
|             sprintf("Hello %s", $request->get('name')) | ||||
|         ); | ||||
|     } | ||||
| } | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user