From 4dfde6ae7cff453e12412dfb10732ab05f3555e3 Mon Sep 17 00:00:00 2001 From: Fabien Potencier Date: Thu, 6 Aug 2020 06:49:51 +0200 Subject: [PATCH] [Notifier] Make Freemobile config more flexible --- .../Bridge/FreeMobile/FreeMobileTransport.php | 4 ++-- .../Tests/FreeMobileTransportTest.php | 18 +++++++++++------- 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/src/Symfony/Component/Notifier/Bridge/FreeMobile/FreeMobileTransport.php b/src/Symfony/Component/Notifier/Bridge/FreeMobile/FreeMobileTransport.php index 674aea299a971..e40d3b1f454e9 100644 --- a/src/Symfony/Component/Notifier/Bridge/FreeMobile/FreeMobileTransport.php +++ b/src/Symfony/Component/Notifier/Bridge/FreeMobile/FreeMobileTransport.php @@ -37,7 +37,7 @@ public function __construct(string $login, string $password, string $phone, Http { $this->login = $login; $this->password = $password; - $this->phone = $phone; + $this->phone = str_replace('+33', '0', $phone); parent::__construct($client, $dispatcher); } @@ -49,7 +49,7 @@ public function __toString(): string public function supports(MessageInterface $message): bool { - return $message instanceof SmsMessage && $this->phone === $message->getPhone(); + return $message instanceof SmsMessage && $this->phone === str_replace('+33', '0', $message->getPhone()); } protected function doSend(MessageInterface $message): SentMessage diff --git a/src/Symfony/Component/Notifier/Bridge/FreeMobile/Tests/FreeMobileTransportTest.php b/src/Symfony/Component/Notifier/Bridge/FreeMobile/Tests/FreeMobileTransportTest.php index 58b279b999f7d..952a20f10e88c 100644 --- a/src/Symfony/Component/Notifier/Bridge/FreeMobile/Tests/FreeMobileTransportTest.php +++ b/src/Symfony/Component/Notifier/Bridge/FreeMobile/Tests/FreeMobileTransportTest.php @@ -22,33 +22,37 @@ final class FreeMobileTransportTest extends TestCase { public function testToStringContainsProperties(): void { - $transport = $this->initTransport(); + $transport = $this->getTransport('0611223344'); $this->assertSame('freemobile://host.test?phone=0611223344', (string) $transport); } public function testSupportsMessageInterface(): void { - $transport = $this->initTransport(); + $transport = $this->getTransport('0611223344'); $this->assertTrue($transport->supports(new SmsMessage('0611223344', 'Hello!'))); + $this->assertTrue($transport->supports(new SmsMessage('+33611223344', 'Hello!'))); $this->assertFalse($transport->supports(new SmsMessage('0699887766', 'Hello!'))); $this->assertFalse($transport->supports($this->createMock(MessageInterface::class), 'Hello!')); + + $transport = $this->getTransport('+33611223344'); + + $this->assertTrue($transport->supports(new SmsMessage('0611223344', 'Hello!'))); + $this->assertTrue($transport->supports(new SmsMessage('+33611223344', 'Hello!'))); } public function testSendNonSmsMessageThrowsException(): void { - $transport = $this->initTransport(); + $transport = $this->getTransport('0611223344'); $this->expectException(LogicException::class); $transport->send(new SmsMessage('0699887766', 'Hello!')); } - private function initTransport(): FreeMobileTransport + private function getTransport(string $phone): FreeMobileTransport { - return (new FreeMobileTransport( - 'login', 'pass', '0611223344', $this->createMock(HttpClientInterface::class) - ))->setHost('host.test'); + return (new FreeMobileTransport('login', 'pass', $phone, $this->createMock(HttpClientInterface::class)))->setHost('host.test'); } }