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]

Reply via email to