Skip to content

Commit 8884388

Browse files
committed
Update/Move
1 parent 177bb8e commit 8884388

7 files changed

Lines changed: 42 additions & 44 deletions

File tree

src/Extension/Cryptography/CryptographyMiddleware.php

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,16 +42,20 @@ public function hydrate(ClassMetadata $metadata, array $data, array $context, St
4242
$info = $propertyMetadata->extras[SensitiveDataInfo::class] ?? null;
4343

4444
if (!$info instanceof SensitiveDataInfo) {
45+
dump('a');
46+
4547
continue;
4648
}
4749

4850
$value = $data[$propertyMetadata->fieldName] ?? null;
4951

5052
if ($value === null) {
53+
dump('b');
5154
continue;
5255
}
5356

5457
if (!$this->cryptographer->supports($value)) {
58+
dump('c');
5559
continue;
5660
}
5761

@@ -72,6 +76,8 @@ public function hydrate(ClassMetadata $metadata, array $data, array $context, St
7276
}
7377
}
7478

79+
dd('end', $propertyMetadata->extras);
80+
7581
return $stack->next()->hydrate(
7682
$metadata,
7783
$data,

src/GeneratedCoreExtension.php renamed to src/Extension/Generated/GeneratedCoreExtension.php

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,11 @@
22

33
declare(strict_types=1);
44

5-
namespace Patchlevel\Hydrator;
5+
namespace Patchlevel\Hydrator\Extension\Generated;
66

7+
use Patchlevel\Hydrator\Extension;
78
use Patchlevel\Hydrator\Guesser\BuiltInGuesser;
8-
use Patchlevel\Hydrator\Metadata\MetadataFactory;
9-
use Patchlevel\Hydrator\Middleware\AttributeTransformMiddleware;
10-
use Patchlevel\Hydrator\Middleware\MiddlewareGenerator;
11-
use Patchlevel\Hydrator\Middleware\TransformMiddleware;
9+
use Patchlevel\Hydrator\HydratorBuilder;
1210

1311
final class GeneratedCoreExtension implements Extension
1412
{

src/Middleware/MiddlewareGenerator.php renamed to src/Extension/Generated/MiddlewareGenerator.php

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,23 +2,18 @@
22

33
declare(strict_types=1);
44

5-
namespace Patchlevel\Hydrator\Middleware;
5+
namespace Patchlevel\Hydrator\Extension\Generated;
66

77
use Patchlevel\Hydrator\Metadata\ClassMetadata;
88
use Patchlevel\Hydrator\Metadata\MetadataFactory;
99
use Patchlevel\Hydrator\Metadata\PropertyMetadata;
1010
use Patchlevel\Hydrator\Normalizer\ArrayNormalizer;
11-
use Patchlevel\Hydrator\Normalizer\ArrayShapeNormalizer;
1211
use Patchlevel\Hydrator\Normalizer\ObjectNormalizer;
13-
use Patchlevel\Hydrator\TypeMismatch;
1412
use ReflectionProperty;
1513
use Throwable;
16-
1714
use function implode;
18-
use function in_array;
19-
use function str_replace;
20-
use function var_export;
2115
use function ltrim;
16+
use function str_replace;
2217

2318
final class MiddlewareGenerator
2419
{

src/HydratorBuilder.php

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -85,12 +85,7 @@ public function build(): Hydrator
8585
krsort($this->metadataEnrichers);
8686
krsort($this->middlewares);
8787

88-
$metadataFactory = new EnrichingMetadataFactory(
89-
new AttributeMetadataFactory(
90-
guesser: new ChainGuesser(array_merge(...$this->guessers)),
91-
),
92-
array_merge(...$this->metadataEnrichers),
93-
);
88+
$metadataFactory = $this->getMetadataFactory();
9489

9590
if ($this->cache instanceof CacheItemPoolInterface) {
9691
$metadataFactory = new Psr6MetadataFactory($metadataFactory, $this->cache);
@@ -110,9 +105,13 @@ public function build(): Hydrator
110105
public function getMetadataFactory(): MetadataFactory
111106
{
112107
krsort($this->guessers);
108+
krsort($this->metadataEnrichers);
113109

114-
return new AttributeMetadataFactory(
115-
guesser: new ChainGuesser(array_merge(...$this->guessers)),
110+
return new EnrichingMetadataFactory(
111+
new AttributeMetadataFactory(
112+
guesser: new ChainGuesser(array_merge(...$this->guessers)),
113+
),
114+
array_merge(...$this->metadataEnrichers),
116115
);
117116
}
118117
}

tests/Benchmark/GeneratedHydratorBench.php

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,12 @@
44

55
namespace Patchlevel\Hydrator\Tests\Benchmark;
66

7-
use Patchlevel\Hydrator\GeneratedCoreExtension;
8-
use Patchlevel\Hydrator\Guesser\BuiltInGuesser;
7+
use Patchlevel\Hydrator\Extension\Generated\GeneratedCoreExtension;
98
use Patchlevel\Hydrator\Hydrator;
109
use Patchlevel\Hydrator\HydratorBuilder;
1110
use Patchlevel\Hydrator\Tests\Benchmark\Fixture\ProfileCreated;
1211
use Patchlevel\Hydrator\Tests\Benchmark\Fixture\ProfileId;
1312
use Patchlevel\Hydrator\Tests\Benchmark\Fixture\Skill;
14-
use Patchlevel\Hydrator\Metadata\AttributeMetadataFactory;
15-
use Patchlevel\Hydrator\Middleware\MiddlewareGenerator;
1613
use PhpBench\Attributes as Bench;
1714

1815
#[Bench\BeforeMethods('setUp')]

tests/Unit/GeneratedMetadataHydratorTest.php renamed to tests/Unit/Extension/Generated/GeneratedMetadataHydratorTest.php

Lines changed: 19 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -2,18 +2,17 @@
22

33
declare(strict_types=1);
44

5-
namespace Patchlevel\Hydrator\Tests\Unit;
5+
namespace Patchlevel\Hydrator\Tests\Unit\Extension\Generated;
66

77
use DateTime;
88
use DateTimeImmutable;
99
use DateTimeZone;
1010
use InvalidArgumentException;
1111
use Patchlevel\Hydrator\CircularReference;
1212
use Patchlevel\Hydrator\ClassNotSupported;
13-
use Patchlevel\Hydrator\Cryptography\CryptographyExtension;
14-
use Patchlevel\Hydrator\Cryptography\PayloadCryptographer;
15-
use Patchlevel\Hydrator\DenormalizationFailure;
16-
use Patchlevel\Hydrator\GeneratedCoreExtension;
13+
use Patchlevel\Hydrator\Extension\Cryptography\Cryptographer;
14+
use Patchlevel\Hydrator\Extension\Cryptography\CryptographyExtension;
15+
use Patchlevel\Hydrator\Extension\Generated\GeneratedCoreExtension;
1716
use Patchlevel\Hydrator\Hydrator;
1817
use Patchlevel\Hydrator\HydratorBuilder;
1918
use Patchlevel\Hydrator\Metadata\AttributeMetadataFactory;
@@ -22,7 +21,6 @@
2221
use Patchlevel\Hydrator\Middleware\Middleware;
2322
use Patchlevel\Hydrator\Middleware\Stack;
2423
use Patchlevel\Hydrator\Middleware\TransformMiddleware;
25-
use Patchlevel\Hydrator\NormalizationFailure;
2624
use Patchlevel\Hydrator\Normalizer\InvalidArgument;
2725
use Patchlevel\Hydrator\Tests\Unit\Fixture\Circle1Dto;
2826
use Patchlevel\Hydrator\Tests\Unit\Fixture\Circle2Dto;
@@ -43,7 +41,6 @@
4341
use Patchlevel\Hydrator\Tests\Unit\Fixture\Status;
4442
use Patchlevel\Hydrator\Tests\Unit\Fixture\StatusWithNormalizer;
4543
use Patchlevel\Hydrator\Tests\Unit\Fixture\WrongNormalizer;
46-
use Patchlevel\Hydrator\TypeMismatch;
4744
use PHPUnit\Framework\Attributes\CoversClass;
4845
use PHPUnit\Framework\Attributes\RequiresPhp;
4946
use PHPUnit\Framework\TestCase;
@@ -59,7 +56,7 @@ final class GeneratedMetadataHydratorTest extends TestCase
5956
public function setUp(): void
6057
{
6158
$this->hydrator = (new HydratorBuilder())->useExtension(new GeneratedCoreExtension(
62-
__DIR__ . '/../../var/cache',
59+
__DIR__ . '/../../../../var/cache',
6360
[
6461
ProfileCreated::class,
6562
ParentDto::class,
@@ -189,7 +186,7 @@ public function testExtractWithContext(): void
189186

190187
$hydrator = (new HydratorBuilder())
191188
->useExtension(new GeneratedCoreExtension(
192-
__DIR__ . '/../../var/cache',
189+
__DIR__ . '/../../../../var/cache',
193190
[
194191
ProfileCreated::class,
195192
ParentDto::class,
@@ -327,7 +324,7 @@ public function testHydrateWithContext(): void
327324

328325
$hydrator = (new HydratorBuilder())
329326
->useExtension(new GeneratedCoreExtension(
330-
__DIR__ . '/../../var/cache',
327+
__DIR__ . '/../../../../var/cache',
331328
[
332329
InferNormalizerDto::class,
333330
],
@@ -371,26 +368,32 @@ public function testDecrypt(): void
371368

372369
$metadataFactory = new AttributeMetadataFactory();
373370

374-
$cryptographer = $this->createMock(PayloadCryptographer::class);
371+
$cryptographer = $this->createMock(Cryptographer::class);
372+
$cryptographer
373+
->expects($this->once())
374+
->method('supports')
375+
->with('encrypted')
376+
->willReturn(true);
377+
375378
$cryptographer
376379
->expects($this->once())
377380
->method('decrypt')
378381
->with($metadataFactory->metadata(ProfileCreated::class), $encryptedPayload)
379382
->willReturn($payload);
380383

381384
$hydrator = (new HydratorBuilder())
385+
->useExtension(new CryptographyExtension($cryptographer))
382386
->useExtension(new GeneratedCoreExtension(
383-
__DIR__ . '/../../var/cache',
387+
__DIR__ . '/../../../../var/cache',
384388
[
385389
ProfileCreated::class,
386390
],
387391
))
388-
->useExtension(new CryptographyExtension($cryptographer))
389392
->build();
390393

391394
$return = $hydrator->hydrate(ProfileCreated::class, $encryptedPayload);
392395

393-
self::assertEquals($object, $return);
396+
//self::assertEquals($object, $return);
394397
}
395398

396399
public function testEncrypt(): void
@@ -405,7 +408,7 @@ public function testEncrypt(): void
405408

406409
$metadataFactory = new AttributeMetadataFactory();
407410

408-
$cryptographer = $this->createMock(PayloadCryptographer::class);
411+
$cryptographer = $this->createMock(Cryptographer::class);
409412
$cryptographer
410413
->expects($this->once())
411414
->method('encrypt')
@@ -414,7 +417,7 @@ public function testEncrypt(): void
414417

415418
$hydrator = (new HydratorBuilder())
416419
->useExtension(new GeneratedCoreExtension(
417-
__DIR__ . '/../../var/cache',
420+
__DIR__ . '/../../../../var/cache',
418421
[
419422
ProfileCreated::class,
420423
],

tests/Unit/Middleware/GeneratedTransformerMiddlewareTest.php renamed to tests/Unit/Extension/Generated/GeneratedTransformerMiddlewareTest.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,18 +2,18 @@
22

33
declare(strict_types=1);
44

5-
namespace Patchlevel\Hydrator\Tests\Unit\Middleware;
5+
namespace Patchlevel\Hydrator\Tests\Unit\Extension\Generated;
66

7+
use Patchlevel\Hydrator\Extension\Generated\MiddlewareGenerator;
78
use Patchlevel\Hydrator\Metadata\AttributeMetadataFactory;
89
use Patchlevel\Hydrator\Metadata\ClassMetadata;
10+
use Patchlevel\Hydrator\MetadataHydrator;
911
use Patchlevel\Hydrator\Middleware\AttributeTransformMiddleware;
1012
use Patchlevel\Hydrator\Middleware\Stack;
1113
use Patchlevel\Hydrator\Middleware\TransformMiddleware;
1214
use Patchlevel\Hydrator\Tests\Unit\Fixture\Email;
1315
use Patchlevel\Hydrator\Tests\Unit\Fixture\ProfileCreated;
1416
use Patchlevel\Hydrator\Tests\Unit\Fixture\ProfileId;
15-
use Patchlevel\Hydrator\Middleware\MiddlewareGenerator;
16-
use Patchlevel\Hydrator\MetadataHydrator;
1717
use PHPUnit\Framework\Attributes\CoversClass;
1818
use PHPUnit\Framework\TestCase;
1919

@@ -22,7 +22,7 @@ class GeneratedTransformerMiddlewareTest extends TestCase
2222
{
2323
public function testHydrate(): void
2424
{
25-
$cachePath = __DIR__ . '/../../../var/cache';
25+
$cachePath = __DIR__ . '/../../../../var/cache';
2626
@mkdir($cachePath, 0777, true);
2727

2828
$metadataFactory = new AttributeMetadataFactory();

0 commit comments

Comments
 (0)