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; + } }