address: add country aware renderCountryLine (make tests failing)

This commit is contained in:
nobohan 2022-01-06 21:31:02 +01:00
parent d14edd469e
commit 73f11ccb1a
2 changed files with 37 additions and 14 deletions

View File

@ -14,6 +14,7 @@ namespace Chill\MainBundle\Templating\Entity;
use Chill\MainBundle\Entity\Address; use Chill\MainBundle\Entity\Address;
use Chill\MainBundle\Templating\TranslatableStringHelper; use Chill\MainBundle\Templating\TranslatableStringHelper;
use Symfony\Component\Templating\EngineInterface; use Symfony\Component\Templating\EngineInterface;
use Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface;
use function array_merge; use function array_merge;
use function strtr; use function strtr;
@ -32,11 +33,16 @@ class AddressRender implements ChillEntityRenderInterface
private EngineInterface $templating; private EngineInterface $templating;
private TranslatableStringHelper $translatableStringHelper; private TranslatableStringHelper $translatableStringHelper;
protected ParameterBagInterface $parameterBag;
public function __construct(EngineInterface $templating, TranslatableStringHelper $translatableStringHelper) public function __construct(
{ EngineInterface $templating,
TranslatableStringHelper $translatableStringHelper,
ParameterBagInterface $parameterBag
) {
$this->templating = $templating; $this->templating = $templating;
$this->translatableStringHelper = $translatableStringHelper; $this->translatableStringHelper = $translatableStringHelper;
$this->parameterBag = $parameterBag;
} }
/** /**
@ -180,9 +186,16 @@ class AddressRender implements ChillEntityRenderInterface
private function renderCountryLine($addr): ?string private function renderCountryLine($addr): ?string
{ {
return $this->translatableStringHelper->localize( $preferredCountries = $this->parameterBag->get('chill_main.available_countries');
$addr->getPostCode()->getCountry()->getName()
); if (in_array($addr->getPostCode()->getCountry()->getCountryCode(), $preferredCountries)) {
$res = null;
} else {
$res = $this->translatableStringHelper->localize(
$addr->getPostCode()->getCountry()->getName()
);
}
return $res;
} }
private function renderDeliveryLine($addr): ?string private function renderDeliveryLine($addr): ?string

View File

@ -19,6 +19,7 @@ use Iterator;
use Symfony\Bundle\FrameworkBundle\Test\KernelTestCase; use Symfony\Bundle\FrameworkBundle\Test\KernelTestCase;
use Symfony\Component\Templating\EngineInterface; use Symfony\Component\Templating\EngineInterface;
use Chill\MainBundle\Templating\TranslatableStringHelper; use Chill\MainBundle\Templating\TranslatableStringHelper;
use Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface;
/** /**
* @internal * @internal
@ -74,7 +75,8 @@ final class AddressRenderTest extends KernelTestCase
{ {
$engine = self::$container->get(EngineInterface::class); $engine = self::$container->get(EngineInterface::class);
$translatableStringHelper = self::$container->get(TranslatableStringHelper::class); $translatableStringHelper = self::$container->get(TranslatableStringHelper::class);
$renderer = new AddressRender($engine, $translatableStringHelper); $parameterBag = self::$container->get(ParameterBagInterface::class);
$renderer = new AddressRender($engine, $translatableStringHelper, $parameterBag);
$this->assertEquals($expectedString, $renderer->renderString($addr, [])); $this->assertEquals($expectedString, $renderer->renderString($addr, []));
@ -88,7 +90,8 @@ final class AddressRenderTest extends KernelTestCase
{ {
$engine = self::$container->get(EngineInterface::class); $engine = self::$container->get(EngineInterface::class);
$translatableStringHelper = self::$container->get(TranslatableStringHelper::class); $translatableStringHelper = self::$container->get(TranslatableStringHelper::class);
$renderer = new AddressRender($engine, $translatableStringHelper); $parameterBag = self::$container->get(ParameterBagInterface::class);
$renderer = new AddressRender($engine, $translatableStringHelper, $parameterBag);
$this->assertEquals($expectedString, $renderer->renderString($addr, [])); $this->assertEquals($expectedString, $renderer->renderString($addr, []));
@ -154,7 +157,8 @@ final class AddressRenderTest extends KernelTestCase
{ {
$engine = self::$container->get(EngineInterface::class); $engine = self::$container->get(EngineInterface::class);
$translatableStringHelper = self::$container->get(TranslatableStringHelper::class); $translatableStringHelper = self::$container->get(TranslatableStringHelper::class);
$renderer = new AddressRender($engine, $translatableStringHelper); $parameterBag = self::$container->get(ParameterBagInterface::class);
$renderer = new AddressRender($engine, $translatableStringHelper, $parameterBag);
$this->assertEquals($expectedString, $renderer->renderString($addr, [])); $this->assertEquals($expectedString, $renderer->renderString($addr, []));
@ -168,7 +172,8 @@ final class AddressRenderTest extends KernelTestCase
{ {
$engine = self::$container->get(EngineInterface::class); $engine = self::$container->get(EngineInterface::class);
$translatableStringHelper = self::$container->get(TranslatableStringHelper::class); $translatableStringHelper = self::$container->get(TranslatableStringHelper::class);
$renderer = new AddressRender($engine, $translatableStringHelper); $parameterBag = self::$container->get(ParameterBagInterface::class);
$renderer = new AddressRender($engine, $translatableStringHelper, $parameterBag);
$this->assertEquals($expectedString, $renderer->renderString($addr, [])); $this->assertEquals($expectedString, $renderer->renderString($addr, []));
@ -224,7 +229,8 @@ final class AddressRenderTest extends KernelTestCase
{ {
$engine = self::$container->get(EngineInterface::class); $engine = self::$container->get(EngineInterface::class);
$translatableStringHelper = self::$container->get(TranslatableStringHelper::class); $translatableStringHelper = self::$container->get(TranslatableStringHelper::class);
$renderer = new AddressRender($engine, $translatableStringHelper); $parameterBag = self::$container->get(ParameterBagInterface::class);
$renderer = new AddressRender($engine, $translatableStringHelper, $parameterBag);
$this->assertEquals($expectedString, $renderer->renderString($addr, [])); $this->assertEquals($expectedString, $renderer->renderString($addr, []));
@ -238,7 +244,8 @@ final class AddressRenderTest extends KernelTestCase
{ {
$engine = self::$container->get(EngineInterface::class); $engine = self::$container->get(EngineInterface::class);
$translatableStringHelper = self::$container->get(TranslatableStringHelper::class); $translatableStringHelper = self::$container->get(TranslatableStringHelper::class);
$renderer = new AddressRender($engine, $translatableStringHelper); $parameterBag = self::$container->get(ParameterBagInterface::class);
$renderer = new AddressRender($engine, $translatableStringHelper, $parameterBag);
$this->assertEquals($expectedString, $renderer->renderString($addr, [])); $this->assertEquals($expectedString, $renderer->renderString($addr, []));
@ -293,7 +300,8 @@ final class AddressRenderTest extends KernelTestCase
{ {
$engine = self::$container->get(EngineInterface::class); $engine = self::$container->get(EngineInterface::class);
$translatableStringHelper = self::$container->get(TranslatableStringHelper::class); $translatableStringHelper = self::$container->get(TranslatableStringHelper::class);
$renderer = new AddressRender($engine, $translatableStringHelper); $parameterBag = self::$container->get(ParameterBagInterface::class);
$renderer = new AddressRender($engine, $translatableStringHelper, $parameterBag);
$this->assertEquals($expectedString, $renderer->renderString($addr, [])); $this->assertEquals($expectedString, $renderer->renderString($addr, []));
@ -307,7 +315,8 @@ final class AddressRenderTest extends KernelTestCase
{ {
$engine = self::$container->get(EngineInterface::class); $engine = self::$container->get(EngineInterface::class);
$translatableStringHelper = self::$container->get(TranslatableStringHelper::class); $translatableStringHelper = self::$container->get(TranslatableStringHelper::class);
$renderer = new AddressRender($engine, $translatableStringHelper); $parameterBag = self::$container->get(ParameterBagInterface::class);
$renderer = new AddressRender($engine, $translatableStringHelper, $parameterBag);
$this->assertEquals($expectedString, $renderer->renderString($addr, [])); $this->assertEquals($expectedString, $renderer->renderString($addr, []));
@ -338,7 +347,8 @@ final class AddressRenderTest extends KernelTestCase
{ {
$engine = self::$container->get(EngineInterface::class); $engine = self::$container->get(EngineInterface::class);
$translatableStringHelper = self::$container->get(TranslatableStringHelper::class); $translatableStringHelper = self::$container->get(TranslatableStringHelper::class);
$renderer = new AddressRender($engine, $translatableStringHelper); $parameterBag = self::$container->get(ParameterBagInterface::class);
$renderer = new AddressRender($engine, $translatableStringHelper, $parameterBag);
$this->assertEquals($expectedString, $renderer->renderString($addr, [])); $this->assertEquals($expectedString, $renderer->renderString($addr, []));