Починил тесты
This commit is contained in:
parent
36d4a935b2
commit
87c31135cd
@ -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();
|
||||
@ -25,7 +27,7 @@ class RequestListener
|
||||
$controller = explode('::', $controller);
|
||||
$method = new ReflectionMethod($controller[0], $controller[1]);
|
||||
}
|
||||
if (is_callable($controller)){
|
||||
if (is_callable($controller)) {
|
||||
$method = new ReflectionMethod($controller[0], $controller[1]);
|
||||
}
|
||||
if (!isset($method)) {
|
||||
@ -43,7 +45,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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -18,7 +18,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
|
||||
@ -34,14 +34,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(3, $request->get('form'));
|
||||
$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