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 3b323e188 [test] add NoticeConfigControllerTest and
MonitorsControllerTest test (#2290)
3b323e188 is described below
commit 3b323e1882381445cc4e480e066800a29dc31dd9
Author: linDong <[email protected]>
AuthorDate: Tue Jul 16 22:57:02 2024 +0800
[test] add NoticeConfigControllerTest and MonitorsControllerTest test
(#2290)
---
.../manager/controller/MonitorsControllerTest.java | 47 +++++++-
.../controller/NoticeConfigControllerTest.java | 133 ++++++++++++++++++---
2 files changed, 162 insertions(+), 18 deletions(-)
diff --git
a/manager/src/test/java/org/apache/hertzbeat/manager/controller/MonitorsControllerTest.java
b/manager/src/test/java/org/apache/hertzbeat/manager/controller/MonitorsControllerTest.java
index c8d5bc873..5c630dcf4 100644
---
a/manager/src/test/java/org/apache/hertzbeat/manager/controller/MonitorsControllerTest.java
+++
b/manager/src/test/java/org/apache/hertzbeat/manager/controller/MonitorsControllerTest.java
@@ -17,10 +17,14 @@
package org.apache.hertzbeat.manager.controller;
-import static
org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath;
-import static
org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
+import static org.mockito.Mockito.doNothing;
+import static
org.springframework.test.web.servlet.result.MockMvcResultMatchers.*;
+
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.List;
+import java.util.stream.Collectors;
+
import org.apache.hertzbeat.common.constants.CommonConstants;
import org.apache.hertzbeat.common.util.JsonUtil;
import org.apache.hertzbeat.manager.service.impl.MonitorServiceImpl;
@@ -29,11 +33,13 @@ import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.InjectMocks;
import org.mockito.Mock;
+import org.mockito.Mockito;
import org.mockito.junit.jupiter.MockitoExtension;
import org.springframework.http.MediaType;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
import org.springframework.test.web.servlet.setup.MockMvcBuilders;
+import org.springframework.web.multipart.MultipartFile;
/**
* Test case for {@link MonitorsController}
@@ -115,4 +121,41 @@ class MonitorsControllerTest {
.andExpect(jsonPath("$.code").value((int)
CommonConstants.SUCCESS_CODE))
.andReturn();
}
+
+ @Test
+ void export() throws Exception {
+ List<Long> ids = Arrays.asList(6565463543L, 6565463544L);
+ String type = "JSON";
+
+ this.mockMvc.perform(MockMvcRequestBuilders.get("/api/monitors/export")
+ .param("ids", String.join(",",
ids.stream().map(String::valueOf).collect(Collectors.toList())))
+ .param("type", type))
+ .andExpect(status().isOk())
+ .andReturn();
+ }
+
+ @Test
+ void export2() throws Exception {
+ // Mock the behavior of monitorService.importConfig
+ doNothing().when(monitorService).importConfig((MultipartFile)
Mockito.any());
+
+ // Perform the request and verify the response
+
this.mockMvc.perform(MockMvcRequestBuilders.post("/api/monitors/import")
+ .contentType(MediaType.MULTIPART_FORM_DATA)
+ .param("file", "testFileContent"))
+ .andExpect(status().isOk())
+ .andExpect(jsonPath("$.code").value("0"))
+ .andExpect(jsonPath("$.msg").value("Import success"));
+ }
+
+ @Test
+ void duplicateMonitors() throws Exception {
+ // Mock the behavior of monitorService.copyMonitors
+ doNothing().when(monitorService).copyMonitors(List.of(6565463543L));
+
+ // Perform the POST request and verify the response
+ this.mockMvc.perform(MockMvcRequestBuilders.post("/api/monitors/copy")
+ .param("ids", "6565463543"))
+ .andExpect(status().isOk());
+ }
}
diff --git
a/manager/src/test/java/org/apache/hertzbeat/manager/controller/NoticeConfigControllerTest.java
b/manager/src/test/java/org/apache/hertzbeat/manager/controller/NoticeConfigControllerTest.java
index 33a775818..8ba3ef291 100644
---
a/manager/src/test/java/org/apache/hertzbeat/manager/controller/NoticeConfigControllerTest.java
+++
b/manager/src/test/java/org/apache/hertzbeat/manager/controller/NoticeConfigControllerTest.java
@@ -17,10 +17,15 @@
package org.apache.hertzbeat.manager.controller;
+import static org.mockito.Mockito.*;
+import static
org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*;
import static
org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath;
import static
org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.List;
+import java.util.Optional;
+
import org.apache.hertzbeat.common.constants.CommonConstants;
import org.apache.hertzbeat.common.entity.manager.NoticeReceiver;
import org.apache.hertzbeat.common.entity.manager.NoticeRule;
@@ -117,7 +122,7 @@ class NoticeConfigControllerTest {
void addNewNoticeReceiver() throws Exception {
NoticeReceiver noticeReceiver = getNoticeReceiver();
System.out.println(noticeReceiver);
-
this.mockMvc.perform(MockMvcRequestBuilders.post("/api/notice/receiver")
+ this.mockMvc.perform(post("/api/notice/receiver")
.contentType(MediaType.APPLICATION_JSON)
.content(JsonUtil.toJson(noticeReceiver)))
.andExpect(status().isOk())
@@ -130,7 +135,7 @@ class NoticeConfigControllerTest {
void editNoticeReceiver() throws Exception {
NoticeReceiver noticeReceiver = getNoticeReceiver();
System.out.println(noticeReceiver);
- this.mockMvc.perform(MockMvcRequestBuilders.put("/api/notice/receiver")
+ this.mockMvc.perform(put("/api/notice/receiver")
.contentType(MediaType.APPLICATION_JSON)
.content(JsonUtil.toJson(noticeReceiver)))
.andExpect(status().isOk())
@@ -144,19 +149,19 @@ class NoticeConfigControllerTest {
void deleteNoticeReceiver() throws Exception {
NoticeReceiver noticeReceiver = getNoticeReceiver();
- Mockito.when(noticeConfigService.getReceiverById(7565463543L))
+ when(noticeConfigService.getReceiverById(7565463543L))
.thenReturn(noticeReceiver);
- Mockito.when(noticeConfigService.getReceiverById(6565463543L))
+ when(noticeConfigService.getReceiverById(6565463543L))
.thenReturn(null);
-
this.mockMvc.perform(MockMvcRequestBuilders.delete("/api/notice/receiver/{id}",
6565463543L))
+ this.mockMvc.perform(delete("/api/notice/receiver/{id}", 6565463543L))
.andExpect(status().isOk())
.andExpect(jsonPath("$.code").value((int)
CommonConstants.SUCCESS_CODE))
.andExpect(jsonPath("$.msg").value("The relevant information
of the recipient could not be found, please check whether the parameters are
correct"))
.andReturn();
-
this.mockMvc.perform(MockMvcRequestBuilders.delete("/api/notice/receiver/{id}",
7565463543L))
+ this.mockMvc.perform(delete("/api/notice/receiver/{id}", 7565463543L))
.andExpect(status().isOk())
.andExpect(jsonPath("$.code").value((int)
CommonConstants.SUCCESS_CODE))
.andExpect(jsonPath("$.msg").value("Delete success"))
@@ -177,7 +182,7 @@ class NoticeConfigControllerTest {
@Test
void addNewNoticeRule() throws Exception {
NoticeRule noticeRule = getNoticeRule();
- this.mockMvc.perform(MockMvcRequestBuilders.post("/api/notice/rule")
+ this.mockMvc.perform(post("/api/notice/rule")
.contentType(MediaType.APPLICATION_JSON)
.content(JsonUtil.toJson(noticeRule)))
.andExpect(status().isOk())
@@ -189,7 +194,7 @@ class NoticeConfigControllerTest {
@Test
void editNoticeRule() throws Exception {
NoticeRule noticeRule = getNoticeRule();
- this.mockMvc.perform(MockMvcRequestBuilders.put("/api/notice/rule")
+ this.mockMvc.perform(put("/api/notice/rule")
.contentType(MediaType.APPLICATION_JSON)
.content(JsonUtil.toJson(noticeRule)))
.andExpect(status().isOk())
@@ -202,19 +207,19 @@ class NoticeConfigControllerTest {
void deleteNoticeRule() throws Exception {
NoticeRule noticeRule = getNoticeRule();
- Mockito.when(noticeConfigService.getNoticeRulesById(7565463543L))
+ when(noticeConfigService.getNoticeRulesById(7565463543L))
.thenReturn(noticeRule);
- Mockito.when(noticeConfigService.getNoticeRulesById(6565463543L))
+ when(noticeConfigService.getNoticeRulesById(6565463543L))
.thenReturn(null);
-
this.mockMvc.perform(MockMvcRequestBuilders.delete("/api/notice/rule/{id}",
6565463543L))
+ this.mockMvc.perform(delete("/api/notice/rule/{id}", 6565463543L))
.andExpect(status().isOk())
.andExpect(jsonPath("$.code").value((int)
CommonConstants.SUCCESS_CODE))
.andExpect(jsonPath("$.msg").value("The specified notification
rule could not be queried, please check whether the parameters are correct"))
.andReturn();
-
this.mockMvc.perform(MockMvcRequestBuilders.delete("/api/notice/rule/{id}",
7565463543L))
+ this.mockMvc.perform(delete("/api/notice/rule/{id}", 7565463543L))
.andExpect(status().isOk())
.andExpect(jsonPath("$.code").value((int)
CommonConstants.SUCCESS_CODE))
.andExpect(jsonPath("$.msg").value("Delete success"))
@@ -238,10 +243,10 @@ class NoticeConfigControllerTest {
@Test
void sendTestMsg() throws Exception {
NoticeReceiver noticeReceiver = getNoticeReceiver();
- Mockito.when(noticeConfigService.sendTestMsg(noticeReceiver))
+ when(noticeConfigService.sendTestMsg(noticeReceiver))
.thenReturn(false);
-
this.mockMvc.perform(MockMvcRequestBuilders.post("/api/notice/receiver/send-test-msg")
+ this.mockMvc.perform(post("/api/notice/receiver/send-test-msg")
.contentType(MediaType.APPLICATION_JSON)
.content(JsonUtil.toJson(noticeReceiver)))
.andExpect(status().isOk())
@@ -250,10 +255,10 @@ class NoticeConfigControllerTest {
.andReturn();
- Mockito.when(noticeConfigService.sendTestMsg(noticeReceiver))
+ when(noticeConfigService.sendTestMsg(noticeReceiver))
.thenReturn(true);
-
this.mockMvc.perform(MockMvcRequestBuilders.post("/api/notice/receiver/send-test-msg")
+ this.mockMvc.perform(post("/api/notice/receiver/send-test-msg")
.contentType(MediaType.APPLICATION_JSON)
.content(JsonUtil.toJson(noticeReceiver)))
.andExpect(status().isOk())
@@ -261,4 +266,100 @@ class NoticeConfigControllerTest {
//.andExpect(jsonPath("$.msg").value("Notify service not
available, please check config!"))
.andReturn();
}
+
+ @Test
+ void addNewNoticeTemplate() throws Exception {
+ NoticeTemplate noticeTemplate = getNoticeTemplate();
+
doNothing().when(noticeConfigService).addNoticeTemplate(noticeTemplate);
+
+ this.mockMvc.perform(post("/api/notice/template")
+ .contentType(MediaType.APPLICATION_JSON)
+ .content(JsonUtil.toJson(noticeTemplate)))
+ .andExpect(status().isOk())
+ .andExpect(jsonPath("$.code").value((int)
CommonConstants.SUCCESS_CODE))
+ .andExpect(jsonPath("$.msg").value("Add success"))
+ .andReturn();
+
+ verify(noticeConfigService).addNoticeTemplate(noticeTemplate);
+ }
+
+ @Test
+ void editNoticeTemplate() throws Exception {
+ NoticeTemplate noticeTemplate = getNoticeTemplate();
+
doNothing().when(noticeConfigService).editNoticeTemplate(noticeTemplate);
+
+ this.mockMvc.perform(put("/api/notice/template")
+ .contentType(MediaType.APPLICATION_JSON)
+ .content(JsonUtil.toJson(noticeTemplate)))
+ .andExpect(status().isOk())
+ .andExpect(jsonPath("$.code").value((int)
CommonConstants.SUCCESS_CODE))
+ .andExpect(jsonPath("$.msg").value("Edit success"))
+ .andReturn();
+
+ verify(noticeConfigService).editNoticeTemplate(noticeTemplate);
+ }
+
+ @Test
+ void deleteNoticeTemplate_Success() throws Exception {
+ Long templateId = 1L;
+
when(noticeConfigService.getNoticeTemplatesById(templateId)).thenReturn(Optional.of(new
NoticeTemplate()));
+
+ mockMvc.perform(delete("/api/notice/template/{id}", templateId))
+ .andExpect(status().isOk())
+ .andExpect(jsonPath("$.code").value((int)
CommonConstants.SUCCESS_CODE))
+ .andExpect(jsonPath("$.msg").value("Delete success"));
+
+ Mockito.verify(noticeConfigService,
Mockito.times(1)).deleteNoticeTemplate(templateId);
+ }
+
+ @Test
+ void deleteNoticeTemplate_NotFound() throws Exception {
+ Long templateId = 1L;
+
when(noticeConfigService.getNoticeTemplatesById(templateId)).thenReturn(Optional.empty());
+
+ mockMvc.perform(delete("/api/notice/template/{id}", templateId))
+ .andExpect(status().isOk())
+ .andExpect(jsonPath("$.code").value((int)
CommonConstants.SUCCESS_CODE))
+ .andExpect(jsonPath("$.msg").value("The specified notification
template could not be queried, please check whether the parameters are
correct"));
+
+ Mockito.verify(noticeConfigService,
Mockito.never()).deleteNoticeTemplate(templateId);
+ }
+
+ @Test
+ void testGetTemplates() throws Exception {
+ // Mock the service response
+ NoticeTemplate template1 = new NoticeTemplate();
+ template1.setName("Template1");
+ NoticeTemplate template2 = new NoticeTemplate();
+ template2.setName("Template2");
+ List<NoticeTemplate> templates = Arrays.asList(template1, template2);
+
when(noticeConfigService.getNoticeTemplates(any())).thenReturn(templates);
+
+ // Perform the GET request and verify the response
+ this.mockMvc.perform(get("/api/notice/templates")
+ .param("name", "Template"))
+ .andExpect(status().isOk())
+ .andExpect(jsonPath("$.code").value((int)
CommonConstants.SUCCESS_CODE))
+ .andExpect(jsonPath("$.data[0].name").value("Template1"))
+ .andExpect(jsonPath("$.data[1].name").value("Template2"));
+ }
+
+ @Test
+ void sendTestMsg_Failure() throws Exception {
+ NoticeReceiver noticeReceiver = getNoticeReceiver();
+
when(noticeConfigService.sendTestMsg(noticeReceiver)).thenReturn(false);
+
+ this.mockMvc.perform(post("/api/notice/receiver/send-test-msg")
+ .contentType(MediaType.APPLICATION_JSON)
+ .content(JsonUtil.toJson(noticeReceiver)))
+ .andExpect(status().isOk())
+ .andExpect(jsonPath("$.code").value((int)
CommonConstants.FAIL_CODE))
+ .andExpect(jsonPath("$.msg").value("Notify service not
available, please check config!"))
+ .andReturn();
+
+ verify(noticeConfigService, times(1)).sendTestMsg(noticeReceiver);
+ }
+
+
+
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]