mirror of
https://gitlab.com/Chill-Projet/chill-bundles.git
synced 2025-06-12 13:24:25 +00:00
fix normalization for phonenumber on person when phonenumber is null
This commit is contained in:
parent
01c571ab06
commit
ccf7c885bb
@ -111,8 +111,7 @@ class SummaryBudget implements SummaryBudgetInterface
|
|||||||
$rsm
|
$rsm
|
||||||
->addScalarResult('sum', 'sum')
|
->addScalarResult('sum', 'sum')
|
||||||
->addScalarResult('type', 'type')
|
->addScalarResult('type', 'type')
|
||||||
->addScalarResult('comment', 'comment')
|
->addScalarResult('comment', 'comment');
|
||||||
;
|
|
||||||
|
|
||||||
return $rsm;
|
return $rsm;
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,54 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Chill is a software for social workers
|
||||||
|
*
|
||||||
|
* For the full copyright and license information, please view
|
||||||
|
* the LICENSE file that was distributed with this source code.
|
||||||
|
*/
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace Serializer\Normalizer;
|
||||||
|
|
||||||
|
use Chill\MainBundle\Serializer\Normalizer\PhonenumberNormalizer;
|
||||||
|
use libphonenumber\PhoneNumber;
|
||||||
|
use libphonenumber\PhoneNumberUtil;
|
||||||
|
use PHPUnit\Framework\TestCase;
|
||||||
|
use Prophecy\Argument;
|
||||||
|
use Prophecy\PhpUnit\ProphecyTrait;
|
||||||
|
use Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @internal
|
||||||
|
* @coversNothing
|
||||||
|
*/
|
||||||
|
final class PhonenumberNormalizerTest extends TestCase
|
||||||
|
{
|
||||||
|
use ProphecyTrait;
|
||||||
|
|
||||||
|
public function dataProviderNormalizePhonenumber()
|
||||||
|
{
|
||||||
|
$phonenumberUtil = PhoneNumberUtil::getInstance();
|
||||||
|
|
||||||
|
yield [$phonenumberUtil->parse('+32486123465'), 'docgen', ['docgen:expects' => PhoneNumber::class], '0486 12 34 65'];
|
||||||
|
|
||||||
|
yield [null, 'docgen', ['docgen:expects' => PhoneNumber::class], ''];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @dataProvider dataProviderNormalizePhonenumber
|
||||||
|
*
|
||||||
|
* @param mixed $format
|
||||||
|
* @param mixed $context
|
||||||
|
* @param mixed $expected
|
||||||
|
*/
|
||||||
|
public function testNormalize(?Phonenumber $phonenumber, $format, $context, $expected)
|
||||||
|
{
|
||||||
|
$parameterBag = $this->prophesize(ParameterBagInterface::class);
|
||||||
|
$parameterBag->get(Argument::exact('chill_main'))->willReturn(['phone_helper' => ['default_carrier_code' => 'BE']]);
|
||||||
|
$normalizer = new PhonenumberNormalizer($parameterBag->reveal());
|
||||||
|
|
||||||
|
$this->assertEquals($expected, $normalizer->normalize($phonenumber, $format, $context));
|
||||||
|
}
|
||||||
|
}
|
@ -23,6 +23,7 @@ use Chill\PersonBundle\Repository\Relationships\RelationshipRepository;
|
|||||||
use Chill\PersonBundle\Templating\Entity\PersonRenderInterface;
|
use Chill\PersonBundle\Templating\Entity\PersonRenderInterface;
|
||||||
use DateTimeInterface;
|
use DateTimeInterface;
|
||||||
use Doctrine\Common\Collections\ArrayCollection;
|
use Doctrine\Common\Collections\ArrayCollection;
|
||||||
|
use libphonenumber\PhoneNumber;
|
||||||
use Symfony\Component\Serializer\Exception\UnexpectedValueException;
|
use Symfony\Component\Serializer\Exception\UnexpectedValueException;
|
||||||
use Symfony\Component\Serializer\Normalizer\AbstractNormalizer;
|
use Symfony\Component\Serializer\Normalizer\AbstractNormalizer;
|
||||||
use Symfony\Component\Serializer\Normalizer\ContextAwareNormalizerInterface;
|
use Symfony\Component\Serializer\Normalizer\ContextAwareNormalizerInterface;
|
||||||
@ -71,6 +72,7 @@ class PersonDocGenNormalizer implements
|
|||||||
$dateContext = $context;
|
$dateContext = $context;
|
||||||
$dateContext['docgen:expects'] = DateTimeInterface::class;
|
$dateContext['docgen:expects'] = DateTimeInterface::class;
|
||||||
$addressContext = array_merge($context, ['docgen:expects' => Address::class]);
|
$addressContext = array_merge($context, ['docgen:expects' => Address::class]);
|
||||||
|
$phonenumberContext = array_merge($context, ['docgen:expects' => PhoneNumber::class]);
|
||||||
$personResourceContext = array_merge($context, [
|
$personResourceContext = array_merge($context, [
|
||||||
'docgen:expects' => Person\PersonResource::class,
|
'docgen:expects' => Person\PersonResource::class,
|
||||||
// we simplify the list of attributes for the embedded persons
|
// we simplify the list of attributes for the embedded persons
|
||||||
@ -113,9 +115,9 @@ class PersonDocGenNormalizer implements
|
|||||||
'maritalStatus' => null !== ($ms = $person->getMaritalStatus()) ? $this->translatableStringHelper->localize($ms->getName()) : '',
|
'maritalStatus' => null !== ($ms = $person->getMaritalStatus()) ? $this->translatableStringHelper->localize($ms->getName()) : '',
|
||||||
'maritalStatusDate' => $this->normalizer->normalize($person->getMaritalStatusDate(), $format, $dateContext),
|
'maritalStatusDate' => $this->normalizer->normalize($person->getMaritalStatusDate(), $format, $dateContext),
|
||||||
'email' => $person->getEmail(),
|
'email' => $person->getEmail(),
|
||||||
'firstPhoneNumber' => $this->normalizer->normalize($person->getPhonenumber() ?? $person->getMobilenumber(), $format, $context),
|
'firstPhoneNumber' => $this->normalizer->normalize($person->getPhonenumber() ?? $person->getMobilenumber(), $format, $phonenumberContext),
|
||||||
'fixPhoneNumber' => $this->normalizer->normalize($person->getPhonenumber(), $format, $context),
|
'fixPhoneNumber' => $this->normalizer->normalize($person->getPhonenumber(), $format, $phonenumberContext),
|
||||||
'mobilePhoneNumber' => $this->normalizer->normalize($person->getMobilenumber(), $format, $context),
|
'mobilePhoneNumber' => $this->normalizer->normalize($person->getMobilenumber(), $format, $phonenumberContext),
|
||||||
'nationality' => null !== ($c = $person->getNationality()) ? $this->translatableStringHelper->localize($c->getName()) : '',
|
'nationality' => null !== ($c = $person->getNationality()) ? $this->translatableStringHelper->localize($c->getName()) : '',
|
||||||
'placeOfBirth' => $person->getPlaceOfBirth(),
|
'placeOfBirth' => $person->getPlaceOfBirth(),
|
||||||
'memo' => $person->getMemo(),
|
'memo' => $person->getMemo(),
|
||||||
|
Loading…
x
Reference in New Issue
Block a user