minor #35847 [Notifier] Add unit tests (jschaedl)
This PR was merged into the 5.0 branch.
Discussion
----------
[Notifier] Add unit tests
| Q | A
| ------------- | ---
| Branch? | 5.0
| Bug fix? | no
| New feature? | no <!-- please update src/**/CHANGELOG.md files -->
| Deprecations? | no <!-- please update UPGRADE-*.md and src/**/CHANGELOG.md files -->
| Tickets | - <!-- prefix each issue number with "Fix #", if any -->
| License | MIT
| Doc PR | - <!-- required for new features -->
- [x] `AbstractChannel`
- [x] `ChannelPolicy`
- [x] `RecipientTest` (done in PR #35773)
- [x] `EmailRecipientTest` (done in PR #35773)
- [x] `SmsRecipientTest` (done in PR #35773)
- [x] `Transports` (see PR #35834)
Commits
-------
022c1707e2
[Notifier] Add tests for AbstractChannel and ChannelPolicy
This commit is contained in:
commit
16ed2b9f7d
@ -0,0 +1,44 @@
|
|||||||
|
<?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\Tests\Channel;
|
||||||
|
|
||||||
|
use PHPUnit\Framework\TestCase;
|
||||||
|
use Symfony\Component\Notifier\Channel\AbstractChannel;
|
||||||
|
use Symfony\Component\Notifier\Exception\LogicException;
|
||||||
|
use Symfony\Component\Notifier\Notification\Notification;
|
||||||
|
use Symfony\Component\Notifier\Recipient\Recipient;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Jan Schädlich <jan.schaedlich@sensiolabs.de>
|
||||||
|
*/
|
||||||
|
class AbstractChannelTest extends TestCase
|
||||||
|
{
|
||||||
|
public function testChannelCannotBeConstructedWithoutTransportAndBus()
|
||||||
|
{
|
||||||
|
$this->expectException(LogicException::class);
|
||||||
|
|
||||||
|
new DummyChannel();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class DummyChannel extends AbstractChannel
|
||||||
|
{
|
||||||
|
public function notify(Notification $notification, Recipient $recipient, string $transportName = null): void
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function supports(Notification $notification, Recipient $recipient): bool
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,48 @@
|
|||||||
|
<?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\Tests\Channel;
|
||||||
|
|
||||||
|
use PHPUnit\Framework\TestCase;
|
||||||
|
use Symfony\Component\Notifier\Channel\ChannelPolicy;
|
||||||
|
use Symfony\Component\Notifier\Exception\InvalidArgumentException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Jan Schädlich <jan.schaedlich@sensiolabs.de>
|
||||||
|
*/
|
||||||
|
class ChannelPolicyTest extends TestCase
|
||||||
|
{
|
||||||
|
public function testCannotRetrieveChannelsUsingUnavailableImportance()
|
||||||
|
{
|
||||||
|
$this->expectException(InvalidArgumentException::class);
|
||||||
|
|
||||||
|
$channelPolicy = new ChannelPolicy(['urgent' => ['chat']]);
|
||||||
|
$channelPolicy->getChannels('low');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @dataProvider provideValidPolicies
|
||||||
|
*/
|
||||||
|
public function testCanRetrieveChannels(array $policy, string $importance, array $expectedChannels)
|
||||||
|
{
|
||||||
|
$channelPolicy = new ChannelPolicy($policy);
|
||||||
|
$channels = $channelPolicy->getChannels($importance);
|
||||||
|
|
||||||
|
$this->assertSame($expectedChannels, $channels);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function provideValidPolicies(): \Generator
|
||||||
|
{
|
||||||
|
yield [['urgent' => ['chat']], 'urgent', ['chat']];
|
||||||
|
yield [['urgent' => ['chat', 'sms']], 'urgent', ['chat', 'sms']];
|
||||||
|
yield [['urgent' => ['chat', 'chat/slack', 'sms']], 'urgent', ['chat', 'chat/slack', 'sms']];
|
||||||
|
}
|
||||||
|
}
|
Reference in New Issue
Block a user