diff --git a/tests/ArgumentResolver/RequestDtoArgumentResolverTest.php b/tests/ArgumentResolver/RequestDtoArgumentResolverTest.php index ba31d2d..0cdb101 100644 --- a/tests/ArgumentResolver/RequestDtoArgumentResolverTest.php +++ b/tests/ArgumentResolver/RequestDtoArgumentResolverTest.php @@ -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 { @@ -29,6 +25,7 @@ public function testResolveCorrectRequest(): void ); $request = new Request(); + $request->setMethod('POST'); $request->initialize( $request->query->all(), $request->request->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); @@ -68,6 +101,7 @@ public function testResolveRequestExpectException(): void ); $request = new Request(); + $request->setMethod('POST'); $request->initialize( $request->query->all(), $request->request->all(), @@ -104,6 +138,7 @@ public function testResolveRequestWithViolation(): void ); $request = new Request(); + $request->setMethod('POST'); $request->initialize( $request->query->all(), $request->request->all(),