address: fix address lines in case of noAddress + add test

This commit is contained in:
nobohan 2022-01-06 18:30:21 +01:00
parent 7d20f842a2
commit fd40ae0198
2 changed files with 33 additions and 3 deletions

View File

@ -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;

View File

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