ebs/tests/Unit/Notifier/SmsNotifierTest.php
2026-04-30 14:50:12 +02:00

38 lines
1.2 KiB
PHP

<?php
declare(strict_types=1);
namespace App\Tests\Unit\Notifier;
use App\Entity\User;
use App\Notifier\SmsNotifier;
use Monolog\Test\MonologTestCase;
use PHPUnit\Framework\MockObject\MockObject;
use Psr\Log\LoggerInterface;
use Symfony\Component\HttpClient\Response\MockResponse;
use Symfony\Component\Notifier\Exception\TransportException;
use Symfony\Component\Notifier\TexterInterface;
final class SmsNotifierTest extends MonologTestCase
{
public function testNotify(): void
{
/** @var TexterInterface&MockObject $texterMock */
$texterMock = $this->getMockBuilder(TexterInterface::class)
->disableOriginalConstructor()
->getMock();
$texterMock->method('send')
->willThrowException(new TransportException('invalid number', new MockResponse('foobar')));
$loggerMock = $this->getMockBuilder(LoggerInterface::class)
->disableOriginalConstructor()
->getMock();
$notifier = new SmsNotifier($texterMock, $loggerMock);
$user = new User();
$user->setSmsNotifications(true)
->setPhoneNumber('+33610101010');
$sentMessage = $notifier->notify($user, 'subject');
self::assertNull($sentMessage);
}
}