Skip to content

Commit 8713edc

Browse files
committed
fix test testMailerSendSendsMessageWithProperViewContent
1 parent 2f220e9 commit 8713edc

1 file changed

Lines changed: 21 additions & 14 deletions

File tree

tests/Mail/MailMailerTest.php

Lines changed: 21 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,13 @@
22

33
use Illuminate\Log\Writer;
44
use Illuminate\Mail\Mailer;
5+
use Illuminate\Mail\Message;
6+
use Illuminate\Mail\Transport\ArrayTransport;
57
use Illuminate\Queue\QueueManager;
68
use Illuminate\View\Factory;
79
use L4\Tests\BackwardCompatibleTestCase;
810
use Mockery as m;
11+
use Symfony\Component\Mailer\SentMessage;
912

1013
class MailMailerTest extends BackwardCompatibleTestCase
1114
{
@@ -15,23 +18,27 @@ protected function tearDown(): void
1518
m::close();
1619
}
1720

18-
1921
public function testMailerSendSendsMessageWithProperViewContent()
2022
{
2123
unset($_SERVER['__mailer.test']);
22-
$mailer = $this->getMock(Mailer::class, ['createMessage'], $this->getMocks());
23-
$message = m::mock('StdClass');
24-
$mailer->expects($this->once())->method('createMessage')->willReturn($message);
25-
$view = m::mock('StdClass');
26-
$mailer->getViewFactory()->shouldReceive('make')->once()->with('foo', ['data', 'message' => $message])->andReturn($view);
27-
$view->shouldReceive('render')->once()->andReturn('rendered.view');
28-
$message->shouldReceive('setBody')->once()->with('rendered.view', 'text/html');
29-
$message->shouldReceive('setFrom')->never();
30-
$mailer->setSwiftMailer(m::mock('StdClass'));
31-
$message->shouldReceive('getSwiftMessage')->once()->andReturn($message);
32-
$mailer->getSwiftMailer()->shouldReceive('send')->once()->with($message, []);
33-
$mailer->send('foo', ['data'], function($m) { $_SERVER['__mailer.test'] = $m; });
34-
unset($_SERVER['__mailer.test']);
24+
25+
$view = m::mock(Factory::class);
26+
$view->shouldReceive('make')->once()->andReturn($view);
27+
$view->shouldReceive('render')->once()->andReturn('rendered.view');
28+
29+
$mailer = new Mailer($view, $transport = new ArrayTransport());
30+
$mailer->send('foo', ['data'], function (Message $message) {
31+
$message->to('taylor@laravel.com')->from('hello@laravel.com');
32+
});
33+
34+
$sentMessages = $transport->messages();
35+
self::assertCount(1, $sentMessages);
36+
37+
/** @var SentMessage $sentMessage */
38+
$sentMessage = $sentMessages[0];
39+
self::assertStringContainsString('rendered.view', $sentMessage->toString());
40+
self::assertEquals('taylor@laravel.com', $sentMessage->getEnvelope()->getRecipients()[0]->getAddress());
41+
self::assertEquals('hello@laravel.com', $sentMessage->getEnvelope()->getSender()->getAddress());
3542
}
3643

3744

0 commit comments

Comments
 (0)