|
@@ -1,8 +1,6 @@
|
|
package cn.iocoder.yudao.module.system.service.mail;
|
|
package cn.iocoder.yudao.module.system.service.mail;
|
|
|
|
|
|
import cn.hutool.core.map.MapUtil;
|
|
import cn.hutool.core.map.MapUtil;
|
|
-import cn.hutool.extra.mail.MailAccount;
|
|
|
|
-import cn.hutool.extra.mail.MailUtil;
|
|
|
|
import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
|
|
import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
|
|
import cn.iocoder.yudao.framework.common.enums.UserTypeEnum;
|
|
import cn.iocoder.yudao.framework.common.enums.UserTypeEnum;
|
|
import cn.iocoder.yudao.framework.test.core.ut.BaseMockitoUnitTest;
|
|
import cn.iocoder.yudao.framework.test.core.ut.BaseMockitoUnitTest;
|
|
@@ -15,6 +13,7 @@ import cn.iocoder.yudao.module.system.mq.producer.mail.MailProducer;
|
|
import cn.iocoder.yudao.module.system.service.member.MemberService;
|
|
import cn.iocoder.yudao.module.system.service.member.MemberService;
|
|
import cn.iocoder.yudao.module.system.service.user.AdminUserService;
|
|
import cn.iocoder.yudao.module.system.service.user.AdminUserService;
|
|
import org.assertj.core.util.Lists;
|
|
import org.assertj.core.util.Lists;
|
|
|
|
+import org.dromara.hutool.extra.mail.*;
|
|
import org.junit.jupiter.api.Disabled;
|
|
import org.junit.jupiter.api.Disabled;
|
|
import org.junit.jupiter.api.Test;
|
|
import org.junit.jupiter.api.Test;
|
|
import org.mockito.InjectMocks;
|
|
import org.mockito.InjectMocks;
|
|
@@ -28,8 +27,7 @@ import static cn.hutool.core.util.RandomUtil.randomEle;
|
|
import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertServiceException;
|
|
import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertServiceException;
|
|
import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.*;
|
|
import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.*;
|
|
import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.*;
|
|
import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.*;
|
|
-import static org.junit.jupiter.api.Assertions.assertEquals;
|
|
|
|
-import static org.junit.jupiter.api.Assertions.assertTrue;
|
|
|
|
|
|
+import static org.junit.jupiter.api.Assertions.*;
|
|
import static org.mockito.ArgumentMatchers.eq;
|
|
import static org.mockito.ArgumentMatchers.eq;
|
|
import static org.mockito.Mockito.*;
|
|
import static org.mockito.Mockito.*;
|
|
|
|
|
|
@@ -61,7 +59,7 @@ public class MailSendServiceImplTest extends BaseMockitoUnitTest {
|
|
// .setFrom("奥特曼 <ydym_test@163.com>")
|
|
// .setFrom("奥特曼 <ydym_test@163.com>")
|
|
.setFrom("ydym_test@163.com") // 邮箱地址
|
|
.setFrom("ydym_test@163.com") // 邮箱地址
|
|
.setHost("smtp.163.com").setPort(465).setSslEnable(true) // SMTP 服务器
|
|
.setHost("smtp.163.com").setPort(465).setSslEnable(true) // SMTP 服务器
|
|
- .setAuth(true).setUser("ydym_test@163.com").setPass("WBZTEINMIFVRYSOE"); // 登录账号密码
|
|
|
|
|
|
+ .setAuth(true).setUser("ydym_test@163.com").setPass("WBZTEINMIFVRYSOE".toCharArray()); // 登录账号密码
|
|
String messageId = MailUtil.send(mailAccount, "7685413@qq.com", "主题", "内容", false);
|
|
String messageId = MailUtil.send(mailAccount, "7685413@qq.com", "主题", "内容", false);
|
|
System.out.println("发送结果:" + messageId);
|
|
System.out.println("发送结果:" + messageId);
|
|
}
|
|
}
|
|
@@ -268,7 +266,7 @@ public class MailSendServiceImplTest extends BaseMockitoUnitTest {
|
|
|
|
|
|
@Test
|
|
@Test
|
|
public void testDoSendMail_success() {
|
|
public void testDoSendMail_success() {
|
|
- try (MockedStatic<MailUtil> mailUtilMock = mockStatic(MailUtil.class)) {
|
|
|
|
|
|
+ try (final MockedStatic<MailUtil> mailUtilMock = mockStatic(MailUtil.class)) {
|
|
// 准备参数
|
|
// 准备参数
|
|
MailSendMessage message = randomPojo(MailSendMessage.class, o -> o.setNickname("芋艿"));
|
|
MailSendMessage message = randomPojo(MailSendMessage.class, o -> o.setNickname("芋艿"));
|
|
// mock 方法(获得邮箱账号)
|
|
// mock 方法(获得邮箱账号)
|
|
@@ -283,7 +281,7 @@ public class MailSendServiceImplTest extends BaseMockitoUnitTest {
|
|
assertEquals("芋艿 <7685@qq.com>", mailAccount.getFrom());
|
|
assertEquals("芋艿 <7685@qq.com>", mailAccount.getFrom());
|
|
assertTrue(mailAccount.isAuth());
|
|
assertTrue(mailAccount.isAuth());
|
|
assertEquals(account.getUsername(), mailAccount.getUser());
|
|
assertEquals(account.getUsername(), mailAccount.getUser());
|
|
- assertEquals(account.getPassword(), mailAccount.getPass());
|
|
|
|
|
|
+ assertArrayEquals(account.getPassword().toCharArray(), mailAccount.getPass());
|
|
assertEquals(account.getHost(), mailAccount.getHost());
|
|
assertEquals(account.getHost(), mailAccount.getHost());
|
|
assertEquals(account.getPort(), mailAccount.getPort());
|
|
assertEquals(account.getPort(), mailAccount.getPort());
|
|
assertEquals(account.getSslEnable(), mailAccount.isSslEnable());
|
|
assertEquals(account.getSslEnable(), mailAccount.isSslEnable());
|
|
@@ -311,16 +309,15 @@ public class MailSendServiceImplTest extends BaseMockitoUnitTest {
|
|
// mock 方法(发送邮件)
|
|
// mock 方法(发送邮件)
|
|
Exception e = new NullPointerException("啦啦啦");
|
|
Exception e = new NullPointerException("啦啦啦");
|
|
mailUtilMock.when(() -> MailUtil.send(argThat(mailAccount -> {
|
|
mailUtilMock.when(() -> MailUtil.send(argThat(mailAccount -> {
|
|
- assertEquals("芋艿 <7685@qq.com>", mailAccount.getFrom());
|
|
|
|
- assertTrue(mailAccount.isAuth());
|
|
|
|
- assertEquals(account.getUsername(), mailAccount.getUser());
|
|
|
|
- assertEquals(account.getPassword(), mailAccount.getPass());
|
|
|
|
- assertEquals(account.getHost(), mailAccount.getHost());
|
|
|
|
- assertEquals(account.getPort(), mailAccount.getPort());
|
|
|
|
- assertEquals(account.getSslEnable(), mailAccount.isSslEnable());
|
|
|
|
- return true;
|
|
|
|
- }), eq(message.getMail()), eq(message.getTitle()), eq(message.getContent()), eq(true)))
|
|
|
|
- .thenThrow(e);
|
|
|
|
|
|
+ assertEquals("芋艿 <7685@qq.com>", mailAccount.getFrom());
|
|
|
|
+ assertTrue(mailAccount.isAuth());
|
|
|
|
+ assertEquals(account.getUsername(), mailAccount.getUser());
|
|
|
|
+ assertArrayEquals(account.getPassword().toCharArray(), mailAccount.getPass());
|
|
|
|
+ assertEquals(account.getHost(), mailAccount.getHost());
|
|
|
|
+ assertEquals(account.getPort(), mailAccount.getPort());
|
|
|
|
+ assertEquals(account.getSslEnable(), mailAccount.isSslEnable());
|
|
|
|
+ return true;
|
|
|
|
+ }), eq(message.getMail()), eq(message.getTitle()), eq(message.getContent()), eq(true))).thenThrow(e);
|
|
|
|
|
|
// 调用
|
|
// 调用
|
|
mailSendService.doSendMail(message);
|
|
mailSendService.doSendMail(message);
|