From fd40ae01980ae954e1ac5da5f59c94744772cc91 Mon Sep 17 00:00:00 2001 From: nobohan Date: Thu, 6 Jan 2022 18:30:21 +0100 Subject: [PATCH] address: fix address lines in case of noAddress + add test --- .../Templating/Entity/AddressRender.php | 6 ++-- .../Templating/Entity/AddressRenderTest.php | 30 +++++++++++++++++++ 2 files changed, 33 insertions(+), 3 deletions(-) diff --git a/src/Bundle/ChillMainBundle/Templating/Entity/AddressRender.php b/src/Bundle/ChillMainBundle/Templating/Entity/AddressRender.php index 4ae7fe2ff..afbe2f30d 100644 --- a/src/Bundle/ChillMainBundle/Templating/Entity/AddressRender.php +++ b/src/Bundle/ChillMainBundle/Templating/Entity/AddressRender.php @@ -188,7 +188,7 @@ class AddressRender implements ChillEntityRenderInterface return $res; } - private function renderStreetLine($addr): string + private function renderStreetLine($addr): ?string { if (!empty($addr->getStreet())) { $street = $addr->getStreet(); @@ -210,8 +210,8 @@ class AddressRender implements ChillEntityRenderInterface } } - if (',' === $res) { - $res = ''; + if ((',' === $res) || ('' === $res)) { + $res = null; } return $res; diff --git a/src/Bundle/ChillMainBundle/Tests/Templating/Entity/AddressRenderTest.php b/src/Bundle/ChillMainBundle/Tests/Templating/Entity/AddressRenderTest.php index 7ff564e8e..c4d3fd3a7 100644 --- a/src/Bundle/ChillMainBundle/Tests/Templating/Entity/AddressRenderTest.php +++ b/src/Bundle/ChillMainBundle/Tests/Templating/Entity/AddressRenderTest.php @@ -314,5 +314,35 @@ final class AddressRenderTest extends KernelTestCase return; } + public function noFullAddressDataProviderBE(): Iterator + { + $addr = new Address(); + $country = (new Country()) + ->setName(['fr' => 'Belgium']) + ->setCountryCode('BE'); + $postCode = new PostalCode(); + $postCode->setName('Locality') + ->setCode('012345') + ->setCountry($country); + + $addr->setPostcode($postCode) + ->setIsNoAddress(true); + + yield [$addr, '012345 Locality - Belgium']; + } + + /** + * @dataProvider noFullAddressDataProviderBE + */ + public function testRenderNoFullAddressBE(Address $addr, string $expectedString): void + { + $engine = self::$container->get(EngineInterface::class); + $translatableStringHelper = self::$container->get(TranslatableStringHelper::class); + $renderer = new AddressRender($engine, $translatableStringHelper); + + $this->assertEquals($expectedString, $renderer->renderString($addr, [])); + + return; + } }