Skip to content

Commit 357c9f4

Browse files
committed
Improve unit tests to check send is called with the correct parameters
1 parent 8a4278f commit 357c9f4

File tree

1 file changed

+16
-1
lines changed

1 file changed

+16
-1
lines changed

tests/TestCase/Job/SendMailJobTest.php

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,8 +58,23 @@ public function setUp(): void
5858
*/
5959
public function testExecute()
6060
{
61+
$job = $this->getMockBuilder(SendMailJob::class)
62+
->onlyMethods(['getTransport'])
63+
->getMock();
6164
$message = $this->createMessage(DebugTransport::class, [], $this->message);
62-
$actual = $this->job->execute($message);
65+
$emailMessage = new \Cake\Mailer\Message();
66+
$data = json_decode($message->getArgument('emailMessage'), true);
67+
$emailMessage->createFromArray($data);
68+
$transport = $this->getMockBuilder(DebugTransport::class)->getMock();
69+
$transport->expects($this->once())
70+
->method('send')
71+
->with($emailMessage)
72+
->willReturn(['message' => 'test', 'headers' => []]);
73+
$job->expects($this->once())
74+
->method('getTransport')
75+
->with(DebugTransport::class, [])
76+
->willReturn($transport);
77+
$actual = $job->execute($message);
6378
$this->assertSame(Processor::ACK, $actual);
6479
}
6580

0 commit comments

Comments
 (0)