From 0c074c046f022ee30ebb04003b4fe30b059aeab5 Mon Sep 17 00:00:00 2001 From: hanxuanyu <2252193204@qq.com> Date: Mon, 24 Jan 2022 23:52:29 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B5=8B=E8=AF=95=E7=B1=BB=E7=BC=96=E5=86=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../manager/MonitorItemBeanManager.java | 2 +- .../hxuanyu/network/service/HttpService.java | 12 ++-- .../com/hxuanyu/notify/enums/NotifyType.java | 5 +- .../service/impl/NotifyServiceImpl.java | 7 ++- test/pom.xml | 23 ++++++-- .../test/controller/TestController.java | 40 +++++++++++-- .../hxuanyu/test/monitor/TestMonitorItem.java | 20 +++++++ .../hxuanyu/starter/test/common/MsgTest.java | 22 ++++++++ .../starter/test/monitor/MonitorTest.java | 25 +++++++++ .../starter/test/network/NetworkTest.java | 56 +++++++++++++++++++ .../starter/test/notify/NotifyTest.java | 27 +++++++++ 11 files changed, 215 insertions(+), 24 deletions(-) create mode 100644 test/src/main/java/com/hxuanyu/test/monitor/TestMonitorItem.java create mode 100644 test/src/test/java/com/hxuanyu/starter/test/common/MsgTest.java create mode 100644 test/src/test/java/com/hxuanyu/starter/test/monitor/MonitorTest.java create mode 100644 test/src/test/java/com/hxuanyu/starter/test/network/NetworkTest.java create mode 100644 test/src/test/java/com/hxuanyu/starter/test/notify/NotifyTest.java diff --git a/monitor-spring-boot-starter/src/main/java/com/hxuanyu/monitor/manager/MonitorItemBeanManager.java b/monitor-spring-boot-starter/src/main/java/com/hxuanyu/monitor/manager/MonitorItemBeanManager.java index c48787f..4c8df53 100644 --- a/monitor-spring-boot-starter/src/main/java/com/hxuanyu/monitor/manager/MonitorItemBeanManager.java +++ b/monitor-spring-boot-starter/src/main/java/com/hxuanyu/monitor/manager/MonitorItemBeanManager.java @@ -91,7 +91,7 @@ public class MonitorItemBeanManager implements ApplicationListener doDelete(String url) throws Exception; + Msg doDelete(String url); /** * 发送delete请求;不带请求参数 * * @param url 请求地址 * @return 统一返回报文 - * @throws Exception 异常 */ - Msg doDeleteWithEntity(String url) throws Exception; + Msg doDeleteWithEntity(String url); /** * 发送delete请求;带请求参数 @@ -296,9 +294,8 @@ public interface HttpService { * @param url 请求地址 * @param params 请求参数 * @return 统一返回报文 - * @throws Exception 异常 */ - Msg doDelete(String url, Map params) throws Exception; + Msg doDelete(String url, Map params); /** @@ -307,9 +304,8 @@ public interface HttpService { * @param url 请求地址 * @param params 请求参数 * @return 统一返回报文 - * @throws Exception 异常 */ - Msg doDeleteWithEntity(String url, Map params) throws Exception; + Msg doDeleteWithEntity(String url, Map params); interface NetWorkListener { /** diff --git a/notify-spring-boot-starter/src/main/java/com/hxuanyu/notify/enums/NotifyType.java b/notify-spring-boot-starter/src/main/java/com/hxuanyu/notify/enums/NotifyType.java index c60dd4a..f1463e5 100644 --- a/notify-spring-boot-starter/src/main/java/com/hxuanyu/notify/enums/NotifyType.java +++ b/notify-spring-boot-starter/src/main/java/com/hxuanyu/notify/enums/NotifyType.java @@ -12,8 +12,9 @@ public enum NotifyType { /** * 邮件类型 */ - MAIL_TYPE("邮件"), - SMS_TYPE("短信"); + TYPE_LOG("日志输出"), + TYPE_MAIL("邮件"), + TYPE_MSG("短信"); private final String typeName; diff --git a/notify-spring-boot-starter/src/main/java/com/hxuanyu/notify/service/impl/NotifyServiceImpl.java b/notify-spring-boot-starter/src/main/java/com/hxuanyu/notify/service/impl/NotifyServiceImpl.java index e9b31f7..f9be4d3 100644 --- a/notify-spring-boot-starter/src/main/java/com/hxuanyu/notify/service/impl/NotifyServiceImpl.java +++ b/notify-spring-boot-starter/src/main/java/com/hxuanyu/notify/service/impl/NotifyServiceImpl.java @@ -6,7 +6,6 @@ import com.hxuanyu.notify.service.MailService; import com.hxuanyu.notify.service.NotifyService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; import org.springframework.stereotype.Service; import javax.annotation.Resource; @@ -26,10 +25,12 @@ public class NotifyServiceImpl implements NotifyService { @Override public void notify(Object content, NotifyType notifyType) { - if (NotifyType.MAIL_TYPE.equals(notifyType)) { + if (NotifyType.TYPE_MAIL.equals(notifyType)) { sendMail(content); - } else if (NotifyType.SMS_TYPE.equals(notifyType)) { + } else if (NotifyType.TYPE_MSG.equals(notifyType)) { sendSms(content); + } else if (NotifyType.TYPE_LOG.equals(notifyType)) { + logger.info("新通知:{}", content); } else { logger.info("未匹配到通知类型:[{}]", content); } diff --git a/test/pom.xml b/test/pom.xml index 5500f06..d33fd78 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -12,6 +12,15 @@ test + + org.springframework.boot + spring-boot-starter-web + + + org.springframework.boot + spring-boot-starter-test + test + com.hxuanyu notify-spring-boot-starter @@ -20,13 +29,19 @@ com.hxuanyu common-spring-boot-starter + - org.springframework.boot - spring-boot-starter-web + com.hxuanyu + monitor-spring-boot-starter - org.springframework.boot - spring-boot-starter-test + com.hxuanyu + network-spring-boot-starter + + + junit + junit + test diff --git a/test/src/main/java/com/hxuanyu/test/controller/TestController.java b/test/src/main/java/com/hxuanyu/test/controller/TestController.java index 2aa781b..c21446e 100644 --- a/test/src/main/java/com/hxuanyu/test/controller/TestController.java +++ b/test/src/main/java/com/hxuanyu/test/controller/TestController.java @@ -4,11 +4,10 @@ import com.hxuanyu.common.message.Msg; import com.hxuanyu.notify.model.Mail; import com.hxuanyu.notify.service.MailService; import com.hxuanyu.notify.service.NotifyService; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.Mapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; @@ -22,12 +21,12 @@ import javax.annotation.Resource; @RestController public class TestController { - + private final Logger logger = LoggerFactory.getLogger(TestController.class); @Resource MailService mailService; @RequestMapping("/testMail") - public Msg testMail(){ + public Msg testMail() { Mail mail = new Mail(); mail.setContent("邮件内容"); mail.setSubject("邮件主题"); @@ -41,4 +40,33 @@ public class TestController { return Msg.success("发送邮件成功", mail); } + + + @ResponseBody + @GetMapping("/") + public Msg testGet() { + logger.info("收到GET请求"); + return Msg.success("GET 测试"); + } + + @ResponseBody + @PostMapping("/") + public Msg testPost() { + logger.info("收到POST请求"); + return Msg.success("POST 测试"); + } + + @ResponseBody + @PutMapping("/") + public Msg testPut() { + logger.info("收到PUT请求"); + return Msg.success("PUT 测试"); + } + + @ResponseBody + @DeleteMapping("/") + public Msg testDelete() { + logger.info("收到DELETE请求"); + return Msg.success("DELETE 测试"); + } } diff --git a/test/src/main/java/com/hxuanyu/test/monitor/TestMonitorItem.java b/test/src/main/java/com/hxuanyu/test/monitor/TestMonitorItem.java new file mode 100644 index 0000000..94a9aed --- /dev/null +++ b/test/src/main/java/com/hxuanyu/test/monitor/TestMonitorItem.java @@ -0,0 +1,20 @@ +package com.hxuanyu.test.monitor; + +import com.hxuanyu.monitor.annotation.MonitorItem; +import com.hxuanyu.monitor.base.BaseMonitorItem; +import com.hxuanyu.monitor.common.CheckResult; +import com.hxuanyu.notify.enums.NotifyType; + +/** + * 定时任务监控测试 + * + * @author hxuanyu + */ +@MonitorItem(cron = "0/5 * * * * *") +public class TestMonitorItem extends BaseMonitorItem { + + @Override + public CheckResult check() { + return CheckResult.triggered("Hello", NotifyType.TYPE_LOG); + } +} diff --git a/test/src/test/java/com/hxuanyu/starter/test/common/MsgTest.java b/test/src/test/java/com/hxuanyu/starter/test/common/MsgTest.java new file mode 100644 index 0000000..9d3dae8 --- /dev/null +++ b/test/src/test/java/com/hxuanyu/starter/test/common/MsgTest.java @@ -0,0 +1,22 @@ +package com.hxuanyu.starter.test.common; + + +import com.hxuanyu.common.message.Msg; +import org.junit.jupiter.api.Test; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class MsgTest { + + private final Logger logger = LoggerFactory.getLogger(MsgTest.class); + + @Test + public void test() { + Msg msg = Msg.success("测试内容", "测试体"); + logger.info(msg.toString()); + assert msg.isSuccess(); + msg = Msg.failed("失败消息"); + logger.info(msg.toString()); + assert msg.isFailed(); + } +} diff --git a/test/src/test/java/com/hxuanyu/starter/test/monitor/MonitorTest.java b/test/src/test/java/com/hxuanyu/starter/test/monitor/MonitorTest.java new file mode 100644 index 0000000..eaf7e17 --- /dev/null +++ b/test/src/test/java/com/hxuanyu/starter/test/monitor/MonitorTest.java @@ -0,0 +1,25 @@ +package com.hxuanyu.starter.test.monitor; + +import com.hxuanyu.monitor.base.BaseMonitorItem; +import com.hxuanyu.monitor.manager.MonitorItemBeanManager; +import com.hxuanyu.test.MainApplication; +import org.junit.jupiter.api.Test; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; + +@SpringBootTest(classes = MainApplication.class) +public class MonitorTest { + + private final Logger logger = LoggerFactory.getLogger(MonitorTest.class); + @Autowired + MonitorItemBeanManager monitorItemBeanManager; + + @Test + public void testMonitorItemScan() { + BaseMonitorItem testMonitorItem = monitorItemBeanManager.getMonitorItemMap().get("ScheduledTask-TestMonitorItem"); + assert testMonitorItem.getMonitorItemName() != null; + logger.info("获取到的Bean:{}", testMonitorItem.toString()); + } +} diff --git a/test/src/test/java/com/hxuanyu/starter/test/network/NetworkTest.java b/test/src/test/java/com/hxuanyu/starter/test/network/NetworkTest.java new file mode 100644 index 0000000..9c4d81e --- /dev/null +++ b/test/src/test/java/com/hxuanyu/starter/test/network/NetworkTest.java @@ -0,0 +1,56 @@ +package com.hxuanyu.starter.test.network; + +import com.hxuanyu.common.message.Msg; +import com.hxuanyu.network.service.HttpService; +import com.hxuanyu.test.MainApplication; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.Timeout; +import org.junit.runner.RunWith; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.test.context.web.WebAppConfiguration; + +import static java.lang.Thread.sleep; + +@SpringBootTest(classes = MainApplication.class) +public class NetworkTest { + + @Autowired + HttpService httpService; + + private final Logger logger = LoggerFactory.getLogger(NetworkTest.class); + + @Test + @Timeout(3000) + public void testGet() throws InterruptedException { + Msg msg = httpService.doGet("https://baidu.com"); + logger.info("GET测试:{}", msg); + assert msg.isSuccess(); + } + + @Test + @Timeout(3000) + public void testPost() { + Msg msg = httpService.doPost("https://baidu.com"); + logger.info("POST测试:{}", msg); + assert msg.isSuccess(); + } + + @Test + @Timeout(3000) + public void testDelete() { + Msg msg = httpService.doDelete("https://baidu.com"); + logger.info("DELETE测试:{}", msg); + assert msg.isSuccess(); + } + + @Test + @Timeout(3000) + public void testPut() { + Msg msg = httpService.doPut("https://baidu.com"); + logger.info("PUT测试:{}", msg); + assert msg.isSuccess(); + } +} diff --git a/test/src/test/java/com/hxuanyu/starter/test/notify/NotifyTest.java b/test/src/test/java/com/hxuanyu/starter/test/notify/NotifyTest.java new file mode 100644 index 0000000..a166673 --- /dev/null +++ b/test/src/test/java/com/hxuanyu/starter/test/notify/NotifyTest.java @@ -0,0 +1,27 @@ +package com.hxuanyu.starter.test.notify; + +import com.hxuanyu.notify.enums.NotifyType; +import com.hxuanyu.notify.model.Mail; +import com.hxuanyu.notify.service.NotifyService; +import com.hxuanyu.test.MainApplication; +import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; + +import static java.lang.Thread.sleep; + +@SpringBootTest(classes = MainApplication.class) +public class NotifyTest { + + @Autowired + NotifyService notifyService; + + @Test + public void testNotify() throws InterruptedException { + notifyService.notify(new Mail("2252193204@qq.com", "test subject", "test success"), NotifyType.TYPE_MAIL); + sleep(2000); + notifyService.notify("短信通知方式", NotifyType.TYPE_MSG); + notifyService.notify("日志输出方式", NotifyType.TYPE_LOG); + } + +}