1515use Illuminate \Support \Testing \Fakes \QueueFake ;
1616use Laravel \SerializableClosure \SerializableClosure ;
1717use Mockery as m ;
18+ use PHPUnit \Framework \Attributes \DataProvider ;
1819use PHPUnit \Framework \TestCase ;
1920use Symfony \Component \Mailer \Transport \TransportInterface ;
2021
@@ -25,18 +26,35 @@ protected function tearDown(): void
2526 m::close ();
2627 }
2728
28- public function testQueuedMailableSent (): void
29+
30+ public static function defaultQueueDataProvider ()
2931 {
30- $ queueFake = new QueueFake (new Application );
31- $ mailer = $ this ->getMockBuilder (Mailer::class)
32- ->setConstructorArgs ($ this ->getMocks ())
33- ->onlyMethods (['createMessage ' , 'to ' ])
34- ->getMock ();
35- $ mailer ->setQueue ($ queueFake );
36- $ mailable = new MailableQueueableStub ;
37- $ queueFake ->assertNothingPushed ();
38- $ mailer ->send ($ mailable );
39- $ queueFake ->assertPushedOn (null , SendQueuedMailable::class);
32+ return [
33+ ['some-queue ' ],
34+ [null ],
35+ ];
36+ }
37+
38+ #[DataProvider('defaultQueueDataProvider ' )]
39+ public function testDefaultQueue ($ queue ): void
40+ {
41+ try {
42+ if ($ queue ) {
43+ Mailable::$ defaultQueue = $ queue ;
44+ }
45+ $ queueFake = new QueueFake (new Application );
46+ $ mailer = $ this ->getMockBuilder (Mailer::class)
47+ ->setConstructorArgs ($ this ->getMocks ())
48+ ->onlyMethods (['createMessage ' , 'to ' ])
49+ ->getMock ();
50+ $ mailer ->setQueue ($ queueFake );
51+ $ mailable = new MailableQueueableStub ;
52+ $ queueFake ->assertNothingPushed ();
53+ $ mailer ->send ($ mailable );
54+ $ queueFake ->assertPushedOn ($ queue , SendQueuedMailable::class);
55+ } finally {
56+ Mailable::$ defaultQueue = null ;
57+ }
4058 }
4159
4260 public function testQueuedMailableWithAttachmentSent (): void
0 commit comments