diff --git a/src/Illuminate/Support/Testing/Fakes/MailFake.php b/src/Illuminate/Support/Testing/Fakes/MailFake.php index 288ba397ee73..c60cc21f09c7 100644 --- a/src/Illuminate/Support/Testing/Fakes/MailFake.php +++ b/src/Illuminate/Support/Testing/Fakes/MailFake.php @@ -8,6 +8,7 @@ use Illuminate\Contracts\Mail\Mailer; use Illuminate\Contracts\Mail\MailQueue; use Illuminate\Contracts\Queue\ShouldQueue; +use Illuminate\Mail\MailManager; use Illuminate\Support\Traits\ForwardsCalls; use Illuminate\Support\Traits\ReflectsClosures; use PHPUnit\Framework\Assert as PHPUnit; @@ -19,9 +20,9 @@ class MailFake implements Factory, Mailer, MailQueue /** * The mailer instance. * - * @var Mailer + * @var MailManager */ - protected $mailer; + protected $manager; /** * The mailer currently being used to send a message. @@ -47,12 +48,12 @@ class MailFake implements Factory, Mailer, MailQueue /** * Create a new mail fake. * - * @param Mailer $mailer + * @param MailManager $manager * @return void */ - public function __construct(Mailer $mailer) + public function __construct(MailManager $manager) { - $this->mailer = $mailer; + $this->manager = $manager; } /** @@ -460,6 +461,6 @@ public function forgetMailers() */ public function __call($method, $parameters) { - return $this->forwardCallTo($this->mailer, $method, $parameters); + return $this->forwardCallTo($this->manager, $method, $parameters); } } diff --git a/tests/Support/SupportMailTest.php b/tests/Support/SupportMailTest.php new file mode 100644 index 000000000000..20cf09c7783d --- /dev/null +++ b/tests/Support/SupportMailTest.php @@ -0,0 +1,31 @@ + $str === 'foo' + ? 'it works!' + : 'it failed.', + ); + + $this->assertEquals('it works!', Mail::test('foo')); + } + + public function testItRegisterAndCallMacrosWhenFaked() + { + Mail::macro('test', fn (string $str) => $str === 'foo' + ? 'it works!' + : 'it failed.', + ); + + Mail::fake(); + + $this->assertEquals('it works!', Mail::test('foo')); + } +} diff --git a/tests/Support/SupportTestingMailFakeTest.php b/tests/Support/SupportTestingMailFakeTest.php index 44c0b07ca65c..72f4e3b323da 100644 --- a/tests/Support/SupportTestingMailFakeTest.php +++ b/tests/Support/SupportTestingMailFakeTest.php @@ -5,7 +5,7 @@ use Illuminate\Contracts\Queue\ShouldQueue; use Illuminate\Contracts\Translation\HasLocalePreference; use Illuminate\Mail\Mailable; -use Illuminate\Mail\Mailer; +use Illuminate\Mail\MailManager; use Illuminate\Support\Testing\Fakes\MailFake; use Mockery as m; use PHPUnit\Framework\ExpectationFailedException; @@ -16,7 +16,7 @@ class SupportTestingMailFakeTest extends TestCase /** * @var \Mockery */ - private $mailer; + private $mailManager; /** * @var \Illuminate\Support\Testing\Fakes\MailFake @@ -31,8 +31,8 @@ class SupportTestingMailFakeTest extends TestCase protected function setUp(): void { parent::setUp(); - $this->mailer = m::mock(Mailer::class); - $this->fake = new MailFake($this->mailer); + $this->mailManager = m::mock(MailManager::class); + $this->fake = new MailFake($this->mailManager); $this->mailable = new MailableStub; } @@ -224,7 +224,7 @@ public function testAssertSentWithClosure() public function testMissingMethodsAreForwarded() { - $this->mailer->shouldReceive('foo')->andReturn('bar'); + $this->mailManager->shouldReceive('foo')->andReturn('bar'); $this->assertEquals('bar', $this->fake->foo()); }