diff --git a/src/Symfony/Component/Notifier/Bridge/Esendex/EsendexTransport.php b/src/Symfony/Component/Notifier/Bridge/Esendex/EsendexTransport.php index e1fd0e3747c7b..51dd955090504 100644 --- a/src/Symfony/Component/Notifier/Bridge/Esendex/EsendexTransport.php +++ b/src/Symfony/Component/Notifier/Bridge/Esendex/EsendexTransport.php @@ -60,8 +60,10 @@ protected function doSend(MessageInterface $message): SentMessage $options = $message->getOptions()?->toArray() ?? []; $options['from'] = $message->getFrom() ?: $this->from; $options['messages'] = [ - 'to' => $message->getPhone(), - 'body' => $message->getSubject(), + [ + 'to' => $message->getPhone(), + 'body' => $message->getSubject(), + ], ]; $options['accountreference'] ??= $this->accountReference; diff --git a/src/Symfony/Component/Notifier/Bridge/Esendex/Tests/EsendexTransportTest.php b/src/Symfony/Component/Notifier/Bridge/Esendex/Tests/EsendexTransportTest.php index 878e4ae0c0818..851950f3d5a1f 100644 --- a/src/Symfony/Component/Notifier/Bridge/Esendex/Tests/EsendexTransportTest.php +++ b/src/Symfony/Component/Notifier/Bridge/Esendex/Tests/EsendexTransportTest.php @@ -102,4 +102,38 @@ public function testSendWithSuccessfulResponseDispatchesMessageEvent() $this->assertSame($messageId, $sentMessage->getMessageId()); } + + public function testSentMessageContainsAnArrayOfMessages() + { + $messageId = bin2hex(random_bytes(7)); + $response = $this->createMock(ResponseInterface::class); + $response->expects($this->exactly(2)) + ->method('getStatusCode') + ->willReturn(200); + $response->expects($this->once()) + ->method('getContent') + ->willReturn(json_encode(['batch' => ['messageheaders' => [['id' => $messageId]]]])); + + $requestOptions = []; + $client = new MockHttpClient(static function ($method, $url, $options) use (&$requestOptions, $response): ResponseInterface { + $requestOptions = $options; + + return $response; + }); + + $transport = self::createTransport($client); + + $transport->send(new SmsMessage('phone', 'testMessage')); + + $body = json_decode($requestOptions['body'] ?? ''); + + $messages = $body->messages; + $this->assertIsArray($messages); + $this->assertCount(1, $messages); + + $message = $messages[array_key_first($messages)]; + $this->assertIsObject($message); + $this->assertTrue(property_exists($message, 'to')); + $this->assertTrue(property_exists($message, 'body')); + } }