Skip to content

Commit 973bcf1

Browse files
Test that the transport config is passed correctly
1 parent f5a3a5b commit 973bcf1

File tree

1 file changed

+63
-1
lines changed

1 file changed

+63
-1
lines changed

tests/TestCase/Mailer/Transport/QueueTransportTest.php

Lines changed: 63 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@
1616
*/
1717
namespace Cake\Queue\Test\TestCase\Job;
1818

19+
use Cake\Mailer\Message;
20+
use Cake\Mailer\Transport\SmtpTransport;
1921
use Cake\Queue\Mailer\Transport\QueueTransport;
2022
use Cake\Queue\QueueManager;
2123
use Cake\TestSuite\TestCase;
@@ -45,7 +47,7 @@ public function testSend()
4547
'queue' => 'default',
4648
'url' => $this->getFsQueueUrl(),
4749
]);
48-
$message = (new \Cake\Mailer\Message())
50+
$message = (new Message())
4951
->setFrom('[email protected]')
5052
->setTo('[email protected]')
5153
->setSubject('Sample Subject');
@@ -80,6 +82,66 @@ public function testSend()
8082
QueueManager::drop('default');
8183
}
8284

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+
83145
protected function tearDown(): void
84146
{
85147
parent::tearDown();

0 commit comments

Comments
 (0)