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\Templating\TranslatableStringHelper;
use Symfony\Component\Templating\EngineInterface;
use Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface;
use function array_merge;
use function strtr;
@ -32,11 +33,16 @@ class AddressRender implements ChillEntityRenderInterface
private EngineInterface $templating;
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->translatableStringHelper = $translatableStringHelper;
$this->parameterBag = $parameterBag;
}
/**
@ -180,10 +186,17 @@ class AddressRender implements ChillEntityRenderInterface
private function renderCountryLine($addr): ?string
{
return $this->translatableStringHelper->localize(
$preferredCountries = $this->parameterBag->get('chill_main.available_countries');
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
{

View File

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