From e82a71b833e5180979b13858070b4acbb4a7dc76 Mon Sep 17 00:00:00 2001 From: nobohan Date: Thu, 6 Jan 2022 15:29:42 +0100 Subject: [PATCH] address: use address lines in address normalizer + fix tests (for distribution) --- .../Serializer/Normalizer/AddressNormalizer.php | 11 ++++++++++- .../Templating/Entity/AddressRender.php | 2 +- .../Tests/Templating/Entity/AddressRenderTest.php | 5 +++-- 3 files changed, 14 insertions(+), 4 deletions(-) diff --git a/src/Bundle/ChillMainBundle/Serializer/Normalizer/AddressNormalizer.php b/src/Bundle/ChillMainBundle/Serializer/Normalizer/AddressNormalizer.php index f66eb4de6..e333743ff 100644 --- a/src/Bundle/ChillMainBundle/Serializer/Normalizer/AddressNormalizer.php +++ b/src/Bundle/ChillMainBundle/Serializer/Normalizer/AddressNormalizer.php @@ -13,6 +13,7 @@ namespace Chill\MainBundle\Serializer\Normalizer; use Chill\DocGeneratorBundle\Serializer\Helper\NormalizeNullValueHelper; use Chill\MainBundle\Entity\Address; +use Chill\MainBundle\Templating\Entity\AddressRender; use DateTimeInterface; use Symfony\Component\Serializer\Exception\UnexpectedValueException; use Symfony\Component\Serializer\Normalizer\AbstractNormalizer; @@ -46,6 +47,13 @@ class AddressNormalizer implements ContextAwareNormalizerInterface, NormalizerAw 'validTo' => DateTimeInterface::class, ]; + private AddressRender $addressRender; + + public function __construct(AddressRender $addressRender) + { + $this->addressRender = $addressRender; + } + /** * @param Address $address * @param null|string $format @@ -65,7 +73,7 @@ class AddressNormalizer implements ContextAwareNormalizerInterface, NormalizerAw $data = [ 'address_id' => $address->getId(), - 'text' => $text, + 'text' => $this->addressRender->renderString($address, []), 'street' => $address->getStreet(), 'streetNumber' => $address->getStreetNumber(), 'postcode' => [ @@ -85,6 +93,7 @@ class AddressNormalizer implements ContextAwareNormalizerInterface, NormalizerAw 'buildingName' => $address->getBuildingName(), 'distribution' => $address->getDistribution(), 'extra' => $address->getExtra(), + 'lines' => $this->addressRender->renderLines($address), ]; if ('json' === $format) { diff --git a/src/Bundle/ChillMainBundle/Templating/Entity/AddressRender.php b/src/Bundle/ChillMainBundle/Templating/Entity/AddressRender.php index 895f516ba..4ae7fe2ff 100644 --- a/src/Bundle/ChillMainBundle/Templating/Entity/AddressRender.php +++ b/src/Bundle/ChillMainBundle/Templating/Entity/AddressRender.php @@ -141,7 +141,7 @@ class AddressRender implements ChillEntityRenderInterface if (null !== $addr->getPostCode()->getCountry()->getCountryCode()) { if ($addr->getPostCode()->getCountry()->getCountryCode() === 'FR') { if ($addr->getDistribution()) { - $res = $res . $addr->getDistribution(); + $res = $res . ' ' . $addr->getDistribution(); } } } diff --git a/src/Bundle/ChillMainBundle/Tests/Templating/Entity/AddressRenderTest.php b/src/Bundle/ChillMainBundle/Tests/Templating/Entity/AddressRenderTest.php index 24d3a2e3a..7ff564e8e 100644 --- a/src/Bundle/ChillMainBundle/Tests/Templating/Entity/AddressRenderTest.php +++ b/src/Bundle/ChillMainBundle/Tests/Templating/Entity/AddressRenderTest.php @@ -141,9 +141,10 @@ final class AddressRenderTest extends KernelTestCase $addr->setFloor('2'); $addr->setCorridor('3'); $addr->setSteps('4'); + $addr->setExtra('A droite de la porte'); + $addr->setDistribution('CEDEX'); - - yield [$addr, 'appart 1 - ét 2 - coul 3 - esc 4 - Résidence "Les Bleuets" - 5, Rue ABC - 012345 Locality - France']; + yield [$addr, 'appart 1 - ét 2 - coul 3 - esc 4 - Résidence "Les Bleuets" - 5, Rue ABC - A droite de la porte - 012345 Locality CEDEX - France']; } /**