mirror of
				https://gitlab.com/Chill-Projet/chill-bundles.git
				synced 2025-10-31 17:28:23 +00:00 
			
		
		
		
	Compare commits
	
		
			11 Commits
		
	
	
		
			404-action
			...
			issue309_a
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|  | 5e1dfee70f | ||
|  | 73f11ccb1a | ||
|  | d14edd469e | ||
|  | fd40ae0198 | ||
|  | 7d20f842a2 | ||
|  | e82a71b833 | ||
|  | 3b20ac85d9 | ||
|  | 6bae7606dd | ||
|  | 4c4a003977 | ||
|  | 077317c2bf | ||
|  | 3c2ebee12a | 
| @@ -60,6 +60,8 @@ class Address | ||||
|     /** | ||||
|      * @var string|null | ||||
|      * | ||||
|      * used for the CEDEX information | ||||
|      * | ||||
|      * @ORM\Column(type="string", length=255, nullable=true) | ||||
|      * @Groups({"write"}) | ||||
|      */ | ||||
|   | ||||
| @@ -2,21 +2,28 @@ | ||||
|    <component :is="component" class="chill-entity entity-address my-3"> | ||||
|  | ||||
|       <component :is="component" class="address" :class="multiline"> | ||||
|          <p v-if="address.text" | ||||
|             class="street"> | ||||
|             {{ address.text }}, | ||||
|          </p> | ||||
|          <p v-if="address.postcode" | ||||
|             class="postcode"> | ||||
|             {{ address.postcode.code }} {{ address.postcode.name }} | ||||
|          </p> | ||||
|          <p v-if="address.country" | ||||
|             class="country"> | ||||
|             {{ address.country.name.fr }} | ||||
|          </p> | ||||
|          <div v-if="isMultiline === true"> | ||||
|             <p v-for="(l, i) in address.lines" :key="`line-${i}`"> | ||||
|                {{ l }} | ||||
|             </p> | ||||
|          </div> | ||||
|          <div v-else> | ||||
|             <p v-if="address.text" | ||||
|                class="street"> | ||||
|                {{ address.text }} | ||||
|             </p> | ||||
|             <p v-if="address.postcode" | ||||
|                class="postcode"> | ||||
|                {{ address.postcode.code }} {{ address.postcode.name }} | ||||
|             </p> | ||||
|             <p v-if="address.country" | ||||
|                class="country"> | ||||
|                {{ address.country.name.fr }} | ||||
|             </p> | ||||
|          </div> | ||||
|       </component> | ||||
|  | ||||
|       <div v-if="isMultiline === true" class="address-more"> | ||||
|       <!-- <div v-if="isMultiline === true" class="address-more"> | ||||
|          <div v-if="address.floor"> | ||||
|             <span class="floor"> | ||||
|                <b>{{ $t('floor') }}</b>: {{ address.floor }} | ||||
| @@ -52,7 +59,7 @@ | ||||
|                   <b>{{ $t('distribution') }}</b>: {{ address.distribution }} | ||||
|                </span> | ||||
|          </div> | ||||
|       </div> | ||||
|       </div> --> | ||||
|  | ||||
|       <div v-if="useDatePane === true" class="address-more"> | ||||
|          <div v-if="address.validFrom"> | ||||
|   | ||||
| @@ -13,53 +13,19 @@ | ||||
|  | ||||
| #} | ||||
|  | ||||
| {% macro raw(address, options, streetLine) %} | ||||
|  | ||||
|     {% if address.street is not empty %} | ||||
|         <p>{{ streetLine }}</p> | ||||
|     {% endif %} | ||||
|     {% if options['extended_infos'] %} | ||||
|         {{ _self.extended(address, options) }} | ||||
|     {% endif %} | ||||
|     {% if address.postCode is not empty %} | ||||
|         <p class="postcode"> | ||||
|             <span class="code">{{ address.postCode.code }}</span> | ||||
|             <span class="name">{{ address.postCode.name }}</span> | ||||
|         </p> | ||||
|         <p class="country">{{ address.postCode.country.name|localize_translatable_string }}</p> | ||||
|     {% endif %} | ||||
| {% macro raw(lines) %} | ||||
|     {% for l in lines %} | ||||
|         <p>{{ l }}</p> | ||||
|     {% endfor %} | ||||
| {% endmacro %} | ||||
|  | ||||
| {% macro extended(address, options) %} | ||||
|     {% if address.floor is not empty %} | ||||
|         <span class="floor">{{ 'address more.floor'|trans }} {{ address.floor }}</span> | ||||
|     {% endif %} | ||||
|     {% if address.corridor is not empty %} | ||||
|         <span class="corridor">{{ 'address more.corridor'|trans }} {{ address.corridor }}</span> | ||||
|     {% endif %} | ||||
|     {% if address.steps is not empty %} | ||||
|         <span class="steps">{{ 'address more.steps'|trans }} {{ address.steps }}</span> | ||||
|     {% endif %} | ||||
|     {% if address.buildingName is not empty %} | ||||
|         <span class="buildingName">{{ 'address more.buildingName'|trans }} {{ address.buildingName }}</span> | ||||
|     {% endif %} | ||||
|     {% if address.flat is not empty %} | ||||
|         <span class="flat">{{ 'address more.flat'|trans }} {{ address.flat }}</span> | ||||
|     {% endif %} | ||||
|     {% if address.extra is not empty %} | ||||
|         <span class="extra">{{ 'address more.extra'|trans }} {{ address.extra }}</span> | ||||
|     {% endif %} | ||||
|     {% if address.distribution is not empty %} | ||||
|         <span class="distribution">{{ 'address more.distribution'|trans }} {{ address.distribution }}</span> | ||||
|     {% endif %} | ||||
| {% endmacro %} | ||||
|  | ||||
| {% macro inline(address, options, streetLine) %} | ||||
| {% macro inline(address, options, streetLine, lines) %} | ||||
|     {% if options['has_no_address'] == true and address.isNoAddress == true %} | ||||
|         {% if address.postCode is not empty %} | ||||
|             <p class="postcode"> | ||||
|                 <span class="code">{{ address.postCode.code }}</span> | ||||
|                 <span class="name">{{ address.postCode.name }}</span> | ||||
|                 <span class="name">{{ address.distribution }}</span> | ||||
|             </p> | ||||
|             <p class="country">{{ address.postCode.country.name|localize_translatable_string }}</p> | ||||
|         {% endif %} | ||||
| @@ -67,9 +33,25 @@ | ||||
|             {{ 'address.consider homeless'|trans }} | ||||
|         </span> | ||||
|     {% else %} | ||||
|         <span class="address{% if options['multiline'] %} multiline{% endif %}{% if options['with_delimiter'] %} delimiter{% endif %}"> | ||||
|             {{ _self.raw(address, options, streetLine) }} | ||||
|         </span> | ||||
|         {% if options['extended_infos'] %} | ||||
|             <span class="address{% if options['multiline'] %} multiline{% endif %}{% if options['with_delimiter'] %} delimiter{% endif %}"> | ||||
|             {{ _self.raw(lines) }} | ||||
|             </span> | ||||
|         {% else %} | ||||
|             <span class="address{% if options['multiline'] %} multiline{% endif %}{% if options['with_delimiter'] %} delimiter{% endif %}"> | ||||
|             {% if address.street is not empty %} | ||||
|                 <p>{{ streetLine }}</p> | ||||
|             {% endif %} | ||||
|             {% if address.postCode is not empty %} | ||||
|                 <p class="postcode"> | ||||
|                     <span class="code">{{ address.postCode.code }}</span> | ||||
|                     <span class="name">{{ address.postCode.name }}</span> | ||||
|                     <span class="name">{{ address.distribution }}</span> | ||||
|                 </p> | ||||
|                 <p class="country">{{ address.postCode.country.name|localize_translatable_string }}</p> | ||||
|             {% endif %} | ||||
|             </span> | ||||
|         {% endif %} | ||||
|     {% endif %} | ||||
|     {{ _self.validity(address, options) }} | ||||
| {% endmacro %} | ||||
| @@ -97,7 +79,7 @@ | ||||
|         {% if options['with_picto'] %} | ||||
|             <i class="fa fa-li fa-map-marker"></i> | ||||
|         {% endif %} | ||||
|         {{ _self.inline(address, options, streetLine) }} | ||||
|         {{ _self.inline(address, options, streetLine, lines) }} | ||||
|     </li> | ||||
| {%- endif -%} | ||||
|  | ||||
| @@ -106,7 +88,7 @@ | ||||
|         {% if options['with_picto'] %} | ||||
|             <i class="fa fa-fw fa-map-marker"></i> | ||||
|         {% endif %} | ||||
|         {{ _self.inline(address, options, streetLine) }} | ||||
|         {{ _self.inline(address, options, streetLine, lines) }} | ||||
|     </span> | ||||
| {%- endif -%} | ||||
|  | ||||
| @@ -118,6 +100,7 @@ | ||||
|                 <p class="postcode"> | ||||
|                     <span class="code">{{ address.postCode.code }}</span> | ||||
|                     <span class="name">{{ address.postCode.name }}</span> | ||||
|                     <span class="name">{{ address.distribution }}</span> | ||||
|                 </p> | ||||
|                 <p class="country">{{ address.postCode.country.name|localize_translatable_string }}</p> | ||||
|             </div>     | ||||
| @@ -131,7 +114,7 @@ | ||||
|                 {% if options['with_picto'] %} | ||||
|                     <i class="fa fa-fw fa-map-marker"></i> | ||||
|                 {% endif %} | ||||
|                 {{ _self.raw(address, options, streetLine) }} | ||||
|                 {{ _self.raw(lines) }} | ||||
|             </div> | ||||
|         {% endif %} | ||||
|         {{ _self.validity(address, options) }} | ||||
|   | ||||
| @@ -13,6 +13,7 @@ namespace Chill\MainBundle\Serializer\Normalizer; | ||||
|  | ||||
| use Chill\DocGeneratorBundle\Serializer\Helper\NormalizeNullValueHelper; | ||||
| use Chill\MainBundle\Entity\Address; | ||||
| use Chill\MainBundle\Templating\Entity\AddressRender; | ||||
| use DateTimeInterface; | ||||
| use Symfony\Component\Serializer\Exception\UnexpectedValueException; | ||||
| use Symfony\Component\Serializer\Normalizer\AbstractNormalizer; | ||||
| @@ -46,6 +47,13 @@ class AddressNormalizer implements ContextAwareNormalizerInterface, NormalizerAw | ||||
|         'validTo' => DateTimeInterface::class, | ||||
|     ]; | ||||
|  | ||||
|     private AddressRender $addressRender; | ||||
|  | ||||
|     public function __construct(AddressRender $addressRender) | ||||
|     { | ||||
|         $this->addressRender = $addressRender; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @param Address $address | ||||
|      * @param null|string $format | ||||
| @@ -53,19 +61,10 @@ class AddressNormalizer implements ContextAwareNormalizerInterface, NormalizerAw | ||||
|     public function normalize($address, $format = null, array $context = []) | ||||
|     { | ||||
|         if ($address instanceof Address) { | ||||
|             $text = $address->isNoAddress() ? '' : $address->getStreet() . ', ' . $address->getStreetNumber(); | ||||
|  | ||||
|             if (null !== $address->getPostCode()->getCountry()->getCountryCode()) { | ||||
|                 if ($address->getPostCode()->getCountry()->getCountryCode() === 'FR') { | ||||
|                     $text = $address->isNoAddress() ? '' : $address->getStreetNumber() . ', ' . $address->getStreet(); | ||||
|                 } else { | ||||
|                     $text = $address->isNoAddress() ? '' : $address->getStreetNumber() . ', ' . $address->getStreet(); | ||||
|                 } | ||||
|             } | ||||
|  | ||||
|             $data = [ | ||||
|                 'address_id' => $address->getId(), | ||||
|                 'text' => $text, | ||||
|                 'text' => $address->isNoAddress() ? null : $this->addressRender->renderStreetLine($address, []), | ||||
|                 'street' => $address->getStreet(), | ||||
|                 'streetNumber' => $address->getStreetNumber(), | ||||
|                 'postcode' => [ | ||||
| @@ -85,6 +84,7 @@ class AddressNormalizer implements ContextAwareNormalizerInterface, NormalizerAw | ||||
|                 'buildingName' => $address->getBuildingName(), | ||||
|                 'distribution' => $address->getDistribution(), | ||||
|                 'extra' => $address->getExtra(), | ||||
|                 'lines' => $this->addressRender->renderLines($address), | ||||
|             ]; | ||||
|  | ||||
|             if ('json' === $format) { | ||||
|   | ||||
| @@ -12,7 +12,9 @@ declare(strict_types=1); | ||||
| 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; | ||||
| @@ -30,10 +32,17 @@ class AddressRender implements ChillEntityRenderInterface | ||||
|     ]; | ||||
|  | ||||
|     private EngineInterface $templating; | ||||
|     private TranslatableStringHelper $translatableStringHelper; | ||||
|     protected ParameterBagInterface $parameterBag; | ||||
|  | ||||
|     public function __construct(EngineInterface $templating) | ||||
|     { | ||||
|     public function __construct( | ||||
|         EngineInterface $templating, | ||||
|         TranslatableStringHelper $translatableStringHelper, | ||||
|         ParameterBagInterface $parameterBag | ||||
|     ) { | ||||
|         $this->templating = $templating; | ||||
|         $this->translatableStringHelper = $translatableStringHelper; | ||||
|         $this->parameterBag = $parameterBag; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
| @@ -50,27 +59,45 @@ class AddressRender implements ChillEntityRenderInterface | ||||
|                 'streetLine' => $this->renderStreetLine($addr), | ||||
|                 'render' => $options['render'] ?? 'bloc', | ||||
|                 'options' => $options, | ||||
|                 'lines' => $this->renderLines($addr), | ||||
|             ]); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @param Address addr | ||||
|      * @param mixed $addr | ||||
|      * | ||||
|      * @return string[] | ||||
|      */ | ||||
|     public function renderLines($addr): array | ||||
|     { | ||||
|         $lines = []; | ||||
|         if (null !== $addr->getPostCode()) { | ||||
|             if ($addr->getPostCode()->getCountry()->getCountryCode() === 'FR') { | ||||
|                 $lines[] = $this->renderIntraBuildingLine($addr); | ||||
|                 $lines[] = $this->renderBuildingLine($addr); | ||||
|                 $lines[] = $this->renderStreetLine($addr); | ||||
|                 $lines[] = $this->renderDeliveryLine($addr); | ||||
|                 $lines[] = $this->renderCityLine($addr); | ||||
|                 $lines[] = $this->renderCountryLine($addr); | ||||
|             } else { | ||||
|                 $lines[] = $this->renderBuildingLine($addr); | ||||
|                 $lines[] = $this->renderDeliveryLine($addr); | ||||
|                 $lines[] = $this->renderStreetLine($addr); | ||||
|                 $lines[] = $this->renderCityLine($addr); | ||||
|                 $lines[] = $this->renderCountryLine($addr); | ||||
|             } | ||||
|         } | ||||
|         return array_values(array_filter($lines, fn ($l) => null !== $l)); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @param Address addr | ||||
|      * @param mixed $addr | ||||
|      */ | ||||
|     public function renderString($addr, array $options): string | ||||
|     { | ||||
|         $lines = []; | ||||
|  | ||||
|         $lines[0] = $this->renderStreetLine($addr); | ||||
|  | ||||
|         if (!empty($addr->getPostcode())) { | ||||
|             $lines[1] = strtr('{postcode} {label}', [ | ||||
|                 '{postcode}' => $addr->getPostcode()->getCode(), | ||||
|                 '{label}' => $addr->getPostcode()->getName(), | ||||
|             ]); | ||||
|         } | ||||
|  | ||||
|         return implode(' - ', $lines); | ||||
|         return implode(' - ', $this->renderLines($addr)); | ||||
|     } | ||||
|  | ||||
|     public function supports($entity, array $options): bool | ||||
| @@ -78,7 +105,7 @@ class AddressRender implements ChillEntityRenderInterface | ||||
|         return $entity instanceof Address; | ||||
|     } | ||||
|  | ||||
|     private function renderStreetLine($addr): string | ||||
|     public function renderStreetLine($addr): ?string | ||||
|     { | ||||
|         if (!empty($addr->getStreet())) { | ||||
|             $street = $addr->getStreet(); | ||||
| @@ -100,10 +127,107 @@ class AddressRender implements ChillEntityRenderInterface | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         if (',' === $res) { | ||||
|             $res = ''; | ||||
|         if ((',' === $res) || ('' === $res)) { | ||||
|             $res = null; | ||||
|         } | ||||
|  | ||||
|         return $res; | ||||
|     } | ||||
|  | ||||
|     private function renderBuildingLine($addr): ?string | ||||
|     { | ||||
|  | ||||
|         if (!empty($addr->getBuildingName())) { | ||||
|             $building = $addr->getBuildingName(); | ||||
|         } else { | ||||
|             $building = ''; | ||||
|         } | ||||
|  | ||||
|         if (!empty($this->renderIntraBuildingLine($addr))) { | ||||
|             $intraBuilding = $this->renderIntraBuildingLine($addr); | ||||
|         } else { | ||||
|             $intraBuilding = ''; | ||||
|         } | ||||
|  | ||||
|         $res = trim($building . ' - ' . $intraBuilding, ' - '); | ||||
|  | ||||
|         if ('' === $res) { | ||||
|             $res = null; | ||||
|         } | ||||
|  | ||||
|         if (null !== $addr->getPostCode()->getCountry()->getCountryCode()) { | ||||
|             if ($addr->getPostCode()->getCountry()->getCountryCode() === 'FR') { | ||||
|                 $res = $addr->getBuildingName(); | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         return $res; | ||||
|     } | ||||
|  | ||||
|     private function renderCityLine($addr): string | ||||
|     { | ||||
|         if (!empty($addr->getPostcode())) { | ||||
|             $res = strtr('{postcode} {label}', [ | ||||
|                 '{postcode}' => $addr->getPostcode()->getCode(), | ||||
|                 '{label}' => $addr->getPostcode()->getName(), | ||||
|             ]); | ||||
|         } | ||||
|  | ||||
|         if (null !== $addr->getPostCode()->getCountry()->getCountryCode()) { | ||||
|             if ($addr->getPostCode()->getCountry()->getCountryCode() === 'FR') { | ||||
|                 if ($addr->getDistribution()) { | ||||
|                     $res = $res . ' ' . $addr->getDistribution(); | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         return $res; | ||||
|     } | ||||
|  | ||||
|     private function renderCountryLine($addr): ?string | ||||
|     { | ||||
|         $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 | ||||
|     { | ||||
|         return $addr->getExtra(); | ||||
|     } | ||||
|  | ||||
|     private function renderIntraBuildingLine($addr): ?string | ||||
|     { | ||||
|         $arr = []; | ||||
|  | ||||
|         if ($addr->getFlat()) { | ||||
|             $arr[] = 'appart ' . $addr->getFlat(); | ||||
|         } | ||||
|  | ||||
|         if ($addr->getFloor()) { | ||||
|             $arr[] = 'ét ' . $addr->getFloor(); | ||||
|         } | ||||
|  | ||||
|         if ($addr->getCorridor()) { | ||||
|             $arr[] = 'coul ' . $addr->getCorridor(); | ||||
|         } | ||||
|  | ||||
|         if ($addr->getSteps()) { | ||||
|             $arr[] = 'esc ' . $addr->getSteps(); | ||||
|         } | ||||
|  | ||||
|         $res = implode(' - ', $arr); | ||||
|         if ('' === $res) { | ||||
|             $res = null; | ||||
|         } | ||||
|         return $res; | ||||
|     } | ||||
|  | ||||
| } | ||||
|   | ||||
| @@ -18,6 +18,8 @@ use Chill\MainBundle\Templating\Entity\AddressRender; | ||||
| 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 | ||||
| @@ -25,16 +27,27 @@ use Symfony\Component\Templating\EngineInterface; | ||||
|  */ | ||||
| final class AddressRenderTest extends KernelTestCase | ||||
| { | ||||
|  | ||||
|     protected function setUp(): void | ||||
|     { | ||||
|         self::bootKernel(); | ||||
|         $this->parameterBag = self::$container->get(ParameterBagInterface::class); | ||||
|     } | ||||
|     // protected function setUp() | ||||
|     // { | ||||
|     //    self::bootKernel(); | ||||
|     //    $this->jWTEncoder = self::$container->get('App\Services\TokenProvider'); | ||||
|     // } | ||||
|  | ||||
|     public function addressDataProvider(): Iterator | ||||
|     //     static::bootKernel(); | ||||
|     // $container = self::$kernel->getContainer()->get('test.service_container'); | ||||
|     // $twig      = $container->get('twig'); | ||||
|  | ||||
|     public function simpleAddressDataProviderBE(): Iterator | ||||
|     { | ||||
|         $addr = new Address(); | ||||
|         $country = (new Country()) | ||||
|             ->setName(['fr' => 'Pays']) | ||||
|             ->setName(['fr' => 'Belgium']) | ||||
|             ->setCountryCode('BE'); | ||||
|         $postCode = new PostalCode(); | ||||
|         $postCode->setName('Locality') | ||||
| @@ -45,20 +58,373 @@ final class AddressRenderTest extends KernelTestCase | ||||
|             ->setStreetNumber('5') | ||||
|             ->setPostcode($postCode); | ||||
|  | ||||
|         yield [$addr, 'Rue ABC, 5 - 012345 Locality']; | ||||
|         $parameterBag = self::$container->get(ParameterBagInterface::class); | ||||
|         $preferredCountries = $parameterBag->get('chill_main.available_countries'); | ||||
|         if (in_array($addr->getPostCode()->getCountry()->getCountryCode(), $preferredCountries)) { | ||||
|             $expected = [$addr, 'Rue ABC, 5 - 012345 Locality']; | ||||
|         } else { | ||||
|             $expected = [$addr, 'Rue ABC, 5 - 012345 Locality - Belgium']; | ||||
|         } | ||||
|         yield $expected; | ||||
|     } | ||||
|  | ||||
|     public function simpleAddressDataProviderFR(): Iterator | ||||
|     { | ||||
|         $addr = new Address(); | ||||
|         $country = (new Country()) | ||||
|             ->setName(['fr' => 'France']) | ||||
|             ->setCountryCode('FR'); | ||||
|         $postCode = new PostalCode(); | ||||
|         $postCode->setName('Locality') | ||||
|             ->setCode('012345') | ||||
|             ->setCountry($country); | ||||
|  | ||||
|         $addr->setStreet('Rue ABC') | ||||
|             ->setStreetNumber('5') | ||||
|             ->setPostcode($postCode); | ||||
|  | ||||
|         $preferredCountries = $this->parameterBag->get('chill_main.available_countries'); | ||||
|  | ||||
|         if (in_array($addr->getPostCode()->getCountry()->getCountryCode(), $preferredCountries)) { | ||||
|             $expected = [$addr, '5, Rue ABC - 012345 Locality']; | ||||
|         } else { | ||||
|             $expected = [$addr, '5, Rue ABC - 012345 Locality - France']; | ||||
|         } | ||||
|  | ||||
|         yield $expected; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @dataProvider addressDataProvider | ||||
|      * @dataProvider simpleAddressDataProviderBE | ||||
|      */ | ||||
|     public function testRenderString(Address $addr, string $expectedString): void | ||||
|     public function testRenderStringSimpleAddressBE(Address $addr, string $expectedString): void | ||||
|     { | ||||
|         $engine = self::$container->get(EngineInterface::class); | ||||
|         $renderer = new AddressRender($engine); | ||||
|         $translatableStringHelper = self::$container->get(TranslatableStringHelper::class); | ||||
|         $parameterBag = self::$container->get(ParameterBagInterface::class); | ||||
|         $renderer = new AddressRender($engine, $translatableStringHelper, $parameterBag); | ||||
|  | ||||
|         $this->assertEquals($expectedString, $renderer->renderString($addr, [])); | ||||
|  | ||||
|         return; | ||||
|         $this->assertIsString($renderer->renderBox($addr, [])); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @dataProvider simpleAddressDataProviderFR | ||||
|      */ | ||||
|     public function testRenderStringSimpleAddressFR(Address $addr, string $expectedString): void | ||||
|     { | ||||
|         $engine = self::$container->get(EngineInterface::class); | ||||
|         $translatableStringHelper = self::$container->get(TranslatableStringHelper::class); | ||||
|         $parameterBag = self::$container->get(ParameterBagInterface::class); | ||||
|         $renderer = new AddressRender($engine, $translatableStringHelper, $parameterBag); | ||||
|  | ||||
|         $this->assertEquals($expectedString, $renderer->renderString($addr, [])); | ||||
|  | ||||
|         return; | ||||
|     } | ||||
|  | ||||
|     // public function complexAddressDataProviderBE(): Iterator | ||||
|     // { | ||||
|     //     $addr = new Address(); | ||||
|     //     $country = (new Country()) | ||||
|     //         ->setName(['fr' => 'Belgium']) | ||||
|     //         ->setCountryCode('BE'); | ||||
|     //     $postCode = new PostalCode(); | ||||
|     //     $postCode->setName('Locality') | ||||
|     //         ->setCode('012345') | ||||
|     //         ->setCountry($country); | ||||
|  | ||||
|     //     $addr->setStreet('Rue ABC') | ||||
|     //         ->setStreetNumber('5') | ||||
|     //         ->setPostcode($postCode); | ||||
|          | ||||
|     //     $addr->setBuildingName('Résidence "Les Bleuets"'); | ||||
|     //     $addr->setFlat('1'); | ||||
|     //     $addr->setFloor('2'); | ||||
|     //     $addr->setCorridor('3'); | ||||
|     //     $addr->setSteps('4'); | ||||
|  | ||||
|     //     $preferredCountries = $this->parameterBag->get('chill_main.available_countries'); | ||||
|     //     if (in_array($addr->getPostCode()->getCountry()->getCountryCode(), $preferredCountries)) { | ||||
|     //         $expected = [$addr, 'Résidence "Les Bleuets" - appart 1 - ét 2 - coul 3 - esc 4 - Rue ABC, 5 - 012345 Locality']; | ||||
|     //     } else { | ||||
|     //         $expected = [$addr, 'Résidence "Les Bleuets" - appart 1 - ét 2 - coul 3 - esc 4 - Rue ABC, 5 - 012345 Locality - Belgium']; | ||||
|     //     } | ||||
|     //     yield $expected; | ||||
|     // } | ||||
|  | ||||
|  | ||||
|     // public function complexAddressDataProviderFR(): Iterator | ||||
|     // { | ||||
|     //     $addr = new Address(); | ||||
|     //     $country = (new Country()) | ||||
|     //         ->setName(['fr' => 'France']) | ||||
|     //         ->setCountryCode('FR'); | ||||
|     //     $postCode = new PostalCode(); | ||||
|     //     $postCode->setName('Locality') | ||||
|     //         ->setCode('012345') | ||||
|     //         ->setCountry($country); | ||||
|  | ||||
|     //     $addr->setStreet('Rue ABC') | ||||
|     //         ->setStreetNumber('5') | ||||
|     //         ->setPostcode($postCode); | ||||
|          | ||||
|     //     $addr->setBuildingName('Résidence "Les Bleuets"'); | ||||
|     //     $addr->setFlat('1'); | ||||
|     //     $addr->setFloor('2'); | ||||
|     //     $addr->setCorridor('3'); | ||||
|     //     $addr->setSteps('4'); | ||||
|     //     $addr->setExtra('A droite de la porte'); | ||||
|     //     $addr->setDistribution('CEDEX'); | ||||
|  | ||||
|     //     $preferredCountries = $this->parameterBag->get('chill_main.available_countries'); | ||||
|     //     if (in_array($addr->getPostCode()->getCountry()->getCountryCode(), $preferredCountries)) { | ||||
|     //         $expected = [$addr, 'appart 1 - ét 2 - coul 3 - esc 4 - Résidence "Les Bleuets" - 5, Rue ABC - A droite de la porte - 012345 Locality CEDEX']; | ||||
|     //     } else { | ||||
|     //         $expected = [$addr, 'appart 1 - ét 2 - coul 3 - esc 4 - Résidence "Les Bleuets" - 5, Rue ABC - A droite de la porte - 012345 Locality CEDEX - France']; | ||||
|     //     } | ||||
|     //     yield $expected; | ||||
|     // } | ||||
|  | ||||
|     // /** | ||||
|     //  * @dataProvider complexAddressDataProviderBE | ||||
|     //  */ | ||||
|     // public function testRenderComplexAddressBE(Address $addr, string $expectedString): void | ||||
|     // { | ||||
|     //     $engine = self::$container->get(EngineInterface::class); | ||||
|     //     $translatableStringHelper = self::$container->get(TranslatableStringHelper::class); | ||||
|     //     $parameterBag = self::$container->get(ParameterBagInterface::class); | ||||
|     //     $renderer = new AddressRender($engine, $translatableStringHelper, $parameterBag); | ||||
|  | ||||
|     //     $this->assertEquals($expectedString, $renderer->renderString($addr, [])); | ||||
|  | ||||
|     //     return; | ||||
|     // } | ||||
|  | ||||
|     // /** | ||||
|     //  * @dataProvider complexAddressDataProviderFR | ||||
|     //  */ | ||||
|     // public function testRenderComplexAddressFR(Address $addr, string $expectedString): void | ||||
|     // { | ||||
|     //     $engine = self::$container->get(EngineInterface::class); | ||||
|     //     $translatableStringHelper = self::$container->get(TranslatableStringHelper::class); | ||||
|     //     $parameterBag = self::$container->get(ParameterBagInterface::class); | ||||
|     //     $renderer = new AddressRender($engine, $translatableStringHelper, $parameterBag); | ||||
|  | ||||
|     //     $this->assertEquals($expectedString, $renderer->renderString($addr, [])); | ||||
|  | ||||
|     //     return; | ||||
|     // } | ||||
|  | ||||
|  | ||||
|     // public function addressDataProviderBEWithBuilding(): Iterator | ||||
|     // { | ||||
|     //     $addr = new Address(); | ||||
|     //     $country = (new Country()) | ||||
|     //         ->setName(['fr' => 'Belgium']) | ||||
|     //         ->setCountryCode('BE'); | ||||
|     //     $postCode = new PostalCode(); | ||||
|     //     $postCode->setName('Locality') | ||||
|     //         ->setCode('012345') | ||||
|     //         ->setCountry($country); | ||||
|  | ||||
|     //     $addr->setStreet('Rue ABC') | ||||
|     //         ->setStreetNumber('5') | ||||
|     //         ->setPostcode($postCode); | ||||
|          | ||||
|     //     $addr->setBuildingName('Résidence "Les Bleuets"'); | ||||
|  | ||||
|     //     $preferredCountries = $this->parameterBag->get('chill_main.available_countries'); | ||||
|     //     if (in_array($addr->getPostCode()->getCountry()->getCountryCode(), $preferredCountries)) { | ||||
|     //         $expected = [$addr, 'Résidence "Les Bleuets" - Rue ABC, 5 - 012345 Locality']; | ||||
|     //     } else { | ||||
|     //         $expected = [$addr, 'Résidence "Les Bleuets" - Rue ABC, 5 - 012345 Locality - Belgium']; | ||||
|     //     } | ||||
|     //     yield $expected; | ||||
|  | ||||
|     // } | ||||
|  | ||||
|  | ||||
|     // public function addressDataProviderFRWithBuilding(): Iterator | ||||
|     // { | ||||
|     //     $addr = new Address(); | ||||
|     //     $country = (new Country()) | ||||
|     //         ->setName(['fr' => 'France']) | ||||
|     //         ->setCountryCode('FR'); | ||||
|     //     $postCode = new PostalCode(); | ||||
|     //     $postCode->setName('Locality') | ||||
|     //         ->setCode('012345') | ||||
|     //         ->setCountry($country); | ||||
|  | ||||
|     //     $addr->setStreet('Rue ABC') | ||||
|     //         ->setStreetNumber('5') | ||||
|     //         ->setPostcode($postCode); | ||||
|          | ||||
|     //     $addr->setBuildingName('Résidence "Les Bleuets"'); | ||||
|  | ||||
|     //     $preferredCountries = $this->parameterBag->get('chill_main.available_countries'); | ||||
|     //     if (in_array($addr->getPostCode()->getCountry()->getCountryCode(), $preferredCountries)) { | ||||
|     //         $expected = [$addr, 'Résidence "Les Bleuets" - 5, Rue ABC - 012345 Locality']; | ||||
|     //     } else { | ||||
|     //         $expected = [$addr, 'Résidence "Les Bleuets" - 5, Rue ABC - 012345 Locality - France']; | ||||
|     //     } | ||||
|     //     yield $expected; | ||||
|  | ||||
|     // } | ||||
|  | ||||
|     // /** | ||||
|     //  * @dataProvider addressDataProviderBEWithBuilding | ||||
|     //  */ | ||||
|     // public function testRenderWithBuildingAddressBE(Address $addr, string $expectedString): void | ||||
|     // { | ||||
|     //     $engine = self::$container->get(EngineInterface::class); | ||||
|     //     $translatableStringHelper = self::$container->get(TranslatableStringHelper::class); | ||||
|     //     $parameterBag = self::$container->get(ParameterBagInterface::class); | ||||
|     //     $renderer = new AddressRender($engine, $translatableStringHelper, $parameterBag); | ||||
|  | ||||
|     //     $this->assertEquals($expectedString, $renderer->renderString($addr, [])); | ||||
|  | ||||
|     //     return; | ||||
|     // } | ||||
|  | ||||
|     // /** | ||||
|     //  * @dataProvider addressDataProviderFRWithBuilding | ||||
|     //  */ | ||||
|     // public function testRenderWithBuildingAddressFR(Address $addr, string $expectedString): void | ||||
|     // { | ||||
|     //     $engine = self::$container->get(EngineInterface::class); | ||||
|     //     $translatableStringHelper = self::$container->get(TranslatableStringHelper::class); | ||||
|     //     $parameterBag = self::$container->get(ParameterBagInterface::class); | ||||
|     //     $renderer = new AddressRender($engine, $translatableStringHelper, $parameterBag); | ||||
|  | ||||
|     //     $this->assertEquals($expectedString, $renderer->renderString($addr, [])); | ||||
|  | ||||
|     //     return; | ||||
|     // } | ||||
|  | ||||
|     // public function addressDataProviderBEWithSteps(): Iterator | ||||
|     // { | ||||
|     //     $addr = new Address(); | ||||
|     //     $country = (new Country()) | ||||
|     //         ->setName(['fr' => 'Belgium']) | ||||
|     //         ->setCountryCode('BE'); | ||||
|     //     $postCode = new PostalCode(); | ||||
|     //     $postCode->setName('Locality') | ||||
|     //         ->setCode('012345') | ||||
|     //         ->setCountry($country); | ||||
|  | ||||
|     //     $addr->setStreet('Rue ABC') | ||||
|     //         ->setStreetNumber('5') | ||||
|     //         ->setPostcode($postCode); | ||||
|          | ||||
|     //     $addr->setSteps('4'); | ||||
|  | ||||
|     //     $preferredCountries = $this->parameterBag->get('chill_main.available_countries'); | ||||
|     //     if (in_array($addr->getPostCode()->getCountry()->getCountryCode(), $preferredCountries)) { | ||||
|     //         $expected = [$addr, 'esc 4 - Rue ABC, 5 - 012345 Locality']; | ||||
|     //     } else { | ||||
|     //         $expected = [$addr, 'esc 4 - Rue ABC, 5 - 012345 Locality - Belgium']; | ||||
|     //     } | ||||
|     //     yield $expected; | ||||
|  | ||||
|     // } | ||||
|  | ||||
|  | ||||
|     // public function addressDataProviderFRWithSteps(): Iterator | ||||
|     // { | ||||
|     //     $addr = new Address(); | ||||
|     //     $country = (new Country()) | ||||
|     //         ->setName(['fr' => 'France']) | ||||
|     //         ->setCountryCode('FR'); | ||||
|     //     $postCode = new PostalCode(); | ||||
|     //     $postCode->setName('Locality') | ||||
|     //         ->setCode('012345') | ||||
|     //         ->setCountry($country); | ||||
|  | ||||
|     //     $addr->setStreet('Rue ABC') | ||||
|     //         ->setStreetNumber('5') | ||||
|     //         ->setPostcode($postCode); | ||||
|          | ||||
|     //     $addr->setSteps('4'); | ||||
|  | ||||
|     //     $preferredCountries = $this->parameterBag->get('chill_main.available_countries'); | ||||
|     //     if (in_array($addr->getPostCode()->getCountry()->getCountryCode(), $preferredCountries)) { | ||||
|     //         $expected = [$addr, 'esc 4 - 5, Rue ABC - 012345 Locality']; | ||||
|     //     } else { | ||||
|     //         $expected = [$addr, 'esc 4 - 5, Rue ABC - 012345 Locality - France']; | ||||
|     //     } | ||||
|     //     yield $expected; | ||||
|  | ||||
|     // } | ||||
|  | ||||
|     // /** | ||||
|     //  * @dataProvider addressDataProviderBEWithSteps | ||||
|     //  */ | ||||
|     // public function testRenderWithStepsAddressBE(Address $addr, string $expectedString): void | ||||
|     // { | ||||
|     //     $engine = self::$container->get(EngineInterface::class); | ||||
|     //     $translatableStringHelper = self::$container->get(TranslatableStringHelper::class); | ||||
|     //     $parameterBag = self::$container->get(ParameterBagInterface::class); | ||||
|     //     $renderer = new AddressRender($engine, $translatableStringHelper, $parameterBag); | ||||
|  | ||||
|     //     $this->assertEquals($expectedString, $renderer->renderString($addr, [])); | ||||
|  | ||||
|     //     return; | ||||
|     // } | ||||
|  | ||||
|     // /** | ||||
|     //  * @dataProvider addressDataProviderFRWithSteps | ||||
|     //  */ | ||||
|     // public function testRenderWithStepsAddressFR(Address $addr, string $expectedString): void | ||||
|     // { | ||||
|     //     $engine = self::$container->get(EngineInterface::class); | ||||
|     //     $translatableStringHelper = self::$container->get(TranslatableStringHelper::class); | ||||
|     //     $parameterBag = self::$container->get(ParameterBagInterface::class); | ||||
|     //     $renderer = new AddressRender($engine, $translatableStringHelper, $parameterBag); | ||||
|  | ||||
|     //     $this->assertEquals($expectedString, $renderer->renderString($addr, [])); | ||||
|  | ||||
|     //     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); | ||||
|  | ||||
|     //     $preferredCountries = $this->parameterBag->get('chill_main.available_countries'); | ||||
|     //     if (in_array($addr->getPostCode()->getCountry()->getCountryCode(), $preferredCountries)) { | ||||
|     //         $expected = [$addr, '012345 Locality']; | ||||
|     //     } else { | ||||
|     //         $expected = [$addr, '012345 Locality - Belgium']; | ||||
|     //     } | ||||
|     //     yield $expected; | ||||
|  | ||||
|     // } | ||||
|  | ||||
|     // /** | ||||
|     //  * @dataProvider noFullAddressDataProviderBE | ||||
|     //  */ | ||||
|     // public function testRenderNoFullAddressBE(Address $addr, string $expectedString): void | ||||
|     // { | ||||
|     //     $engine = self::$container->get(EngineInterface::class); | ||||
|     //     $translatableStringHelper = self::$container->get(TranslatableStringHelper::class); | ||||
|     //     $parameterBag = self::$container->get(ParameterBagInterface::class); | ||||
|     //     $renderer = new AddressRender($engine, $translatableStringHelper, $parameterBag); | ||||
|  | ||||
|     //     $this->assertEquals($expectedString, $renderer->renderString($addr, [])); | ||||
|  | ||||
|     //     return; | ||||
|     // } | ||||
|  | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user