From 4760265edd7a3f3127c508e80eedd70c261df693 Mon Sep 17 00:00:00 2001 From: Nicolas Grekas Date: Fri, 9 Sep 2022 11:14:45 +0200 Subject: [PATCH] [Form] fix UUID tranformer --- .../UuidToStringTransformer.php | 8 +++-- .../UuidToStringTransformerTest.php | 30 +++++-------------- 2 files changed, 12 insertions(+), 26 deletions(-) diff --git a/src/Symfony/Component/Form/Extension/Core/DataTransformer/UuidToStringTransformer.php b/src/Symfony/Component/Form/Extension/Core/DataTransformer/UuidToStringTransformer.php index 1ccf04b223c09..c4775bb12bca5 100644 --- a/src/Symfony/Component/Form/Extension/Core/DataTransformer/UuidToStringTransformer.php +++ b/src/Symfony/Component/Form/Extension/Core/DataTransformer/UuidToStringTransformer.php @@ -64,12 +64,14 @@ public function reverseTransform($value) throw new TransformationFailedException('Expected a string.'); } + if (!Uuid::isValid($value)) { + throw new TransformationFailedException(sprintf('The value "%s" is not a valid UUID.', $value)); + } + try { - $uuid = new Uuid($value); + return Uuid::fromString($value); } catch (\InvalidArgumentException $e) { throw new TransformationFailedException(sprintf('The value "%s" is not a valid UUID.', $value), $e->getCode(), $e); } - - return $uuid; } } diff --git a/src/Symfony/Component/Form/Tests/Extension/Core/DataTransformer/UuidToStringTransformerTest.php b/src/Symfony/Component/Form/Tests/Extension/Core/DataTransformer/UuidToStringTransformerTest.php index f7a93beca8fb9..cb4374535ed70 100644 --- a/src/Symfony/Component/Form/Tests/Extension/Core/DataTransformer/UuidToStringTransformerTest.php +++ b/src/Symfony/Component/Form/Tests/Extension/Core/DataTransformer/UuidToStringTransformerTest.php @@ -15,26 +15,15 @@ use Symfony\Component\Form\Exception\TransformationFailedException; use Symfony\Component\Form\Extension\Core\DataTransformer\UuidToStringTransformer; use Symfony\Component\Uid\Uuid; +use Symfony\Component\Uid\UuidV1; class UuidToStringTransformerTest extends TestCase { - public function provideValidUuid() - { - return [ - ['123e4567-e89b-12d3-a456-426655440000', new Uuid('123e4567-e89b-12d3-a456-426655440000')], - ]; - } - - /** - * @dataProvider provideValidUuid - */ - public function testTransform($output, $input) + public function testTransform() { $transformer = new UuidToStringTransformer(); - $input = new Uuid($input); - - $this->assertEquals($output, $transformer->transform($input)); + $this->assertEquals('123e4567-e89b-12d3-a456-426655440000', $transformer->transform(new UuidV1('123e4567-e89b-12d3-a456-426655440000'))); } public function testTransformEmpty() @@ -53,16 +42,11 @@ public function testTransformExpectsUuid() $transformer->transform('1234'); } - /** - * @dataProvider provideValidUuid - */ - public function testReverseTransform($input, $output) + public function testReverseTransform() { - $reverseTransformer = new UuidToStringTransformer(); - - $output = new Uuid($output); + $transformer = new UuidToStringTransformer(); - $this->assertEquals($output, $reverseTransformer->reverseTransform($input)); + $this->assertEquals(new UuidV1('123e4567-e89b-12d3-a456-426655440000'), $transformer->reverseTransform('123e4567-e89b-12d3-a456-426655440000')); } public function testReverseTransformEmpty() @@ -78,7 +62,7 @@ public function testReverseTransformExpectsString() $this->expectException(TransformationFailedException::class); - $reverseTransformer->reverseTransform(1234); + $reverseTransformer->reverseTransform(Uuid::fromString('123e4567-e89b-12d3-a456-426655440000')->toBase32()); } public function testReverseTransformExpectsValidUuidString() pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy