|
16 | 16 | */ |
17 | 17 | namespace Cake\Queue\Test\TestCase\Job; |
18 | 18 |
|
| 19 | +use Cake\Mailer\Message; |
| 20 | +use Cake\Mailer\Transport\SmtpTransport; |
19 | 21 | use Cake\Queue\Mailer\Transport\QueueTransport; |
20 | 22 | use Cake\Queue\QueueManager; |
21 | 23 | use Cake\TestSuite\TestCase; |
@@ -45,7 +47,7 @@ public function testSend() |
45 | 47 | 'queue' => 'default', |
46 | 48 | 'url' => $this->getFsQueueUrl(), |
47 | 49 | ]); |
48 | | - $message = (new \Cake\Mailer\Message()) |
| 50 | + $message = (new Message()) |
49 | 51 | |
50 | 52 | |
51 | 53 | ->setSubject('Sample Subject'); |
@@ -80,6 +82,66 @@ public function testSend() |
80 | 82 | QueueManager::drop('default'); |
81 | 83 | } |
82 | 84 |
|
| 85 | + /** |
| 86 | + * Test send custom transport |
| 87 | + * |
| 88 | + * @return void |
| 89 | + */ |
| 90 | + public function testSendCustomTransport() |
| 91 | + { |
| 92 | + QueueManager::setConfig('default', [ |
| 93 | + 'queue' => 'default', |
| 94 | + 'url' => $this->getFsQueueUrl(), |
| 95 | + ]); |
| 96 | + $message = (new Message()); |
| 97 | + |
| 98 | + $transport = new QueueTransport([ |
| 99 | + 'transport' => SmtpTransport::class, |
| 100 | + 'config' => [ |
| 101 | + 'host' => 'mail.example.com', |
| 102 | + ], |
| 103 | + ]); |
| 104 | + $transport->send($message); |
| 105 | + |
| 106 | + $fsQueueFile = $this->getFsQueueFile(); |
| 107 | + $this->assertFileExists($fsQueueFile); |
| 108 | + |
| 109 | + $content = file_get_contents($fsQueueFile); |
| 110 | + $this->assertStringContainsString('SmtpTransport', $content); |
| 111 | + $this->assertStringContainsString('"config\":{\"host\":\"mail.example.com\"}', $content); |
| 112 | + |
| 113 | + QueueManager::drop('default'); |
| 114 | + } |
| 115 | + |
| 116 | + /** |
| 117 | + * Test send backwards compatibility transport config |
| 118 | + * |
| 119 | + * @return void |
| 120 | + */ |
| 121 | + public function testSendBcTransport() |
| 122 | + { |
| 123 | + QueueManager::setConfig('default', [ |
| 124 | + 'queue' => 'default', |
| 125 | + 'url' => $this->getFsQueueUrl(), |
| 126 | + ]); |
| 127 | + $message = (new Message()); |
| 128 | + |
| 129 | + $transport = new QueueTransport([ |
| 130 | + 'transport' => SmtpTransport::class, |
| 131 | + 'host' => 'mail.example.com', |
| 132 | + ]); |
| 133 | + $transport->send($message); |
| 134 | + |
| 135 | + $fsQueueFile = $this->getFsQueueFile(); |
| 136 | + $this->assertFileExists($fsQueueFile); |
| 137 | + |
| 138 | + $content = file_get_contents($fsQueueFile); |
| 139 | + $this->assertStringContainsString('SmtpTransport', $content); |
| 140 | + $this->assertStringContainsString('"host\":\"mail.example.com\"', $content); |
| 141 | + |
| 142 | + QueueManager::drop('default'); |
| 143 | + } |
| 144 | + |
83 | 145 | protected function tearDown(): void |
84 | 146 | { |
85 | 147 | parent::tearDown(); |
|
0 commit comments