/
githubmirror
/
symfony
Обзор
Документация
Войти
/
githubmirror
/
symfony
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
8.2
src/Symfony/Component/Notifier/Bridge/SimpleTextin/Tests/SimpleTextinTransportTest.php
101 строка
3 KB
Christian Flothmann
Merge branch '8.0' into 8.1
05 янв 2026, 12:33
05 янв 2026, 12:33
4a5d8cf
Код
Авторство
О чём код?
<?php /* * This file is part of the Symfony package. * * (c) Fabien Potencier <fabien@symfony.com> * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Symfony\Component\Notifier\Bridge\SimpleTextin\Tests; use PHPUnit\Framework\Attributes\DataProvider; use Symfony\Component\HttpClient\MockHttpClient; use Symfony\Component\HttpClient\Response\MockResponse; use Symfony\Component\Notifier\Bridge\SimpleTextin\SimpleTextinTransport; use Symfony\Component\Notifier\Exception\InvalidArgumentException; use Symfony\Component\Notifier\Message\ChatMessage; use Symfony\Component\Notifier\Message\SmsMessage; use Symfony\Component\Notifier\Test\TransportTestCase; use Symfony\Component\Notifier\Tests\Transport\DummyMessage; use Symfony\Contracts\HttpClient\HttpClientInterface; use Symfony\Contracts\HttpClient\ResponseInterface; final class SimpleTextinTransportTest extends TransportTestCase { public static function createTransport(?HttpClientInterface $client = null, string $from = 'test_from'): SimpleTextinTransport { return new SimpleTextinTransport('test_api_key', $from, $client ?? new MockHttpClient()); } public static function invalidFromProvider(): iterable { yield 'no zero at start if phone number' => ['+0']; yield 'phone number too short' => ['+1']; } public static function supportedMessagesProvider(): iterable { yield [new SmsMessage('0611223344', 'Hello!')]; } #[DataProvider('invalidFromProvider')] public function testInvalidArgumentExceptionIsThrownIfFromIsInvalid(string $from) { $transport = $this->createTransport(null, $from); $this->expectException(InvalidArgumentException::class); $this->expectExceptionMessage(\sprintf('The "From" number "%s" is not a valid phone number.', $from)); $transport->send(new SmsMessage('+33612345678', 'Hello!')); } #[DataProvider('validFromProvider')] public function testNoInvalidArgumentExceptionIsThrownIfFromIsValid(string $from) { $message = new SmsMessage('+33612345678', 'Hello!'); $client = new MockHttpClient(static function (string $method, string $url): ResponseInterface { self::assertSame('POST', $method); self::assertSame('https://api-app2.simpletexting.com/v2/api/messages', $url); return new MockResponse(json_encode(['id' => 'foo']), ['http_code' => 201]); }); $transport = $this->createTransport($client, $from); $sentMessage = $transport->send($message); self::assertSame('foo', $sentMessage->getMessageId()); } public static function toStringProvider(): iterable { yield ['simpletextin://api-app2.simpletexting.com?from=test_from', self::createTransport()]; } public static function unsupportedMessagesProvider(): iterable { yield [new ChatMessage('Hello!')]; yield [new DummyMessage()]; } public static function validFromProvider(): iterable { yield ['+11']; yield ['+112']; yield ['+1123']; yield ['+11234']; yield ['+112345']; yield ['+1123456']; yield ['+11234567']; yield ['+112345678']; yield ['+1123456789']; yield ['+11234567891']; yield ['+112345678912']; yield ['+1123456789123']; yield ['+11234567891234']; yield ['+112345678912345']; } }