Skip to content

Commit e6825ca

Browse files
committed
[Mailer] added a way to test the number of queued emails
1 parent ff55f74 commit e6825ca

File tree

2 files changed

+20
-4
lines changed

2 files changed

+20
-4
lines changed

Test/MailerAssertionsTrait.php

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,11 @@ public static function assertEmailCount(int $count, string $transport = null, st
2525
self::assertThat(self::getMessageMailerEvents(), new MailerConstraint\EmailCount($count, $transport), $message);
2626
}
2727

28+
public static function assertQueuedEmailCount(int $count, string $transport = null, string $message = ''): void
29+
{
30+
self::assertThat(self::getMessageMailerEvents(), new MailerConstraint\EmailCount($count, $transport, true), $message);
31+
}
32+
2833
public static function assertEmailIsQueued(MessageEvent $event, string $message = ''): void
2934
{
3035
self::assertThat($event, new MailerConstraint\EmailIsQueued(), $message);

Tests/Functional/MailerTest.php

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
namespace Symfony\Bundle\FrameworkBundle\Tests\Functional;
44

55
use Psr\Log\LoggerInterface;
6+
use Symfony\Bundle\FullStack;
67
use Symfony\Component\EventDispatcher\EventDispatcherInterface;
78
use Symfony\Component\Mailer\Mailer;
89
use Symfony\Component\Mailer\SentMessage;
@@ -71,9 +72,19 @@ public function testMailerAssertions()
7172
$client->request('GET', '/send_email');
7273

7374
$this->assertEmailCount(2);
74-
$this->assertEmailIsQueued($this->getMailerEvent(0));
75-
76-
$email = $this->getMailerMessage(0);
75+
$first = 0;
76+
$second = 1;
77+
if (!class_exists(FullStack::class)) {
78+
$this->assertQueuedEmailCount(2);
79+
$first = 1;
80+
$second = 3;
81+
$this->assertEmailIsQueued($this->getMailerEvent(0));
82+
$this->assertEmailIsQueued($this->getMailerEvent(2));
83+
}
84+
$this->assertEmailIsNotQueued($this->getMailerEvent($first));
85+
$this->assertEmailIsNotQueued($this->getMailerEvent($second));
86+
87+
$email = $this->getMailerMessage($first);
7788
$this->assertEmailHasHeader($email, 'To');
7889
$this->assertEmailHeaderSame($email, 'To', '[email protected]');
7990
$this->assertEmailHeaderNotSame($email, 'To', '[email protected]');
@@ -83,7 +94,7 @@ public function testMailerAssertions()
8394
$this->assertEmailHtmlBodyNotContains($email, 'Bar');
8495
$this->assertEmailAttachementCount($email, 1);
8596

86-
$email = $this->getMailerMessage(1);
97+
$email = $this->getMailerMessage($second);
8798
$this->assertEmailAddressContains($email, 'To', '[email protected]');
8899
$this->assertEmailAddressContains($email, 'To', '[email protected]');
89100
$this->assertEmailAddressContains($email, 'Reply-To', '[email protected]');

0 commit comments

Comments
 (0)