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+ public static function defaultQueueDataProvider ()
2930 {
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);
31+ return [
32+ ['some-queue ' ],
33+ [null ],
34+ ];
35+ }
36+
37+ #[DataProvider('defaultQueueDataProvider ' )]
38+ public function testDefaultQueue ($ queue ): void
39+ {
40+ try {
41+ if ($ queue ) {
42+ Mailable::$ defaultQueue = $ queue ;
43+ }
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