tests(service): 添加了发送邮件的测试

This commit is contained in:
李东云
2022-12-20 15:34:47 +08:00
parent 69ce66561f
commit 65e34857e2
2 changed files with 69 additions and 4 deletions

View File

@@ -26,16 +26,16 @@ class EmailService
private string $from;
public function __construct()
public function __construct($dsn = null, $mailSenderName = null, $mailSender = null)
{
$dsn = config('common.third_party.email.dsn');
$dsn ??= config('common.third_party.email.dsn');
$transport = Transport::fromDsn($dsn);
$this->mailer = new Mailer($transport);
$this->from = sprintf(
"%s <%s>",
config('common.third_party.email.mailer_sender_name'),
config('common.third_party.email.mailer_sender')
$mailSenderName ?? config('common.third_party.email.mailer_sender_name'),
$mailSender ?? config('common.third_party.email.mailer_sender')
);
}

View File

@@ -0,0 +1,65 @@
<?php
/**
* EmailServiceTest.php@HDK-Core
*
* @author 李东云 <Dongyun.Li@LuxCreo.Ai>
* Powered by PhpStorm
* Created on 2022/12/20
*/
namespace Singularity\HDK\Test\Core\Service;
use Singularity\HDK\Core\Service\EmailService;
use Symfony\Component\Mailer\Exception\TransportException;
$dsn = 'smtp://account@luxcreo.ai:Qfsd8866@smtp.qiye.aliyun.com:465';
$mail_sender_name = 'LuxCreo';
$mail_sender = 'account@luxcreo.ai';
$email = new EmailService($dsn, $mail_sender_name, $mail_sender);
it('assertions that send HTML is available', function () use ($email) {
$result = $email->sendHtml(
'dongyun.li@luxcreo.ai',
'HDK Unit Test HTML',
<<<HTML
<h1>Hello, World!</h1>
HTML
);
expect($result)->toBeTrue();
});
it('assertions that send Text is available', function () use ($email) {
$result = $email->sendText(
'dongyun.li@luxcreo.ai',
'HDK Unit Test Text',
<<<Text
<h1>Hello, World!</h1>
Text
);
expect($result)->toBeTrue();
});
it('assertions Error Receiver can be catch', function () use ($email) {
try {
$email->sendHtml(
'unknown@luxcreo.ai',
'HDK Unit Test',
<<<HTML
<h1>Hello, World!</h1>
HTML
);
} catch (TransportException $t) {
expect($t->getCode())->toBe(554);
}
try {
$email->sendText(
'unknown@luxcreo.ai',
'HDK Unit Test',
<<<Text
<h1>Hello, World!</h1>
Text
);
} catch (TransportException $t) {
expect($t->getCode())->toBe(554);
}
});