|
@@ -19,44 +19,52 @@ package org.apache.dolphinscheduler.dao.mapper;
|
|
|
import org.apache.dolphinscheduler.common.enums.AlertStatus;
|
|
|
import org.apache.dolphinscheduler.common.enums.AlertType;
|
|
|
import org.apache.dolphinscheduler.common.enums.ShowType;
|
|
|
+import org.apache.dolphinscheduler.common.utils.DateUtils;
|
|
|
import org.apache.dolphinscheduler.dao.entity.Alert;
|
|
|
import org.junit.Assert;
|
|
|
import org.junit.Test;
|
|
|
import org.junit.runner.RunWith;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.boot.test.context.SpringBootTest;
|
|
|
+import org.springframework.test.annotation.Rollback;
|
|
|
import org.springframework.test.context.junit4.SpringRunner;
|
|
|
+import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
-import java.util.Date;
|
|
|
-import java.util.List;
|
|
|
-
|
|
|
+import java.util.*;
|
|
|
|
|
|
+import static org.hamcrest.Matchers.*;
|
|
|
+import static org.junit.Assert.*;
|
|
|
|
|
|
@RunWith(SpringRunner.class)
|
|
|
@SpringBootTest
|
|
|
+@Transactional
|
|
|
+@Rollback(true)
|
|
|
public class AlertMapperTest {
|
|
|
|
|
|
@Autowired
|
|
|
- AlertMapper alertMapper;
|
|
|
+ private AlertMapper alertMapper;
|
|
|
|
|
|
/**
|
|
|
- * insert
|
|
|
- * @return Alert
|
|
|
+ * test insert
|
|
|
+ * @return
|
|
|
*/
|
|
|
- private Alert insertOne(){
|
|
|
- //insertOne
|
|
|
- Alert alert = new Alert();
|
|
|
- alert.setContent("[{'type':'WORKER','host':'192.168.xx.xx','event':'server down','warning level':'serious'}]");
|
|
|
- alert.setLog("success");
|
|
|
- alert.setReceivers("xx@aa.com");
|
|
|
- alert.setAlertType(AlertType.EMAIL);
|
|
|
- alert.setShowType(ShowType.TABLE);
|
|
|
- alert.setAlertGroupId(1);
|
|
|
- alert.setAlertStatus(AlertStatus.EXECUTION_SUCCESS);
|
|
|
- alert.setCreateTime(new Date());
|
|
|
- alert.setUpdateTime(new Date());
|
|
|
- alertMapper.insert(alert);
|
|
|
- return alert;
|
|
|
+ @Test
|
|
|
+ public void testInsert(){
|
|
|
+ Alert expectedAlert = createAlert();
|
|
|
+ assertNotNull(expectedAlert.getId());
|
|
|
+ assertThat(expectedAlert.getId(), greaterThan(0));
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * test select by id
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @Test
|
|
|
+ public void testSelectById(){
|
|
|
+ Alert expectedAlert = createAlert();
|
|
|
+ Alert actualAlert = alertMapper.selectById(expectedAlert.getId());
|
|
|
+ assertEquals(expectedAlert, actualAlert);
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -64,13 +72,18 @@ public class AlertMapperTest {
|
|
|
*/
|
|
|
@Test
|
|
|
public void testUpdate(){
|
|
|
- //insertOne
|
|
|
- Alert alert = insertOne();
|
|
|
- //update
|
|
|
- alert.setTitle("hello");
|
|
|
- int update = alertMapper.updateById(alert);
|
|
|
- Assert.assertEquals(update, 1);
|
|
|
- alertMapper.deleteById(alert.getId());
|
|
|
+
|
|
|
+ Alert expectedAlert = createAlert();
|
|
|
+
|
|
|
+ expectedAlert.setAlertStatus(AlertStatus.EXECUTION_FAILURE);
|
|
|
+ expectedAlert.setLog("error");
|
|
|
+ expectedAlert.setUpdateTime(DateUtils.getCurrentDate());
|
|
|
+
|
|
|
+ alertMapper.updateById(expectedAlert);
|
|
|
+
|
|
|
+ Alert actualAlert = alertMapper.selectById(expectedAlert.getId());
|
|
|
+
|
|
|
+ assertEquals(expectedAlert, actualAlert);
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -78,33 +91,83 @@ public class AlertMapperTest {
|
|
|
*/
|
|
|
@Test
|
|
|
public void testDelete(){
|
|
|
+ Alert expectedAlert = createAlert();
|
|
|
|
|
|
- Alert alert = insertOne();
|
|
|
- int delete = alertMapper.deleteById(alert.getId());
|
|
|
- Assert.assertEquals(delete, 1);
|
|
|
+ alertMapper.deleteById(expectedAlert.getId());
|
|
|
+
|
|
|
+ Alert actualAlert = alertMapper.selectById(expectedAlert.getId());
|
|
|
+
|
|
|
+ assertNull(actualAlert);
|
|
|
}
|
|
|
|
|
|
+
|
|
|
/**
|
|
|
- * test query
|
|
|
+ * test list alert by status
|
|
|
*/
|
|
|
@Test
|
|
|
- public void testQuery() {
|
|
|
- Alert alert = insertOne();
|
|
|
- //query
|
|
|
- List<Alert> alerts = alertMapper.selectList(null);
|
|
|
- Assert.assertNotEquals(alerts.size(), 0);
|
|
|
- alertMapper.deleteById(alert.getId());
|
|
|
+ public void testListAlertByStatus() {
|
|
|
+ Integer count = 10;
|
|
|
+ AlertStatus waitExecution = AlertStatus.WAIT_EXECUTION;
|
|
|
+
|
|
|
+ Map<Integer,Alert> expectedAlertMap = createAlertMap(count, waitExecution);
|
|
|
+
|
|
|
+ List<Alert> actualAlerts = alertMapper.listAlertByStatus(waitExecution);
|
|
|
+
|
|
|
+ for (Alert actualAlert : actualAlerts){
|
|
|
+ Alert expectedAlert = expectedAlertMap.get(actualAlert.getId());
|
|
|
+ if (expectedAlert != null){
|
|
|
+ assertEquals(expectedAlert,actualAlert);
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- * test list alert by status
|
|
|
+ * create alert map
|
|
|
+ * @param count alert count
|
|
|
+ * @param alertStatus alert status
|
|
|
+ * @return alert map
|
|
|
*/
|
|
|
- @Test
|
|
|
- public void testListAlertByStatus() {
|
|
|
- Alert alert = insertOne();
|
|
|
- //query
|
|
|
- List<Alert> alerts = alertMapper.listAlertByStatus(AlertStatus.EXECUTION_SUCCESS);
|
|
|
- Assert.assertNotEquals(alerts.size(), 0);
|
|
|
- alertMapper.deleteById(alert.getId());
|
|
|
+ private Map<Integer,Alert> createAlertMap(Integer count,AlertStatus alertStatus){
|
|
|
+ Map<Integer,Alert> alertMap = new HashMap<>();
|
|
|
+
|
|
|
+ for (int i = 0 ; i < count ;i++){
|
|
|
+ Alert alert = createAlert(alertStatus);
|
|
|
+ alertMap.put(alert.getId(),alert);
|
|
|
+ }
|
|
|
+
|
|
|
+ return alertMap;
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * create alert
|
|
|
+ * @return alert
|
|
|
+ * @throws Exception
|
|
|
+ */
|
|
|
+ private Alert createAlert(){
|
|
|
+ return createAlert(AlertStatus.WAIT_EXECUTION);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * create alert
|
|
|
+ * @param alertStatus alert status
|
|
|
+ * @return alert
|
|
|
+ */
|
|
|
+ private Alert createAlert(AlertStatus alertStatus){
|
|
|
+ Alert alert = new Alert();
|
|
|
+ alert.setShowType(ShowType.TABLE);
|
|
|
+ alert.setTitle("test alert");
|
|
|
+ alert.setContent("[{'type':'WORKER','host':'192.168.xx.xx','event':'server down','warning level':'serious'}]");
|
|
|
+ alert.setAlertType(AlertType.EMAIL);
|
|
|
+ alert.setAlertStatus(alertStatus);
|
|
|
+ alert.setLog("success");
|
|
|
+ alert.setReceivers("aa@aa.com");
|
|
|
+ alert.setReceiversCc("bb@aa.com");
|
|
|
+ alert.setCreateTime(DateUtils.getCurrentDate());
|
|
|
+ alert.setUpdateTime(DateUtils.getCurrentDate());
|
|
|
+
|
|
|
+ alertMapper.insert(alert);
|
|
|
+ return alert;
|
|
|
}
|
|
|
}
|