This is an automated email from the ASF dual-hosted git repository.
gongchao pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/hertzbeat.git
The following commit(s) were added to refs/heads/master by this push:
new d1d28e676 [Improve] add EmailAlertNotifyHandlerImpl unit test (#2370)
d1d28e676 is described below
commit d1d28e67636b3d12d88bdfec71c00e24f994157b
Author: YuLuo <[email protected]>
AuthorDate: Thu Jul 25 10:13:03 2024 +0800
[Improve] add EmailAlertNotifyHandlerImpl unit test (#2370)
Signed-off-by: yuluo-yx <[email protected]>
Co-authored-by: tomsun28 <[email protected]>
---
.../impl/EmailAlertNotifyHandlerImplTest.java | 81 ++++++++++++++++++++--
1 file changed, 76 insertions(+), 5 deletions(-)
diff --git
a/manager/src/test/java/org/apache/hertzbeat/manager/component/alerter/impl/EmailAlertNotifyHandlerImplTest.java
b/manager/src/test/java/org/apache/hertzbeat/manager/component/alerter/impl/EmailAlertNotifyHandlerImplTest.java
index da0171d22..4f29ec82a 100644
---
a/manager/src/test/java/org/apache/hertzbeat/manager/component/alerter/impl/EmailAlertNotifyHandlerImplTest.java
+++
b/manager/src/test/java/org/apache/hertzbeat/manager/component/alerter/impl/EmailAlertNotifyHandlerImplTest.java
@@ -17,24 +17,95 @@
package org.apache.hertzbeat.manager.component.alerter.impl;
+import java.util.Date;
+import java.util.Properties;
+
+import com.fasterxml.jackson.databind.ObjectMapper;
+import jakarta.mail.internet.MimeMessage;
+import org.apache.hertzbeat.common.entity.alerter.Alert;
+import org.apache.hertzbeat.common.entity.manager.NoticeReceiver;
+import org.apache.hertzbeat.common.entity.manager.NoticeTemplate;
+import org.apache.hertzbeat.manager.dao.GeneralConfigDao;
+import org.apache.hertzbeat.manager.service.MailService;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
+import org.mockito.InjectMocks;
+import org.mockito.Mock;
+import org.mockito.junit.jupiter.MockitoExtension;
+import org.springframework.mail.javamail.JavaMailSenderImpl;
+import org.springframework.mail.javamail.MimeMessageHelper;
+import org.springframework.test.util.ReflectionTestUtils;
+
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
/**
* Test case for {@link EmailAlertNotifyHandlerImpl}
*/
+
+@ExtendWith(MockitoExtension.class)
class EmailAlertNotifyHandlerImplTest {
+ @Mock
+ private JavaMailSenderImpl javaMailSender;
+
+ @Mock
+ private MailService mailService;
+
+ @Mock
+ private GeneralConfigDao generalConfigDao;
+
+ @Mock
+ private ObjectMapper objectMapper;
+
+ private JavaMailSenderImpl sender;
+
+ @InjectMocks
+ private EmailAlertNotifyHandlerImpl emailAlertNotifyHandler;
+
@BeforeEach
- void setUp() {
- }
+ public void setUp() {
- @Test
- void send() {
+ ReflectionTestUtils.setField(emailAlertNotifyHandler, "host",
"smtp.demo.com");
+ ReflectionTestUtils.setField(emailAlertNotifyHandler, "username",
"demo");
+ ReflectionTestUtils.setField(emailAlertNotifyHandler, "password",
"demo");
+ ReflectionTestUtils.setField(emailAlertNotifyHandler, "port", 465);
+ ReflectionTestUtils.setField(emailAlertNotifyHandler, "sslEnable",
true);
}
@Test
- void type() {
+ void testSend() throws Exception {
+
+ NoticeReceiver receiver = new NoticeReceiver();
+ receiver.setEmail("[email protected]");
+
+ NoticeTemplate noticeTemplate = new NoticeTemplate();
+ Alert alert = Alert.builder().build();
+
+ MimeMessage mimeMessage = mock(MimeMessage.class);
+ when(javaMailSender.createMimeMessage()).thenReturn(mimeMessage);
+
+ Properties properties = new Properties();
+ when(javaMailSender.getJavaMailProperties()).thenReturn(properties);
+
+ when(mailService.buildAlertHtmlTemplate(
+ any(Alert.class),
+ any(NoticeTemplate.class))
+ ).thenReturn("HTML Content");
+
+ emailAlertNotifyHandler.send(receiver, noticeTemplate, alert);
+
+ verify(javaMailSender).send(mimeMessage);
+
+ MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true,
"UTF-8");
+ helper.setFrom("demo");
+ helper.setTo("[email protected]");
+ helper.setSubject("Email Alert Notification");
+ helper.setSentDate(new Date());
+ helper.setText("HTML Content", true);
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]