Skip to content

Commit

Permalink
update tests
Browse files Browse the repository at this point in the history
  • Loading branch information
prugala committed Jul 14, 2022
1 parent 92f2520 commit 434d4b2
Showing 1 changed file with 39 additions and 4 deletions.
43 changes: 39 additions & 4 deletions tests/ArgumentResolver/RequestDtoArgumentResolverTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,8 @@
use Prugala\RequestDto\Tests\Resources\ExampleDto;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpKernel\ControllerMetadata\ArgumentMetadata;
use Symfony\Component\HttpKernel\ControllerMetadata\ArgumentMetadataFactory;
use Symfony\Component\Serializer\Normalizer\ObjectNormalizer;
use Symfony\Component\Serializer\Normalizer\UnwrappingDenormalizer;
use Symfony\Component\Validator\Validation;
use Symfony\Component\Validator\Validator\TraceableValidator;
use Symfony\Component\Validator\Validator\ValidatorInterface;

class RequestDtoArgumentResolverTest extends TestCase
{
Expand All @@ -29,6 +25,7 @@ public function testResolveCorrectRequest(): void
);

$request = new Request();
$request->setMethod('POST');
$request->initialize(
$request->query->all(),
$request->request->all(),
Expand All @@ -53,6 +50,42 @@ public function testResolveCorrectRequest(): void
$this->assertSame(2, $dto->position);
}

public function testResolveCorrectGetRequest(): void
{
$validator = Validation::createValidatorBuilder()
->enableAnnotationMapping()
->addDefaultDoctrineAnnotationReader()
->getValidator();
$resolver = new RequestDtoArgumentResolver(
new ObjectNormalizer(),
$validator
);

$request = new Request();
$request->setMethod('GET');
$request->initialize(
[
'name' => 'test',
'position' => 2,
],
$request->request->all(),
$request->attributes->all(),
$request->cookies->all(),
$request->files->all(),
$request->server->all(),
);

$argumentMetadata = new ArgumentMetadata('test', ExampleDto::class, true, false, '');

$request = $resolver->resolve($request, $argumentMetadata);

/** @var ExampleDto $dto */
$dto = iterator_to_array($request)[0];

$this->assertSame('test', $dto->name);
$this->assertSame(2, $dto->position);
}

public function testResolveRequestExpectException(): void
{
$this->expectException(RequestValidationException::class);
Expand All @@ -68,6 +101,7 @@ public function testResolveRequestExpectException(): void
);

$request = new Request();
$request->setMethod('POST');
$request->initialize(
$request->query->all(),
$request->request->all(),
Expand Down Expand Up @@ -104,6 +138,7 @@ public function testResolveRequestWithViolation(): void
);

$request = new Request();
$request->setMethod('POST');
$request->initialize(
$request->query->all(),
$request->request->all(),
Expand Down

0 comments on commit 434d4b2

Please sign in to comment.