From cd7e4d64b78ac0ac26cd346434277a124dfb951d Mon Sep 17 00:00:00 2001 From: Vasilij Dusko Date: Sun, 20 Nov 2022 21:43:58 +0200 Subject: [PATCH] [Notifier] [SMSBiuras] `true`/`false` mismatch for `test_mode` option --- .../Bridge/SmsBiuras/SmsBiurasTransport.php | 2 +- .../Tests/SmsBiurasTransportTest.php | 78 +++++++++++++++++++ 2 files changed, 79 insertions(+), 1 deletion(-) diff --git a/src/Symfony/Component/Notifier/Bridge/SmsBiuras/SmsBiurasTransport.php b/src/Symfony/Component/Notifier/Bridge/SmsBiuras/SmsBiurasTransport.php index b47c5c216eba0..79b3268016f36 100644 --- a/src/Symfony/Component/Notifier/Bridge/SmsBiuras/SmsBiurasTransport.php +++ b/src/Symfony/Component/Notifier/Bridge/SmsBiuras/SmsBiurasTransport.php @@ -85,7 +85,7 @@ protected function doSend(MessageInterface $message): SentMessage 'apikey' => $this->apiKey, 'message' => $message->getSubject(), 'from' => $this->from, - 'test' => $this->testMode ? 0 : 1, + 'test' => $this->testMode ? 1 : 0, 'to' => $message->getPhone(), ], ]); diff --git a/src/Symfony/Component/Notifier/Bridge/SmsBiuras/Tests/SmsBiurasTransportTest.php b/src/Symfony/Component/Notifier/Bridge/SmsBiuras/Tests/SmsBiurasTransportTest.php index 494e66c3bca23..6e0461b9828e6 100644 --- a/src/Symfony/Component/Notifier/Bridge/SmsBiuras/Tests/SmsBiurasTransportTest.php +++ b/src/Symfony/Component/Notifier/Bridge/SmsBiuras/Tests/SmsBiurasTransportTest.php @@ -11,6 +11,7 @@ namespace Symfony\Component\Notifier\Bridge\SmsBiuras\Tests; +use Symfony\Component\HttpClient\MockHttpClient; use Symfony\Component\Notifier\Bridge\SmsBiuras\SmsBiurasTransport; use Symfony\Component\Notifier\Message\ChatMessage; use Symfony\Component\Notifier\Message\MessageInterface; @@ -18,6 +19,7 @@ use Symfony\Component\Notifier\Test\TransportTestCase; use Symfony\Component\Notifier\Transport\TransportInterface; use Symfony\Contracts\HttpClient\HttpClientInterface; +use Symfony\Contracts\HttpClient\ResponseInterface; final class SmsBiurasTransportTest extends TransportTestCase { @@ -44,4 +46,80 @@ public function unsupportedMessagesProvider(): iterable yield [new ChatMessage('Hello!')]; yield [$this->createMock(MessageInterface::class)]; } + + /** + * @dataProvider provideTestMode() + */ + public function testTestMode(array $expected, array $provided) + { + $message = new SmsMessage($provided['phone'], $provided['message']); + + $response = $this->createMock(ResponseInterface::class); + $response->expects($this->atLeast(1)) + ->method('getStatusCode') + ->willReturn(200); + $response->expects($this->atLeast(1)) + ->method('getContent') + ->willReturn('OK: 519545'); + + $client = new MockHttpClient(function (string $method, string $url, array $options = []) use ($response, $expected): ResponseInterface { + $this->assertSame('GET', $method); + $this->assertSame(sprintf( + 'https://savitarna.smsbiuras.lt/api?uid=uid&apikey=api_key&message=%s&from=from&test=%s&to=%s', + rawurlencode($expected['message']), + $expected['transport']['test_mode'], + rawurlencode($expected['phone']), + ), $url); + $this->assertSame($expected['transport']['test_mode'], $options['query']['test']); + + $this->assertSame(200, $response->getStatusCode()); + $this->assertSame('OK: 519545', $response->getContent()); + + return $response; + }); + + $transport = new SmsBiurasTransport('uid', 'api_key', 'from', $provided['transport']['test_mode'], $client); + + $sentMessage = $transport->send($message); + + $this->assertSame('519545', $sentMessage->getMessageId()); + } + + public static function provideTestMode(): array + { + return [ + [ + [ + 'phone' => '+37012345678', + 'message' => 'Hello world!', + 'transport' => [ + 'test_mode' => 0, + ], + ], + [ + 'phone' => '+37012345678', + 'message' => 'Hello world!', + 'transport' => [ + 'test_mode' => 0, + ], + ], + ], + [ + [ + 'phone' => '+37012345678', + 'message' => 'Hello world!', + 'transport' => [ + 'test_mode' => 1, + ], + ], + [ + 'phone' => '+37012345678', + 'message' => 'Hello world!', + 'transport' => [ + 'test_mode' => 1, + ], + ], + ], + ]; + } } pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy