phonenumber helper: remove unused method and fix tests

This commit is contained in:
Julien Fastré 2022-03-02 16:27:55 +01:00
parent 3e30684198
commit 5ce62f5458
3 changed files with 6 additions and 167 deletions

View File

@ -22,8 +22,6 @@ use libphonenumber\PhoneNumber;
*/
interface PhoneNumberHelperInterface
{
public function denormalize(PhoneNumber $phoneNumber): string;
public function format(PhoneNumber $phonenumber): string;
/**
@ -54,5 +52,4 @@ interface PhoneNumberHelperInterface
*/
public function isValidPhonenumberMobile(string $phonenumber): bool;
public function normalize(string $phoneNumber): string;
}

View File

@ -73,11 +73,6 @@ final class PhonenumberHelper implements PhoneNumberHelperInterface
$this->phoneNumberUtil = PhoneNumberUtil::getInstance();
}
public function denormalize(PhoneNumber $phoneNumber): string
{
return $this->format($phoneNumber);
}
/**
* @param string $phoneNumber A national phone number starting with +
*
@ -167,78 +162,6 @@ final class PhonenumberHelper implements PhoneNumberHelperInterface
return 'mobile' === $validation;
}
public function normalize(string $phoneNumber): string
{
$phoneUtil = PhoneNumberUtil::getInstance();
return $phoneUtil
->format(
$phoneUtil->parse($phoneNumber, $this->config['default_carrier_code']),
PhoneNumberFormat::E164
);
}
private function performTwilioFormat($phonenumber)
{
if (false === $this->isPhonenumberValidationConfigured()) {
return $phonenumber;
}
// filter only number
$filtered = preg_replace('/[^0-9]/', '', $phonenumber);
$item = $this->cachePool->getItem('pnum_format_nat_' . $filtered);
if ($item->isHit()) {
return $item->get();
}
try {
$response = $this->twilioClient->get(sprintf(self::FORMAT_URI, '+' . $filtered), [
'http_errors' => true,
]);
} catch (ClientException $e) {
$response = $e->getResponse();
$this->logger->error('[phonenumber helper] Could not format number '
. 'due to client error', [
'message' => $response->getBody()->getContents(),
'status_code' => $response->getStatusCode(),
'phonenumber' => $phonenumber,
]);
return $phonenumber;
} catch (ServerException $e) {
$response = $e->getResponse();
$this->logger->error('[phonenumber helper] Could not format number '
. 'due to server error', [
'message' => $response->getBody()->getContents(),
'status_code' => $response->getStatusCode(),
'phonenumber' => $phonenumber,
]);
return null;
} catch (ConnectException $e) {
$this->logger->error('[phonenumber helper] Could not format number '
. 'due to connect error', [
'message' => $e->getMessage(),
'phonenumber' => $phonenumber,
]);
return null;
}
$format = json_decode($response->getBody()->getContents())->national_format;
$item
->set($format)
// expires after 3d
->expiresAfter(3600 * 24 * 3);
$this->cachePool->save($item);
return $format;
}
private function performTwilioLookup($phonenumber)
{
if (false === $this->isPhonenumberValidationConfigured()) {

View File

@ -12,6 +12,8 @@ declare(strict_types=1);
namespace Chill\MainBundle\Tests\Routing\Loader;
use Chill\MainBundle\Phonenumber\PhonenumberHelper;
use libphonenumber\PhoneNumber;
use libphonenumber\PhoneNumberUtil;
use Psr\Log\NullLogger;
use Symfony\Bundle\FrameworkBundle\Test\KernelTestCase;
use Symfony\Component\Cache\Adapter\ArrayAdapter;
@ -23,21 +25,6 @@ use Symfony\Component\DependencyInjection\ParameterBag\ParameterBag;
*/
final class PhonenumberHelperTest extends KernelTestCase
{
public function denormalizePhonenumbers()
{
yield [
'BE',
'+3281136917',
'+3281136917',
];
yield [
'BE',
'+33 6 23 12 45 54',
'+33623124554',
];
}
public function formatPhonenumbers()
{
yield [
@ -55,72 +42,22 @@ final class PhonenumberHelperTest extends KernelTestCase
yield [
'FR',
'+32 81 13 69 17',
'081 13 69 17',
'00 32 81 13 69 17',
];
yield [
'BE',
'+33 6 23 12 45 54',
'06 23 12 45 54',
'00 33 6 23 12 45 54',
];
}
public function normalizePhonenumbers()
{
yield [
'BE',
'081136917',
'+3281136917',
];
yield [
'BE',
'003281136917',
'+3281136917',
];
yield [
'BE',
'0032478123456',
'+32478123456',
];
yield [
'BE',
'0478123456',
'+32478123456',
];
yield [
'FR',
'0623124554',
'+33623124554',
];
}
/**
* @dataProvider denormalizePhonenumbers
*/
public function testDenormalizePhonenumbers(string $defaultCarrierCode, string $phoneNumber, string $expected)
{
$subject = new PhonenumberHelper(
new ArrayAdapter(),
new ParameterBag([
'chill_main.phone_helper' => [
'default_carrier_code' => $defaultCarrierCode,
],
]),
new NullLogger()
);
$this->assertEquals($expected, $subject->denormalize($phoneNumber));
}
/**
* @dataProvider formatPhonenumbers
*/
public function testFormatPhonenumbers(string $defaultCarrierCode, string $phoneNumber, string $expected)
{
$util = PhoneNumberUtil::getInstance();
$subject = new PhonenumberHelper(
new ArrayAdapter(),
new ParameterBag([
@ -131,24 +68,6 @@ final class PhonenumberHelperTest extends KernelTestCase
new NullLogger()
);
$this->assertEquals($expected, $subject->format($phoneNumber));
}
/**
* @dataProvider normalizePhonenumbers
*/
public function testNormalizePhonenumbers(string $defaultCarrierCode, string $phoneNumber, string $expected)
{
$subject = new PhonenumberHelper(
new ArrayAdapter(),
new ParameterBag([
'chill_main.phone_helper' => [
'default_carrier_code' => $defaultCarrierCode,
],
]),
new NullLogger()
);
$this->assertEquals($expected, $subject->normalize($phoneNumber));
$this->assertEquals($expected, $subject->format($util->parse($phoneNumber)));
}
}