From 61672e0180083dd6fceaf1f53bc6e48474d2c216 Mon Sep 17 00:00:00 2001 From: YunaiV Date: Fri, 4 Feb 2022 12:28:48 +0800 Subject: [PATCH] 多模块重构 13:迁移集成测试~ --- yudao-framework/yudao-spring-boot-starter-job/pom.xml | 2 ++ yudao-module-system/yudao-module-system-impl/src/test-integration/java/cn/iocoder/yudao/module/system/job/SchedulerManagerTest.java | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++ yudao-module-system/yudao-module-system-impl/src/test-integration/java/cn/iocoder/yudao/module/system/mq/RedisStreamTest.java | 62 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ yudao-module-system/yudao-module-system-impl/src/test-integration/java/cn/iocoder/yudao/module/system/service/package-info.java | 4 ++++ yudao-module-system/yudao-module-system-impl/src/test-integration/java/cn/iocoder/yudao/module/system/service/sms/SmsServiceIntegrationTest.java | 71 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ yudao-module-system/yudao-module-system-impl/src/test-integration/java/cn/iocoder/yudao/module/system/test/BaseDbAndRedisIntegrationTest.java | 38 ++++++++++++++++++++++++++++++++++++++ yudao-module-system/yudao-module-system-impl/src/test-integration/java/cn/iocoder/yudao/module/system/test/BaseRedisIntegrationTest.java | 23 +++++++++++++++++++++++ yudao-module-system/yudao-module-system-impl/src/test-integration/resources/application-integration-test.yaml | 108 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ yudao-module-tool/yudao-module-tool-impl/src/test-integration/java/cn/iocoder/yudao/module/tool/dal/mysql/codegen/SchemaColumnMapperTest.java | 23 +++++++++++++++++++++++ yudao-module-tool/yudao-module-tool-impl/src/test-integration/java/cn/iocoder/yudao/module/tool/dal/mysql/package-info.java | 4 ++++ yudao-module-tool/yudao-module-tool-impl/src/test-integration/java/cn/iocoder/yudao/module/tool/dal/package-info.java | 4 ++++ yudao-module-tool/yudao-module-tool-impl/src/test-integration/java/cn/iocoder/yudao/module/tool/service/codegen/CodegenEngineTest.java | 34 ++++++++++++++++++++++++++++++++++ yudao-module-tool/yudao-module-tool-impl/src/test-integration/java/cn/iocoder/yudao/module/tool/service/codegen/CodegenSQLParserTest.java | 29 +++++++++++++++++++++++++++++ yudao-module-tool/yudao-module-tool-impl/src/test-integration/java/cn/iocoder/yudao/module/tool/service/codegen/CodegenServiceImplTest.java | 20 ++++++++++++++++++++ yudao-module-tool/yudao-module-tool-impl/src/test-integration/java/cn/iocoder/yudao/module/tool/service/package-info.java | 4 ++++ yudao-module-tool/yudao-module-tool-impl/src/test-integration/java/cn/iocoder/yudao/module/tool/test/BaseDbAndRedisIntegrationTest.java | 38 ++++++++++++++++++++++++++++++++++++++ yudao-module-tool/yudao-module-tool-impl/src/test-integration/java/cn/iocoder/yudao/module/tool/test/BaseRedisIntegrationTest.java | 23 +++++++++++++++++++++++ yudao-module-tool/yudao-module-tool-impl/src/test-integration/resources/application-integration-test.yaml | 108 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ yudao-server/src/test-integration/java/cn/iocoder/yudao/adminserver/BaseDbAndRedisIntegrationTest.java | 38 -------------------------------------- yudao-server/src/test-integration/java/cn/iocoder/yudao/adminserver/BaseRedisIntegrationTest.java | 23 ----------------------- yudao-server/src/test-integration/java/cn/iocoder/yudao/adminserver/framework/quartz/core/SchedulerManagerTest.java | 53 ----------------------------------------------------- yudao-server/src/test-integration/java/cn/iocoder/yudao/adminserver/framework/redis/core/stream/RedisStreamTest.java | 63 --------------------------------------------------------------- yudao-server/src/test-integration/java/cn/iocoder/yudao/adminserver/modules/system/service/sms/SysSmsServiceIntegrationTest.java | 75 --------------------------------------------------------------------------- yudao-server/src/test-integration/java/cn/iocoder/yudao/adminserver/modules/tool/dal/mysql/codegen/ToolInformationSchemaColumnMapperTest.java | 24 ------------------------ yudao-server/src/test-integration/java/cn/iocoder/yudao/adminserver/modules/tool/dal/mysql/codegen/ToolInformationSchemaTableMapperTest.java | 12 ------------ yudao-server/src/test-integration/java/cn/iocoder/yudao/adminserver/modules/tool/service/codegen/ToolCodegenEngineTest.java | 34 ---------------------------------- yudao-server/src/test-integration/java/cn/iocoder/yudao/adminserver/modules/tool/service/codegen/ToolCodegenSQLParserTest.java | 29 ----------------------------- yudao-server/src/test-integration/java/cn/iocoder/yudao/adminserver/modules/tool/service/codegen/ToolCodegenServiceImplTest.java | 21 --------------------- yudao-server/src/test-integration/resources/application-integration-test.yaml | 108 ------------------------------------------------------------------------------------------------------------ 29 files changed, 648 insertions(+), 480 deletions(-) create mode 100644 yudao-module-system/yudao-module-system-impl/src/test-integration/java/cn/iocoder/yudao/module/system/job/SchedulerManagerTest.java create mode 100644 yudao-module-system/yudao-module-system-impl/src/test-integration/java/cn/iocoder/yudao/module/system/mq/RedisStreamTest.java create mode 100644 yudao-module-system/yudao-module-system-impl/src/test-integration/java/cn/iocoder/yudao/module/system/service/package-info.java create mode 100644 yudao-module-system/yudao-module-system-impl/src/test-integration/java/cn/iocoder/yudao/module/system/service/sms/SmsServiceIntegrationTest.java create mode 100644 yudao-module-system/yudao-module-system-impl/src/test-integration/java/cn/iocoder/yudao/module/system/test/BaseDbAndRedisIntegrationTest.java create mode 100644 yudao-module-system/yudao-module-system-impl/src/test-integration/java/cn/iocoder/yudao/module/system/test/BaseRedisIntegrationTest.java create mode 100644 yudao-module-system/yudao-module-system-impl/src/test-integration/resources/application-integration-test.yaml create mode 100644 yudao-module-tool/yudao-module-tool-impl/src/test-integration/java/cn/iocoder/yudao/module/tool/dal/mysql/codegen/SchemaColumnMapperTest.java create mode 100644 yudao-module-tool/yudao-module-tool-impl/src/test-integration/java/cn/iocoder/yudao/module/tool/dal/mysql/package-info.java create mode 100644 yudao-module-tool/yudao-module-tool-impl/src/test-integration/java/cn/iocoder/yudao/module/tool/dal/package-info.java create mode 100644 yudao-module-tool/yudao-module-tool-impl/src/test-integration/java/cn/iocoder/yudao/module/tool/service/codegen/CodegenEngineTest.java create mode 100644 yudao-module-tool/yudao-module-tool-impl/src/test-integration/java/cn/iocoder/yudao/module/tool/service/codegen/CodegenSQLParserTest.java create mode 100644 yudao-module-tool/yudao-module-tool-impl/src/test-integration/java/cn/iocoder/yudao/module/tool/service/codegen/CodegenServiceImplTest.java create mode 100644 yudao-module-tool/yudao-module-tool-impl/src/test-integration/java/cn/iocoder/yudao/module/tool/service/package-info.java create mode 100644 yudao-module-tool/yudao-module-tool-impl/src/test-integration/java/cn/iocoder/yudao/module/tool/test/BaseDbAndRedisIntegrationTest.java create mode 100644 yudao-module-tool/yudao-module-tool-impl/src/test-integration/java/cn/iocoder/yudao/module/tool/test/BaseRedisIntegrationTest.java create mode 100644 yudao-module-tool/yudao-module-tool-impl/src/test-integration/resources/application-integration-test.yaml delete mode 100644 yudao-server/src/test-integration/java/cn/iocoder/yudao/adminserver/BaseDbAndRedisIntegrationTest.java delete mode 100644 yudao-server/src/test-integration/java/cn/iocoder/yudao/adminserver/BaseRedisIntegrationTest.java delete mode 100644 yudao-server/src/test-integration/java/cn/iocoder/yudao/adminserver/framework/quartz/core/SchedulerManagerTest.java delete mode 100644 yudao-server/src/test-integration/java/cn/iocoder/yudao/adminserver/framework/redis/core/stream/RedisStreamTest.java delete mode 100644 yudao-server/src/test-integration/java/cn/iocoder/yudao/adminserver/modules/system/service/sms/SysSmsServiceIntegrationTest.java delete mode 100644 yudao-server/src/test-integration/java/cn/iocoder/yudao/adminserver/modules/tool/dal/mysql/codegen/ToolInformationSchemaColumnMapperTest.java delete mode 100644 yudao-server/src/test-integration/java/cn/iocoder/yudao/adminserver/modules/tool/dal/mysql/codegen/ToolInformationSchemaTableMapperTest.java delete mode 100644 yudao-server/src/test-integration/java/cn/iocoder/yudao/adminserver/modules/tool/service/codegen/ToolCodegenEngineTest.java delete mode 100644 yudao-server/src/test-integration/java/cn/iocoder/yudao/adminserver/modules/tool/service/codegen/ToolCodegenSQLParserTest.java delete mode 100644 yudao-server/src/test-integration/java/cn/iocoder/yudao/adminserver/modules/tool/service/codegen/ToolCodegenServiceImplTest.java delete mode 100644 yudao-server/src/test-integration/resources/application-integration-test.yaml diff --git a/yudao-framework/yudao-spring-boot-starter-job/pom.xml b/yudao-framework/yudao-spring-boot-starter-job/pom.xml index 4a1cd04..b9c030d 100644 --- a/yudao-framework/yudao-spring-boot-starter-job/pom.xml +++ b/yudao-framework/yudao-spring-boot-starter-job/pom.xml @@ -35,6 +35,8 @@ jakarta.validation jakarta.validation-api + + diff --git a/yudao-module-system/yudao-module-system-impl/src/test-integration/java/cn/iocoder/yudao/module/system/job/SchedulerManagerTest.java b/yudao-module-system/yudao-module-system-impl/src/test-integration/java/cn/iocoder/yudao/module/system/job/SchedulerManagerTest.java new file mode 100644 index 0000000..2d1d6f4 --- /dev/null +++ b/yudao-module-system/yudao-module-system-impl/src/test-integration/java/cn/iocoder/yudao/module/system/job/SchedulerManagerTest.java @@ -0,0 +1,53 @@ +package cn.iocoder.yudao.module.system.job; + +import cn.hutool.core.util.StrUtil; +import cn.iocoder.yudao.framework.quartz.core.scheduler.SchedulerManager; +import cn.iocoder.yudao.module.system.job.auth.UserSessionTimeoutJob; +import cn.iocoder.yudao.module.system.test.BaseDbUnitTest; +import org.junit.jupiter.api.Test; +import org.quartz.SchedulerException; + +import javax.annotation.Resource; + +public class SchedulerManagerTest extends BaseDbUnitTest { + + @Resource + private SchedulerManager schedulerManager; + + @Test + public void testAddJob() throws SchedulerException { + String jobHandlerName = StrUtil.lowerFirst(UserSessionTimeoutJob.class.getSimpleName()); + schedulerManager.addJob(1L, jobHandlerName, "test", "0/10 * * * * ? *", 0, 0); + } + + @Test + public void testUpdateJob() throws SchedulerException { + String jobHandlerName = StrUtil.lowerFirst(UserSessionTimeoutJob.class.getSimpleName()); + schedulerManager.updateJob(jobHandlerName, "hahaha", "0/20 * * * * ? *", 0, 0); + } + + @Test + public void testDeleteJob() throws SchedulerException { + String jobHandlerName = StrUtil.lowerFirst(UserSessionTimeoutJob.class.getSimpleName()); + schedulerManager.deleteJob(jobHandlerName); + } + + @Test + public void testPauseJob() throws SchedulerException { + String jobHandlerName = StrUtil.lowerFirst(UserSessionTimeoutJob.class.getSimpleName()); + schedulerManager.pauseJob(jobHandlerName); + } + + @Test + public void testResumeJob() throws SchedulerException { + String jobHandlerName = StrUtil.lowerFirst(UserSessionTimeoutJob.class.getSimpleName()); + schedulerManager.resumeJob(jobHandlerName); + } + + @Test + public void testTriggerJob() throws SchedulerException { + String jobHandlerName = StrUtil.lowerFirst(UserSessionTimeoutJob.class.getSimpleName()); + schedulerManager.triggerJob(1L, jobHandlerName, "niubi!!!"); + } + +} diff --git a/yudao-module-system/yudao-module-system-impl/src/test-integration/java/cn/iocoder/yudao/module/system/mq/RedisStreamTest.java b/yudao-module-system/yudao-module-system-impl/src/test-integration/java/cn/iocoder/yudao/module/system/mq/RedisStreamTest.java new file mode 100644 index 0000000..c94316a --- /dev/null +++ b/yudao-module-system/yudao-module-system-impl/src/test-integration/java/cn/iocoder/yudao/module/system/mq/RedisStreamTest.java @@ -0,0 +1,62 @@ +package cn.iocoder.yudao.module.system.mq; + +import cn.hutool.core.thread.ThreadUtil; +import cn.iocoder.yudao.framework.mq.core.RedisMQTemplate; +import cn.iocoder.yudao.module.system.mq.consumer.mail.MailSendConsumer; +import cn.iocoder.yudao.module.system.mq.consumer.sms.SmsSendConsumer; +import cn.iocoder.yudao.module.system.mq.message.mail.MailSendMessage; +import cn.iocoder.yudao.module.system.mq.message.sms.SmsSendMessage; +import cn.iocoder.yudao.module.system.test.BaseRedisIntegrationTest; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; +import org.springframework.context.annotation.Import; +import org.springframework.data.redis.core.RedisTemplate; + +import javax.annotation.Resource; +import java.util.concurrent.TimeUnit; + +public class RedisStreamTest { + + @Import({SmsSendConsumer.class, MailSendConsumer.class}) + @Disabled + public static class ConsumerTest extends BaseRedisIntegrationTest { + + @Test + public void testConsumer() { + ThreadUtil.sleep(1, TimeUnit.DAYS); + } + + } + + @Disabled + public static class ProducerTest extends BaseRedisIntegrationTest { + + @Resource + private RedisMQTemplate redisMQTemplate; + + @Resource + private RedisTemplate redisTemplate; + + @Test + public void testProducer01() { + for (int i = 0; i < 100; i++) { + // 创建消息 + SmsSendMessage message = new SmsSendMessage(); + message.setMobile("15601691300").setApiTemplateId("test:" + i); + // 发送消息 + redisMQTemplate.send(message); + } + } + + @Test + public void testProducer02() { + // 创建消息 + MailSendMessage message = new MailSendMessage(); + message.setAddress("fangfang@mihayou.com").setTemplateCode("test"); + // 发送消息 + redisMQTemplate.send(message); + } + + } + +} diff --git a/yudao-module-system/yudao-module-system-impl/src/test-integration/java/cn/iocoder/yudao/module/system/service/package-info.java b/yudao-module-system/yudao-module-system-impl/src/test-integration/java/cn/iocoder/yudao/module/system/service/package-info.java new file mode 100644 index 0000000..7b475e5 --- /dev/null +++ b/yudao-module-system/yudao-module-system-impl/src/test-integration/java/cn/iocoder/yudao/module/system/service/package-info.java @@ -0,0 +1,4 @@ +/** + * 占位 + */ +package cn.iocoder.yudao.module.system.service; diff --git a/yudao-module-system/yudao-module-system-impl/src/test-integration/java/cn/iocoder/yudao/module/system/service/sms/SmsServiceIntegrationTest.java b/yudao-module-system/yudao-module-system-impl/src/test-integration/java/cn/iocoder/yudao/module/system/service/sms/SmsServiceIntegrationTest.java new file mode 100644 index 0000000..b3ae5cd --- /dev/null +++ b/yudao-module-system/yudao-module-system-impl/src/test-integration/java/cn/iocoder/yudao/module/system/service/sms/SmsServiceIntegrationTest.java @@ -0,0 +1,71 @@ +package cn.iocoder.yudao.module.system.service.sms; + +import cn.hutool.core.map.MapUtil; +import cn.hutool.core.thread.ThreadUtil; +import cn.iocoder.yudao.framework.common.enums.UserTypeEnum; +import cn.iocoder.yudao.framework.sms.config.YudaoSmsAutoConfiguration; +import cn.iocoder.yudao.module.system.test.BaseDbAndRedisIntegrationTest; +import cn.iocoder.yudao.module.system.mq.consumer.sms.SmsSendConsumer; +import cn.iocoder.yudao.module.system.mq.producer.sms.SmsProducer; +import cn.iocoder.yudao.module.system.service.user.AdminUserService; +import org.junit.jupiter.api.Test; +import org.springframework.boot.test.mock.mockito.MockBean; +import org.springframework.context.annotation.Import; + +import javax.annotation.Resource; +import java.util.Map; +import java.util.concurrent.TimeUnit; + +// TODO @芋艿:需要迁移 +@Import({YudaoSmsAutoConfiguration.class, + SmsChannelServiceImpl.class, SmsSendServiceImpl.class, SmsTemplateServiceImpl.class, SmsLogServiceImpl.class, + SmsProducer.class, SmsSendConsumer.class}) +public class SmsServiceIntegrationTest extends BaseDbAndRedisIntegrationTest { + + @Resource + private SmsSendServiceImpl smsService; + @Resource + private SmsChannelServiceImpl smsChannelService; + + @MockBean + private AdminUserService userService; + + @Test + public void testSendSingleSms_yunpianSuccess() { + // 参数准备 + String mobile = "15601691399"; + Long userId = 1L; + Integer userType = UserTypeEnum.ADMIN.getValue(); + String templateCode = "test_01"; + Map templateParams = MapUtil.builder() + .put("operation", "登录").put("code", "1234").build(); + // 调用 + smsService.sendSingleSms(mobile, userId, userType, templateCode, templateParams); + + // 等待 MQ 消费 + ThreadUtil.sleep(1, TimeUnit.HOURS); + } + + @Test + public void testSendSingleSms_aliyunSuccess() { + // 参数准备 + String mobile = "15601691399"; + Long userId = 1L; + Integer userType = UserTypeEnum.ADMIN.getValue(); + String templateCode = "test_02"; + Map templateParams = MapUtil.builder() + .put("code", "1234").build(); + // 调用 + smsService.sendSingleSms(mobile, userId, userType, templateCode, templateParams); + + // 等待 MQ 消费 + ThreadUtil.sleep(1, TimeUnit.HOURS); + } + +// @Test +// public void testDoSendSms() { +// // 等待 MQ 消费 +// ThreadUtil.sleep(1, TimeUnit.HOURS); +// } + +} diff --git a/yudao-module-system/yudao-module-system-impl/src/test-integration/java/cn/iocoder/yudao/module/system/test/BaseDbAndRedisIntegrationTest.java b/yudao-module-system/yudao-module-system-impl/src/test-integration/java/cn/iocoder/yudao/module/system/test/BaseDbAndRedisIntegrationTest.java new file mode 100644 index 0000000..5b9b21f --- /dev/null +++ b/yudao-module-system/yudao-module-system-impl/src/test-integration/java/cn/iocoder/yudao/module/system/test/BaseDbAndRedisIntegrationTest.java @@ -0,0 +1,38 @@ +package cn.iocoder.yudao.module.system.test; + +import cn.iocoder.yudao.framework.datasource.config.YudaoDataSourceAutoConfiguration; +import cn.iocoder.yudao.framework.mybatis.config.YudaoMybatisAutoConfiguration; +import cn.iocoder.yudao.framework.redis.config.YudaoRedisAutoConfiguration; +import com.baomidou.dynamic.datasource.spring.boot.autoconfigure.DynamicDataSourceAutoConfiguration; +import com.baomidou.mybatisplus.autoconfigure.MybatisPlusAutoConfiguration; +import org.redisson.spring.starter.RedissonAutoConfiguration; +import org.springframework.boot.autoconfigure.data.redis.RedisAutoConfiguration; +import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; +import org.springframework.boot.autoconfigure.jdbc.DataSourceTransactionManagerAutoConfiguration; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.context.annotation.Import; +import org.springframework.test.context.ActiveProfiles; + +@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.NONE, classes = BaseDbAndRedisIntegrationTest.Application.class) +@ActiveProfiles("integration-test") // 设置使用 application-integration-test 配置文件 +public class BaseDbAndRedisIntegrationTest { + + @Import({ + // DB 配置类 + DynamicDataSourceAutoConfiguration.class, // Dynamic Datasource 配置类 + YudaoDataSourceAutoConfiguration.class, // 自己的 DB 配置类 + DataSourceAutoConfiguration.class, // Spring DB 自动配置类 + DataSourceTransactionManagerAutoConfiguration.class, // Spring 事务自动配置类 + // MyBatis 配置类 + YudaoMybatisAutoConfiguration.class, // 自己的 MyBatis 配置类 + MybatisPlusAutoConfiguration.class, // MyBatis 的自动配置类 + + // Redis 配置类 + RedisAutoConfiguration.class, // Spring Redis 自动配置类 + YudaoRedisAutoConfiguration.class, // 自己的 Redis 配置类 + RedissonAutoConfiguration.class, // Redisson 自动高配置类 + }) + public static class Application { + } + +} diff --git a/yudao-module-system/yudao-module-system-impl/src/test-integration/java/cn/iocoder/yudao/module/system/test/BaseRedisIntegrationTest.java b/yudao-module-system/yudao-module-system-impl/src/test-integration/java/cn/iocoder/yudao/module/system/test/BaseRedisIntegrationTest.java new file mode 100644 index 0000000..f48b289 --- /dev/null +++ b/yudao-module-system/yudao-module-system-impl/src/test-integration/java/cn/iocoder/yudao/module/system/test/BaseRedisIntegrationTest.java @@ -0,0 +1,23 @@ +package cn.iocoder.yudao.module.system.test; + +import cn.iocoder.yudao.framework.redis.config.YudaoRedisAutoConfiguration; +import org.redisson.spring.starter.RedissonAutoConfiguration; +import org.springframework.boot.autoconfigure.data.redis.RedisAutoConfiguration; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.context.annotation.Import; +import org.springframework.test.context.ActiveProfiles; + +@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.NONE, classes = BaseRedisIntegrationTest.Application.class) +@ActiveProfiles("integration-test") // 设置使用 application-integration-test 配置文件 +public class BaseRedisIntegrationTest { + + @Import({ + // Redis 配置类 + RedisAutoConfiguration.class, // Spring Redis 自动配置类 + YudaoRedisAutoConfiguration.class, // 自己的 Redis 配置类 + RedissonAutoConfiguration.class, // Redisson 自动高配置类 + }) + public static class Application { + } + +} diff --git a/yudao-module-system/yudao-module-system-impl/src/test-integration/resources/application-integration-test.yaml b/yudao-module-system/yudao-module-system-impl/src/test-integration/resources/application-integration-test.yaml new file mode 100644 index 0000000..d9612ee --- /dev/null +++ b/yudao-module-system/yudao-module-system-impl/src/test-integration/resources/application-integration-test.yaml @@ -0,0 +1,108 @@ +spring: + main: + lazy-initialization: true # 开启懒加载,加快速度 + banner-mode: off # 单元测试,禁用 Banner + +--- #################### 数据库相关配置 #################### + +spring: + # 数据源配置项 + autoconfigure: + exclude: + - com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure # 排除 Druid 的自动配置,使用 dynamic-datasource-spring-boot-starter 配置多数据源 + datasource: + druid: # Druid 【监控】相关的全局配置 + web-stat-filter: + enabled: true + stat-view-servlet: + enabled: true + allow: # 设置白名单,不填则允许所有访问 + url-pattern: /druid/* + login-username: # 控制台管理用户名和密码 + login-password: + filter: + stat: + enabled: true + log-slow-sql: true # 慢 SQL 记录 + slow-sql-millis: 100 + merge-sql: true + wall: + config: + multi-statement-allow: true + dynamic: # 多数据源配置 + druid: # Druid 【连接池】相关的全局配置 + initial-size: 5 # 初始连接数 + min-idle: 10 # 最小连接池数量 + max-active: 20 # 最大连接池数量 + max-wait: 600000 # 配置获取连接等待超时的时间,单位:毫秒 + time-between-eviction-runs-millis: 60000 # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位:毫秒 + min-evictable-idle-time-millis: 300000 # 配置一个连接在池中最小生存的时间,单位:毫秒 + max-evictable-idle-time-millis: 900000 # 配置一个连接在池中最大生存的时间,单位:毫秒 + validation-query: SELECT 1 FROM DUAL # 配置检测连接是否有效 + test-while-idle: true + test-on-borrow: false + test-on-return: false + primary: master + datasource: + master: + name: ruoyi-vue-pro + url: jdbc:mysql://127.0.0.1:3306/${spring.datasource.dynamic.datasource.master.name}?useSSL=false&useUnicode=true&characterEncoding=UTF-8&serverTimezone=CTT + driver-class-name: com.mysql.jdbc.Driver + username: root + password: 123456 + slave: # 模拟从库,可根据自己需要修改 + name: ruoyi-vue-pro + url: jdbc:mysql://127.0.0.1:3306/${spring.datasource.dynamic.datasource.slave.name}?useSSL=false&useUnicode=true&characterEncoding=UTF-8&serverTimezone=CTT + driver-class-name: com.mysql.jdbc.Driver + username: root + password: 123456 + + # Redis 配置。Redisson 默认的配置足够使用,一般不需要进行调优 + redis: + host: 127.0.0.1 # 地址 + port: 6379 # 端口 + database: 0 # 数据库索引 + +mybatis: + lazy-initialization: true # 单元测试,设置 MyBatis Mapper 延迟加载,加速每个单元测试 + +--- #################### 定时任务相关配置 #################### + +--- #################### 配置中心相关配置 #################### + +--- #################### 服务保障相关配置 #################### + +# Lock4j 配置项(单元测试,禁用 Lock4j) + +# Resilience4j 配置项 +resilience4j: + ratelimiter: + instances: + backendA: + limit-for-period: 1 # 每个周期内,允许的请求数。默认为 50 + limit-refresh-period: 60s # 每个周期的时长,单位:微秒。默认为 500 + timeout-duration: 1s # 被限流时,阻塞等待的时长,单位:微秒。默认为 5s + register-health-indicator: true # 是否注册到健康监测 + +--- #################### 监控相关配置 #################### + +--- #################### 芋道相关配置 #################### + +# 芋道配置项,设置当前项目所有自定义的配置 +yudao: + security: + token-header: Authorization + token-secret: abcdefghijklmnopqrstuvwxyz + token-timeout: 1d + session-timeout: 30m + mock-enable: true + mock-secret: test + swagger: + enable: false # 单元测试,禁用 Swagger + file: + base-path: http://127.0.0.1:${server.port}/${yudao.web.api-prefix}/file/get/ + xss: + enable: false + exclude-urls: # 如下两个 url,仅仅是为了演示,去掉配置也没关系 + - ${spring.boot.admin.context-path}/** # 不处理 Spring Boot Admin 的请求 + - ${management.endpoints.web.base-path}/** # 不处理 Actuator 的请求 diff --git a/yudao-module-tool/yudao-module-tool-impl/src/test-integration/java/cn/iocoder/yudao/module/tool/dal/mysql/codegen/SchemaColumnMapperTest.java b/yudao-module-tool/yudao-module-tool-impl/src/test-integration/java/cn/iocoder/yudao/module/tool/dal/mysql/codegen/SchemaColumnMapperTest.java new file mode 100644 index 0000000..1adf32f --- /dev/null +++ b/yudao-module-tool/yudao-module-tool-impl/src/test-integration/java/cn/iocoder/yudao/module/tool/dal/mysql/codegen/SchemaColumnMapperTest.java @@ -0,0 +1,23 @@ +package cn.iocoder.yudao.module.tool.dal.mysql.codegen; + +import cn.iocoder.yudao.module.tool.dal.dataobject.codegen.SchemaColumnDO; +import cn.iocoder.yudao.module.tool.test.BaseDbUnitTest; +import org.junit.jupiter.api.Test; + +import javax.annotation.Resource; +import java.util.List; + +import static org.junit.jupiter.api.Assertions.assertTrue; + +public class SchemaColumnMapperTest extends BaseDbUnitTest { + + @Resource + private SchemaColumnMapper schemaColumnMapper; + + @Test + public void testSelectListByTableName() { + List columns = schemaColumnMapper.selectListByTableName("", "inf_config"); + assertTrue(columns.size() > 0); + } + +} diff --git a/yudao-module-tool/yudao-module-tool-impl/src/test-integration/java/cn/iocoder/yudao/module/tool/dal/mysql/package-info.java b/yudao-module-tool/yudao-module-tool-impl/src/test-integration/java/cn/iocoder/yudao/module/tool/dal/mysql/package-info.java new file mode 100644 index 0000000..858488d --- /dev/null +++ b/yudao-module-tool/yudao-module-tool-impl/src/test-integration/java/cn/iocoder/yudao/module/tool/dal/mysql/package-info.java @@ -0,0 +1,4 @@ +/** + * 占位 + */ +package cn.iocoder.yudao.module.tool.dal.mysql; diff --git a/yudao-module-tool/yudao-module-tool-impl/src/test-integration/java/cn/iocoder/yudao/module/tool/dal/package-info.java b/yudao-module-tool/yudao-module-tool-impl/src/test-integration/java/cn/iocoder/yudao/module/tool/dal/package-info.java new file mode 100644 index 0000000..589846c --- /dev/null +++ b/yudao-module-tool/yudao-module-tool-impl/src/test-integration/java/cn/iocoder/yudao/module/tool/dal/package-info.java @@ -0,0 +1,4 @@ +/** + * 占位 + */ +package cn.iocoder.yudao.module.tool.dal; diff --git a/yudao-module-tool/yudao-module-tool-impl/src/test-integration/java/cn/iocoder/yudao/module/tool/service/codegen/CodegenEngineTest.java b/yudao-module-tool/yudao-module-tool-impl/src/test-integration/java/cn/iocoder/yudao/module/tool/service/codegen/CodegenEngineTest.java new file mode 100644 index 0000000..eabc880 --- /dev/null +++ b/yudao-module-tool/yudao-module-tool-impl/src/test-integration/java/cn/iocoder/yudao/module/tool/service/codegen/CodegenEngineTest.java @@ -0,0 +1,34 @@ +package cn.iocoder.yudao.module.tool.service.codegen; + +import cn.iocoder.yudao.module.tool.dal.dataobject.codegen.CodegenColumnDO; +import cn.iocoder.yudao.module.tool.dal.dataobject.codegen.CodegenTableDO; +import cn.iocoder.yudao.module.tool.dal.mysql.codegen.CodegenColumnMapper; +import cn.iocoder.yudao.module.tool.dal.mysql.codegen.CodegenTableMapper; +import cn.iocoder.yudao.module.tool.service.codegen.inner.CodegenEngine; +import cn.iocoder.yudao.module.tool.test.BaseDbUnitTest; +import org.junit.jupiter.api.Test; + +import javax.annotation.Resource; +import java.util.List; +import java.util.Map; + +public class CodegenEngineTest extends BaseDbUnitTest { + + @Resource + private CodegenTableMapper codegenTableMapper; + @Resource + private CodegenColumnMapper codegenColumnMapper; + + @Resource + private CodegenEngine codegenEngine; + + @Test + public void testExecute() { + CodegenTableDO table = codegenTableMapper.selectById(20); + List columns = codegenColumnMapper.selectListByTableId(table.getId()); + Map result = codegenEngine.execute(table, columns); + result.forEach((s, s2) -> System.out.println(s2)); +// System.out.println(result.get("vue/views/system/test/index.vue")); + } + +} diff --git a/yudao-module-tool/yudao-module-tool-impl/src/test-integration/java/cn/iocoder/yudao/module/tool/service/codegen/CodegenSQLParserTest.java b/yudao-module-tool/yudao-module-tool-impl/src/test-integration/java/cn/iocoder/yudao/module/tool/service/codegen/CodegenSQLParserTest.java new file mode 100644 index 0000000..e9a2603 --- /dev/null +++ b/yudao-module-tool/yudao-module-tool-impl/src/test-integration/java/cn/iocoder/yudao/module/tool/service/codegen/CodegenSQLParserTest.java @@ -0,0 +1,29 @@ +package cn.iocoder.yudao.module.tool.service.codegen; + +import cn.iocoder.yudao.module.tool.service.codegen.inner.CodegenSQLParser; +import cn.iocoder.yudao.module.tool.test.BaseDbUnitTest; +import org.junit.jupiter.api.Test; + +public class CodegenSQLParserTest extends BaseDbUnitTest { + + @Test + public void testParse() { + String sql = "CREATE TABLE `tool_test_demo` (\n" + + " `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '编号',\n" + + " `name` varchar(100) NOT NULL DEFAULT '' COMMENT '名字',\n" + + " `status` tinyint(4) NOT NULL DEFAULT '0' COMMENT '状态',\n" + + " `type` tinyint(4) NOT NULL COMMENT '类型',\n" + + " `category` tinyint(4) NOT NULL COMMENT '分类',\n" + + " `remark` varchar(500) DEFAULT NULL COMMENT '备注',\n" + + " `create_by` varchar(64) DEFAULT '' COMMENT '创建者',\n" + + " `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',\n" + + " `update_by` varchar(64) DEFAULT '' COMMENT '更新者',\n" + + " `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',\n" + + " `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',\n" + + " PRIMARY KEY (`id`) USING BTREE\n" + + ") ENGINE=InnoDB AUTO_INCREMENT=108 DEFAULT CHARSET=utf8mb4 COMMENT='字典类型表';"; + CodegenSQLParser.parse(sql); + // TODO 芋艿:后续完善断言 + } + +} diff --git a/yudao-module-tool/yudao-module-tool-impl/src/test-integration/java/cn/iocoder/yudao/module/tool/service/codegen/CodegenServiceImplTest.java b/yudao-module-tool/yudao-module-tool-impl/src/test-integration/java/cn/iocoder/yudao/module/tool/service/codegen/CodegenServiceImplTest.java new file mode 100644 index 0000000..461f45b --- /dev/null +++ b/yudao-module-tool/yudao-module-tool-impl/src/test-integration/java/cn/iocoder/yudao/module/tool/service/codegen/CodegenServiceImplTest.java @@ -0,0 +1,20 @@ +package cn.iocoder.yudao.module.tool.service.codegen; + +import cn.iocoder.yudao.module.tool.test.BaseDbUnitTest; +import org.junit.jupiter.api.Test; + +import javax.annotation.Resource; + +class CodegenServiceImplTest extends BaseDbUnitTest { + + @Resource + private CodegenServiceImpl codegenService; + + @Test + public void tetCreateCodegenTable() { + codegenService.createCodegen(0L, "tool_test_demo"); +// toolCodegenService.createCodegenTable("tool_codegen_table"); +// toolCodegenService.createCodegen("tool_codegen_column"); + } + +} diff --git a/yudao-module-tool/yudao-module-tool-impl/src/test-integration/java/cn/iocoder/yudao/module/tool/service/package-info.java b/yudao-module-tool/yudao-module-tool-impl/src/test-integration/java/cn/iocoder/yudao/module/tool/service/package-info.java new file mode 100644 index 0000000..5dd2f92 --- /dev/null +++ b/yudao-module-tool/yudao-module-tool-impl/src/test-integration/java/cn/iocoder/yudao/module/tool/service/package-info.java @@ -0,0 +1,4 @@ +/** + * 占位 + */ +package cn.iocoder.yudao.module.tool.service; diff --git a/yudao-module-tool/yudao-module-tool-impl/src/test-integration/java/cn/iocoder/yudao/module/tool/test/BaseDbAndRedisIntegrationTest.java b/yudao-module-tool/yudao-module-tool-impl/src/test-integration/java/cn/iocoder/yudao/module/tool/test/BaseDbAndRedisIntegrationTest.java new file mode 100644 index 0000000..7ce9039 --- /dev/null +++ b/yudao-module-tool/yudao-module-tool-impl/src/test-integration/java/cn/iocoder/yudao/module/tool/test/BaseDbAndRedisIntegrationTest.java @@ -0,0 +1,38 @@ +package cn.iocoder.yudao.module.tool.test; + +import cn.iocoder.yudao.framework.datasource.config.YudaoDataSourceAutoConfiguration; +import cn.iocoder.yudao.framework.mybatis.config.YudaoMybatisAutoConfiguration; +import cn.iocoder.yudao.framework.redis.config.YudaoRedisAutoConfiguration; +import com.baomidou.dynamic.datasource.spring.boot.autoconfigure.DynamicDataSourceAutoConfiguration; +import com.baomidou.mybatisplus.autoconfigure.MybatisPlusAutoConfiguration; +import org.redisson.spring.starter.RedissonAutoConfiguration; +import org.springframework.boot.autoconfigure.data.redis.RedisAutoConfiguration; +import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; +import org.springframework.boot.autoconfigure.jdbc.DataSourceTransactionManagerAutoConfiguration; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.context.annotation.Import; +import org.springframework.test.context.ActiveProfiles; + +@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.NONE, classes = BaseDbAndRedisIntegrationTest.Application.class) +@ActiveProfiles("integration-test") // 设置使用 application-integration-test 配置文件 +public class BaseDbAndRedisIntegrationTest { + + @Import({ + // DB 配置类 + DynamicDataSourceAutoConfiguration.class, // Dynamic Datasource 配置类 + YudaoDataSourceAutoConfiguration.class, // 自己的 DB 配置类 + DataSourceAutoConfiguration.class, // Spring DB 自动配置类 + DataSourceTransactionManagerAutoConfiguration.class, // Spring 事务自动配置类 + // MyBatis 配置类 + YudaoMybatisAutoConfiguration.class, // 自己的 MyBatis 配置类 + MybatisPlusAutoConfiguration.class, // MyBatis 的自动配置类 + + // Redis 配置类 + RedisAutoConfiguration.class, // Spring Redis 自动配置类 + YudaoRedisAutoConfiguration.class, // 自己的 Redis 配置类 + RedissonAutoConfiguration.class, // Redisson 自动高配置类 + }) + public static class Application { + } + +} diff --git a/yudao-module-tool/yudao-module-tool-impl/src/test-integration/java/cn/iocoder/yudao/module/tool/test/BaseRedisIntegrationTest.java b/yudao-module-tool/yudao-module-tool-impl/src/test-integration/java/cn/iocoder/yudao/module/tool/test/BaseRedisIntegrationTest.java new file mode 100644 index 0000000..06bae00 --- /dev/null +++ b/yudao-module-tool/yudao-module-tool-impl/src/test-integration/java/cn/iocoder/yudao/module/tool/test/BaseRedisIntegrationTest.java @@ -0,0 +1,23 @@ +package cn.iocoder.yudao.module.tool.test; + +import cn.iocoder.yudao.framework.redis.config.YudaoRedisAutoConfiguration; +import org.redisson.spring.starter.RedissonAutoConfiguration; +import org.springframework.boot.autoconfigure.data.redis.RedisAutoConfiguration; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.context.annotation.Import; +import org.springframework.test.context.ActiveProfiles; + +@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.NONE, classes = BaseRedisIntegrationTest.Application.class) +@ActiveProfiles("integration-test") // 设置使用 application-integration-test 配置文件 +public class BaseRedisIntegrationTest { + + @Import({ + // Redis 配置类 + RedisAutoConfiguration.class, // Spring Redis 自动配置类 + YudaoRedisAutoConfiguration.class, // 自己的 Redis 配置类 + RedissonAutoConfiguration.class, // Redisson 自动高配置类 + }) + public static class Application { + } + +} diff --git a/yudao-module-tool/yudao-module-tool-impl/src/test-integration/resources/application-integration-test.yaml b/yudao-module-tool/yudao-module-tool-impl/src/test-integration/resources/application-integration-test.yaml new file mode 100644 index 0000000..d9612ee --- /dev/null +++ b/yudao-module-tool/yudao-module-tool-impl/src/test-integration/resources/application-integration-test.yaml @@ -0,0 +1,108 @@ +spring: + main: + lazy-initialization: true # 开启懒加载,加快速度 + banner-mode: off # 单元测试,禁用 Banner + +--- #################### 数据库相关配置 #################### + +spring: + # 数据源配置项 + autoconfigure: + exclude: + - com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure # 排除 Druid 的自动配置,使用 dynamic-datasource-spring-boot-starter 配置多数据源 + datasource: + druid: # Druid 【监控】相关的全局配置 + web-stat-filter: + enabled: true + stat-view-servlet: + enabled: true + allow: # 设置白名单,不填则允许所有访问 + url-pattern: /druid/* + login-username: # 控制台管理用户名和密码 + login-password: + filter: + stat: + enabled: true + log-slow-sql: true # 慢 SQL 记录 + slow-sql-millis: 100 + merge-sql: true + wall: + config: + multi-statement-allow: true + dynamic: # 多数据源配置 + druid: # Druid 【连接池】相关的全局配置 + initial-size: 5 # 初始连接数 + min-idle: 10 # 最小连接池数量 + max-active: 20 # 最大连接池数量 + max-wait: 600000 # 配置获取连接等待超时的时间,单位:毫秒 + time-between-eviction-runs-millis: 60000 # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位:毫秒 + min-evictable-idle-time-millis: 300000 # 配置一个连接在池中最小生存的时间,单位:毫秒 + max-evictable-idle-time-millis: 900000 # 配置一个连接在池中最大生存的时间,单位:毫秒 + validation-query: SELECT 1 FROM DUAL # 配置检测连接是否有效 + test-while-idle: true + test-on-borrow: false + test-on-return: false + primary: master + datasource: + master: + name: ruoyi-vue-pro + url: jdbc:mysql://127.0.0.1:3306/${spring.datasource.dynamic.datasource.master.name}?useSSL=false&useUnicode=true&characterEncoding=UTF-8&serverTimezone=CTT + driver-class-name: com.mysql.jdbc.Driver + username: root + password: 123456 + slave: # 模拟从库,可根据自己需要修改 + name: ruoyi-vue-pro + url: jdbc:mysql://127.0.0.1:3306/${spring.datasource.dynamic.datasource.slave.name}?useSSL=false&useUnicode=true&characterEncoding=UTF-8&serverTimezone=CTT + driver-class-name: com.mysql.jdbc.Driver + username: root + password: 123456 + + # Redis 配置。Redisson 默认的配置足够使用,一般不需要进行调优 + redis: + host: 127.0.0.1 # 地址 + port: 6379 # 端口 + database: 0 # 数据库索引 + +mybatis: + lazy-initialization: true # 单元测试,设置 MyBatis Mapper 延迟加载,加速每个单元测试 + +--- #################### 定时任务相关配置 #################### + +--- #################### 配置中心相关配置 #################### + +--- #################### 服务保障相关配置 #################### + +# Lock4j 配置项(单元测试,禁用 Lock4j) + +# Resilience4j 配置项 +resilience4j: + ratelimiter: + instances: + backendA: + limit-for-period: 1 # 每个周期内,允许的请求数。默认为 50 + limit-refresh-period: 60s # 每个周期的时长,单位:微秒。默认为 500 + timeout-duration: 1s # 被限流时,阻塞等待的时长,单位:微秒。默认为 5s + register-health-indicator: true # 是否注册到健康监测 + +--- #################### 监控相关配置 #################### + +--- #################### 芋道相关配置 #################### + +# 芋道配置项,设置当前项目所有自定义的配置 +yudao: + security: + token-header: Authorization + token-secret: abcdefghijklmnopqrstuvwxyz + token-timeout: 1d + session-timeout: 30m + mock-enable: true + mock-secret: test + swagger: + enable: false # 单元测试,禁用 Swagger + file: + base-path: http://127.0.0.1:${server.port}/${yudao.web.api-prefix}/file/get/ + xss: + enable: false + exclude-urls: # 如下两个 url,仅仅是为了演示,去掉配置也没关系 + - ${spring.boot.admin.context-path}/** # 不处理 Spring Boot Admin 的请求 + - ${management.endpoints.web.base-path}/** # 不处理 Actuator 的请求 diff --git a/yudao-server/src/test-integration/java/cn/iocoder/yudao/adminserver/BaseDbAndRedisIntegrationTest.java b/yudao-server/src/test-integration/java/cn/iocoder/yudao/adminserver/BaseDbAndRedisIntegrationTest.java deleted file mode 100644 index cf7b03f..0000000 --- a/yudao-server/src/test-integration/java/cn/iocoder/yudao/adminserver/BaseDbAndRedisIntegrationTest.java +++ /dev/null @@ -1,38 +0,0 @@ -package cn.iocoder.yudao.server; - -import cn.iocoder.yudao.framework.datasource.config.YudaoDataSourceAutoConfiguration; -import cn.iocoder.yudao.framework.mybatis.config.YudaoMybatisAutoConfiguration; -import cn.iocoder.yudao.framework.redis.config.YudaoRedisAutoConfiguration; -import com.baomidou.dynamic.datasource.spring.boot.autoconfigure.DynamicDataSourceAutoConfiguration; -import com.baomidou.mybatisplus.autoconfigure.MybatisPlusAutoConfiguration; -import org.redisson.spring.starter.RedissonAutoConfiguration; -import org.springframework.boot.autoconfigure.data.redis.RedisAutoConfiguration; -import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; -import org.springframework.boot.autoconfigure.jdbc.DataSourceTransactionManagerAutoConfiguration; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.context.annotation.Import; -import org.springframework.test.context.ActiveProfiles; - -@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.NONE, classes = BaseDbAndRedisIntegrationTest.Application.class) -@ActiveProfiles("integration-test") // 设置使用 application-integration-test 配置文件 -public class BaseDbAndRedisIntegrationTest { - - @Import({ - // DB 配置类 - DynamicDataSourceAutoConfiguration.class, // Dynamic Datasource 配置类 - YudaoDataSourceAutoConfiguration.class, // 自己的 DB 配置类 - DataSourceAutoConfiguration.class, // Spring DB 自动配置类 - DataSourceTransactionManagerAutoConfiguration.class, // Spring 事务自动配置类 - // MyBatis 配置类 - YudaoMybatisAutoConfiguration.class, // 自己的 MyBatis 配置类 - MybatisPlusAutoConfiguration.class, // MyBatis 的自动配置类 - - // Redis 配置类 - RedisAutoConfiguration.class, // Spring Redis 自动配置类 - YudaoRedisAutoConfiguration.class, // 自己的 Redis 配置类 - RedissonAutoConfiguration.class, // Redisson 自动高配置类 - }) - public static class Application { - } - -} diff --git a/yudao-server/src/test-integration/java/cn/iocoder/yudao/adminserver/BaseRedisIntegrationTest.java b/yudao-server/src/test-integration/java/cn/iocoder/yudao/adminserver/BaseRedisIntegrationTest.java deleted file mode 100644 index d82d0da..0000000 --- a/yudao-server/src/test-integration/java/cn/iocoder/yudao/adminserver/BaseRedisIntegrationTest.java +++ /dev/null @@ -1,23 +0,0 @@ -package cn.iocoder.yudao.server; - -import cn.iocoder.yudao.framework.redis.config.YudaoRedisAutoConfiguration; -import org.redisson.spring.starter.RedissonAutoConfiguration; -import org.springframework.boot.autoconfigure.data.redis.RedisAutoConfiguration; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.context.annotation.Import; -import org.springframework.test.context.ActiveProfiles; - -@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.NONE, classes = BaseRedisIntegrationTest.Application.class) -@ActiveProfiles("integration-test") // 设置使用 application-integration-test 配置文件 -public class BaseRedisIntegrationTest { - - @Import({ - // Redis 配置类 - RedisAutoConfiguration.class, // Spring Redis 自动配置类 - YudaoRedisAutoConfiguration.class, // 自己的 Redis 配置类 - RedissonAutoConfiguration.class, // Redisson 自动高配置类 - }) - public static class Application { - } - -} diff --git a/yudao-server/src/test-integration/java/cn/iocoder/yudao/adminserver/framework/quartz/core/SchedulerManagerTest.java b/yudao-server/src/test-integration/java/cn/iocoder/yudao/adminserver/framework/quartz/core/SchedulerManagerTest.java deleted file mode 100644 index 0fb4cc6..0000000 --- a/yudao-server/src/test-integration/java/cn/iocoder/yudao/adminserver/framework/quartz/core/SchedulerManagerTest.java +++ /dev/null @@ -1,53 +0,0 @@ -package cn.iocoder.yudao.server.framework.quartz.core; - -import cn.hutool.core.util.StrUtil; -import cn.iocoder.yudao.server.BaseDbUnitTest; -import cn.iocoder.yudao.module.system.job.auth.SysUserSessionTimeoutJob; -import cn.iocoder.yudao.framework.quartz.core.scheduler.SchedulerManager; -import org.junit.jupiter.api.Test; -import org.quartz.SchedulerException; - -import javax.annotation.Resource; - -class SchedulerManagerTest extends BaseDbUnitTest { - - @Resource - private SchedulerManager schedulerManager; - - @Test - public void testAddJob() throws SchedulerException { - String jobHandlerName = StrUtil.lowerFirst(SysUserSessionTimeoutJob.class.getSimpleName()); - schedulerManager.addJob(1L, jobHandlerName, "test", "0/10 * * * * ? *", 0, 0); - } - - @Test - public void testUpdateJob() throws SchedulerException { - String jobHandlerName = StrUtil.lowerFirst(SysUserSessionTimeoutJob.class.getSimpleName()); - schedulerManager.updateJob(jobHandlerName, "hahaha", "0/20 * * * * ? *", 0, 0); - } - - @Test - public void testDeleteJob() throws SchedulerException { - String jobHandlerName = StrUtil.lowerFirst(SysUserSessionTimeoutJob.class.getSimpleName()); - schedulerManager.deleteJob(jobHandlerName); - } - - @Test - public void testPauseJob() throws SchedulerException { - String jobHandlerName = StrUtil.lowerFirst(SysUserSessionTimeoutJob.class.getSimpleName()); - schedulerManager.pauseJob(jobHandlerName); - } - - @Test - public void testResumeJob() throws SchedulerException { - String jobHandlerName = StrUtil.lowerFirst(SysUserSessionTimeoutJob.class.getSimpleName()); - schedulerManager.resumeJob(jobHandlerName); - } - - @Test - public void testTriggerJob() throws SchedulerException { - String jobHandlerName = StrUtil.lowerFirst(SysUserSessionTimeoutJob.class.getSimpleName()); - schedulerManager.triggerJob(1L, jobHandlerName, "niubi!!!"); - } - -} diff --git a/yudao-server/src/test-integration/java/cn/iocoder/yudao/adminserver/framework/redis/core/stream/RedisStreamTest.java b/yudao-server/src/test-integration/java/cn/iocoder/yudao/adminserver/framework/redis/core/stream/RedisStreamTest.java deleted file mode 100644 index 284fb10..0000000 --- a/yudao-server/src/test-integration/java/cn/iocoder/yudao/adminserver/framework/redis/core/stream/RedisStreamTest.java +++ /dev/null @@ -1,63 +0,0 @@ -package cn.iocoder.yudao.server.framework.redis.core.stream; - -import cn.hutool.core.thread.ThreadUtil; -import cn.iocoder.yudao.server.BaseRedisIntegrationTest; -import cn.iocoder.yudao.module.system.mq.consumer.mail.SysMailSendConsumer; -import cn.iocoder.yudao.module.system.mq.consumer.sms.SysSmsSendConsumer; -import cn.iocoder.yudao.module.system.mq.message.mail.SysMailSendMessage; -import cn.iocoder.yudao.module.system.mq.message.sms.SysSmsSendMessage; -import cn.iocoder.yudao.framework.mq.core.util.RedisMessageUtils; -import org.junit.jupiter.api.Disabled; -import org.junit.jupiter.api.Test; -import org.springframework.context.annotation.Import; -import org.springframework.data.redis.core.RedisTemplate; -import org.springframework.data.redis.core.StringRedisTemplate; - -import javax.annotation.Resource; -import java.util.concurrent.TimeUnit; - -public class RedisStreamTest { - - @Import({SysSmsSendConsumer.class, SysMailSendConsumer.class}) - @Disabled - public static class ConsumerTest extends BaseRedisIntegrationTest { - - @Test - public void testConsumer() { - ThreadUtil.sleep(1, TimeUnit.DAYS); - } - - } - - @Disabled - public static class ProducerTest extends BaseRedisIntegrationTest { - - @Resource - private StringRedisTemplate stringRedisTemplate; - - @Resource - private RedisTemplate redisTemplate; - - @Test - public void testProducer01() { - for (int i = 0; i < 100; i++) { - // 创建消息 - SysSmsSendMessage message = new SysSmsSendMessage(); - message.setMobile("15601691300").setApiTemplateId("test:" + i); - // 发送消息 - RedisMessageUtils.sendStreamMessage(stringRedisTemplate, message); - } - } - - @Test - public void testProducer02() { - // 创建消息 - SysMailSendMessage message = new SysMailSendMessage(); - message.setAddress("fangfang@mihayou.com").setTemplateCode("test"); - // 发送消息 - RedisMessageUtils.sendStreamMessage(stringRedisTemplate, message); - } - - } - -} diff --git a/yudao-server/src/test-integration/java/cn/iocoder/yudao/adminserver/modules/system/service/sms/SysSmsServiceIntegrationTest.java b/yudao-server/src/test-integration/java/cn/iocoder/yudao/adminserver/modules/system/service/sms/SysSmsServiceIntegrationTest.java deleted file mode 100644 index f3fab89..0000000 --- a/yudao-server/src/test-integration/java/cn/iocoder/yudao/adminserver/modules/system/service/sms/SysSmsServiceIntegrationTest.java +++ /dev/null @@ -1,75 +0,0 @@ -package cn.iocoder.yudao.module.system.service.sms; - -import cn.hutool.core.map.MapUtil; -import cn.hutool.core.thread.ThreadUtil; -import cn.iocoder.yudao.server.BaseDbAndRedisIntegrationTest; -import cn.iocoder.yudao.module.system.mq.consumer.sms.SysSmsSendConsumer; -import cn.iocoder.yudao.module.system.mq.producer.sms.SysSmsProducer; -import cn.iocoder.yudao.module.system.service.sms.impl.SysSmsChannelServiceImpl; -import cn.iocoder.yudao.module.system.service.sms.impl.SysSmsLogServiceImpl; -import cn.iocoder.yudao.module.system.service.sms.impl.SysSmsTemplateServiceImpl; -import cn.iocoder.yudao.module.system.service.user.SysUserService; -import cn.iocoder.yudao.module.system.service.sms.impl.SysSmsCoreServiceImpl; -import cn.iocoder.yudao.framework.common.enums.UserTypeEnum; -import cn.iocoder.yudao.framework.sms.config.YudaoSmsAutoConfiguration; -import org.junit.jupiter.api.Test; -import org.springframework.boot.test.mock.mockito.MockBean; -import org.springframework.context.annotation.Import; - -import javax.annotation.Resource; -import java.util.Map; -import java.util.concurrent.TimeUnit; - -// TODO @芋艿:需要迁移 -@Import({YudaoSmsAutoConfiguration.class, - SysSmsChannelServiceImpl.class, SysSmsCoreServiceImpl.class, SysSmsTemplateServiceImpl.class, SysSmsLogServiceImpl.class, - SysSmsProducer.class, SysSmsSendConsumer.class}) -public class SysSmsServiceIntegrationTest extends BaseDbAndRedisIntegrationTest { - - @Resource - private SysSmsCoreServiceImpl smsService; - @Resource - private SysSmsChannelServiceImpl smsChannelService; - - @MockBean - private SysUserService userService; - - @Test - public void testSendSingleSms_yunpianSuccess() { - // 参数准备 - String mobile = "15601691399"; - Long userId = 1L; - Integer userType = UserTypeEnum.ADMIN.getValue(); - String templateCode = "test_01"; - Map templateParams = MapUtil.builder() - .put("operation", "登录").put("code", "1234").build(); - // 调用 - smsService.sendSingleSms(mobile, userId, userType, templateCode, templateParams); - - // 等待 MQ 消费 - ThreadUtil.sleep(1, TimeUnit.HOURS); - } - - @Test - public void testSendSingleSms_aliyunSuccess() { - // 参数准备 - String mobile = "15601691399"; - Long userId = 1L; - Integer userType = UserTypeEnum.ADMIN.getValue(); - String templateCode = "test_02"; - Map templateParams = MapUtil.builder() - .put("code", "1234").build(); - // 调用 - smsService.sendSingleSms(mobile, userId, userType, templateCode, templateParams); - - // 等待 MQ 消费 - ThreadUtil.sleep(1, TimeUnit.HOURS); - } - -// @Test -// public void testDoSendSms() { -// // 等待 MQ 消费 -// ThreadUtil.sleep(1, TimeUnit.HOURS); -// } - -} diff --git a/yudao-server/src/test-integration/java/cn/iocoder/yudao/adminserver/modules/tool/dal/mysql/codegen/ToolInformationSchemaColumnMapperTest.java b/yudao-server/src/test-integration/java/cn/iocoder/yudao/adminserver/modules/tool/dal/mysql/codegen/ToolInformationSchemaColumnMapperTest.java deleted file mode 100644 index c8ef701..0000000 --- a/yudao-server/src/test-integration/java/cn/iocoder/yudao/adminserver/modules/tool/dal/mysql/codegen/ToolInformationSchemaColumnMapperTest.java +++ /dev/null @@ -1,24 +0,0 @@ -package cn.iocoder.yudao.module.tool.dal.mysql.codegen; - -import cn.iocoder.yudao.server.BaseDbUnitTest; -import cn.iocoder.yudao.module.tool.dal.dataobject.codegen.ToolSchemaColumnDO; -import org.junit.jupiter.api.Test; - -import javax.annotation.Resource; -import java.util.List; - -import static org.junit.jupiter.api.Assertions.assertTrue; - -public class ToolInformationSchemaColumnMapperTest extends BaseDbUnitTest { - - @Resource - private ToolSchemaColumnMapper toolInformationSchemaColumnMapper; - - @Test - public void testSelectListByTableName() { - List columns = toolInformationSchemaColumnMapper - .selectListByTableName("", "inf_config"); - assertTrue(columns.size() > 0); - } - -} diff --git a/yudao-server/src/test-integration/java/cn/iocoder/yudao/adminserver/modules/tool/dal/mysql/codegen/ToolInformationSchemaTableMapperTest.java b/yudao-server/src/test-integration/java/cn/iocoder/yudao/adminserver/modules/tool/dal/mysql/codegen/ToolInformationSchemaTableMapperTest.java deleted file mode 100644 index 43f8f4c..0000000 --- a/yudao-server/src/test-integration/java/cn/iocoder/yudao/adminserver/modules/tool/dal/mysql/codegen/ToolInformationSchemaTableMapperTest.java +++ /dev/null @@ -1,12 +0,0 @@ -package cn.iocoder.yudao.module.tool.dal.mysql.codegen; - -import cn.iocoder.yudao.server.BaseDbUnitTest; - -import javax.annotation.Resource; - -class ToolInformationSchemaTableMapperTest extends BaseDbUnitTest { - - @Resource - private ToolSchemaTableMapper toolInformationSchemaTableMapper; - -} diff --git a/yudao-server/src/test-integration/java/cn/iocoder/yudao/adminserver/modules/tool/service/codegen/ToolCodegenEngineTest.java b/yudao-server/src/test-integration/java/cn/iocoder/yudao/adminserver/modules/tool/service/codegen/ToolCodegenEngineTest.java deleted file mode 100644 index 6d9fd3d..0000000 --- a/yudao-server/src/test-integration/java/cn/iocoder/yudao/adminserver/modules/tool/service/codegen/ToolCodegenEngineTest.java +++ /dev/null @@ -1,34 +0,0 @@ -package cn.iocoder.yudao.module.tool.service.codegen; - -import cn.iocoder.yudao.server.BaseDbUnitTest; -import cn.iocoder.yudao.module.tool.dal.dataobject.codegen.ToolCodegenColumnDO; -import cn.iocoder.yudao.module.tool.dal.dataobject.codegen.ToolCodegenTableDO; -import cn.iocoder.yudao.module.tool.dal.mysql.codegen.ToolCodegenColumnMapper; -import cn.iocoder.yudao.module.tool.dal.mysql.codegen.ToolCodegenTableMapper; -import cn.iocoder.yudao.module.tool.service.codegen.impl.ToolCodegenEngine; -import org.junit.jupiter.api.Test; - -import javax.annotation.Resource; -import java.util.List; -import java.util.Map; - -public class ToolCodegenEngineTest extends BaseDbUnitTest { - - @Resource - private ToolCodegenTableMapper codegenTableMapper; - @Resource - private ToolCodegenColumnMapper codegenColumnMapper; - - @Resource - private ToolCodegenEngine codegenEngine; - - @Test - public void testExecute() { - ToolCodegenTableDO table = codegenTableMapper.selectById(20); - List columns = codegenColumnMapper.selectListByTableId(table.getId()); - Map result = codegenEngine.execute(table, columns); - result.forEach((s, s2) -> System.out.println(s2)); -// System.out.println(result.get("vue/views/system/test/index.vue")); - } - -} diff --git a/yudao-server/src/test-integration/java/cn/iocoder/yudao/adminserver/modules/tool/service/codegen/ToolCodegenSQLParserTest.java b/yudao-server/src/test-integration/java/cn/iocoder/yudao/adminserver/modules/tool/service/codegen/ToolCodegenSQLParserTest.java deleted file mode 100644 index 5d7f636..0000000 --- a/yudao-server/src/test-integration/java/cn/iocoder/yudao/adminserver/modules/tool/service/codegen/ToolCodegenSQLParserTest.java +++ /dev/null @@ -1,29 +0,0 @@ -package cn.iocoder.yudao.module.tool.service.codegen; - -import cn.iocoder.yudao.server.BaseDbUnitTest; -import cn.iocoder.yudao.module.tool.service.codegen.impl.ToolCodegenSQLParser; -import org.junit.jupiter.api.Test; - -public class ToolCodegenSQLParserTest extends BaseDbUnitTest { - - @Test - public void testParse() { - String sql = "CREATE TABLE `tool_test_demo` (\n" + - " `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '编号',\n" + - " `name` varchar(100) NOT NULL DEFAULT '' COMMENT '名字',\n" + - " `status` tinyint(4) NOT NULL DEFAULT '0' COMMENT '状态',\n" + - " `type` tinyint(4) NOT NULL COMMENT '类型',\n" + - " `category` tinyint(4) NOT NULL COMMENT '分类',\n" + - " `remark` varchar(500) DEFAULT NULL COMMENT '备注',\n" + - " `create_by` varchar(64) DEFAULT '' COMMENT '创建者',\n" + - " `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',\n" + - " `update_by` varchar(64) DEFAULT '' COMMENT '更新者',\n" + - " `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',\n" + - " `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',\n" + - " PRIMARY KEY (`id`) USING BTREE\n" + - ") ENGINE=InnoDB AUTO_INCREMENT=108 DEFAULT CHARSET=utf8mb4 COMMENT='字典类型表';"; - ToolCodegenSQLParser.parse(sql); - // TODO 芋艿:后续完善断言 - } - -} diff --git a/yudao-server/src/test-integration/java/cn/iocoder/yudao/adminserver/modules/tool/service/codegen/ToolCodegenServiceImplTest.java b/yudao-server/src/test-integration/java/cn/iocoder/yudao/adminserver/modules/tool/service/codegen/ToolCodegenServiceImplTest.java deleted file mode 100644 index 27bf28d..0000000 --- a/yudao-server/src/test-integration/java/cn/iocoder/yudao/adminserver/modules/tool/service/codegen/ToolCodegenServiceImplTest.java +++ /dev/null @@ -1,21 +0,0 @@ -package cn.iocoder.yudao.module.tool.service.codegen; - -import cn.iocoder.yudao.server.BaseDbUnitTest; -import cn.iocoder.yudao.module.tool.service.codegen.impl.ToolCodegenServiceImpl; -import org.junit.jupiter.api.Test; - -import javax.annotation.Resource; - -class ToolCodegenServiceImplTest extends BaseDbUnitTest { - - @Resource - private ToolCodegenServiceImpl toolCodegenService; - - @Test - public void tetCreateCodegenTable() { - toolCodegenService.createCodegen("tool_test_demo"); -// toolCodegenService.createCodegenTable("tool_codegen_table"); -// toolCodegenService.createCodegen("tool_codegen_column"); - } - -} diff --git a/yudao-server/src/test-integration/resources/application-integration-test.yaml b/yudao-server/src/test-integration/resources/application-integration-test.yaml deleted file mode 100644 index d9612ee..0000000 --- a/yudao-server/src/test-integration/resources/application-integration-test.yaml +++ /dev/null @@ -1,108 +0,0 @@ -spring: - main: - lazy-initialization: true # 开启懒加载,加快速度 - banner-mode: off # 单元测试,禁用 Banner - ---- #################### 数据库相关配置 #################### - -spring: - # 数据源配置项 - autoconfigure: - exclude: - - com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure # 排除 Druid 的自动配置,使用 dynamic-datasource-spring-boot-starter 配置多数据源 - datasource: - druid: # Druid 【监控】相关的全局配置 - web-stat-filter: - enabled: true - stat-view-servlet: - enabled: true - allow: # 设置白名单,不填则允许所有访问 - url-pattern: /druid/* - login-username: # 控制台管理用户名和密码 - login-password: - filter: - stat: - enabled: true - log-slow-sql: true # 慢 SQL 记录 - slow-sql-millis: 100 - merge-sql: true - wall: - config: - multi-statement-allow: true - dynamic: # 多数据源配置 - druid: # Druid 【连接池】相关的全局配置 - initial-size: 5 # 初始连接数 - min-idle: 10 # 最小连接池数量 - max-active: 20 # 最大连接池数量 - max-wait: 600000 # 配置获取连接等待超时的时间,单位:毫秒 - time-between-eviction-runs-millis: 60000 # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位:毫秒 - min-evictable-idle-time-millis: 300000 # 配置一个连接在池中最小生存的时间,单位:毫秒 - max-evictable-idle-time-millis: 900000 # 配置一个连接在池中最大生存的时间,单位:毫秒 - validation-query: SELECT 1 FROM DUAL # 配置检测连接是否有效 - test-while-idle: true - test-on-borrow: false - test-on-return: false - primary: master - datasource: - master: - name: ruoyi-vue-pro - url: jdbc:mysql://127.0.0.1:3306/${spring.datasource.dynamic.datasource.master.name}?useSSL=false&useUnicode=true&characterEncoding=UTF-8&serverTimezone=CTT - driver-class-name: com.mysql.jdbc.Driver - username: root - password: 123456 - slave: # 模拟从库,可根据自己需要修改 - name: ruoyi-vue-pro - url: jdbc:mysql://127.0.0.1:3306/${spring.datasource.dynamic.datasource.slave.name}?useSSL=false&useUnicode=true&characterEncoding=UTF-8&serverTimezone=CTT - driver-class-name: com.mysql.jdbc.Driver - username: root - password: 123456 - - # Redis 配置。Redisson 默认的配置足够使用,一般不需要进行调优 - redis: - host: 127.0.0.1 # 地址 - port: 6379 # 端口 - database: 0 # 数据库索引 - -mybatis: - lazy-initialization: true # 单元测试,设置 MyBatis Mapper 延迟加载,加速每个单元测试 - ---- #################### 定时任务相关配置 #################### - ---- #################### 配置中心相关配置 #################### - ---- #################### 服务保障相关配置 #################### - -# Lock4j 配置项(单元测试,禁用 Lock4j) - -# Resilience4j 配置项 -resilience4j: - ratelimiter: - instances: - backendA: - limit-for-period: 1 # 每个周期内,允许的请求数。默认为 50 - limit-refresh-period: 60s # 每个周期的时长,单位:微秒。默认为 500 - timeout-duration: 1s # 被限流时,阻塞等待的时长,单位:微秒。默认为 5s - register-health-indicator: true # 是否注册到健康监测 - ---- #################### 监控相关配置 #################### - ---- #################### 芋道相关配置 #################### - -# 芋道配置项,设置当前项目所有自定义的配置 -yudao: - security: - token-header: Authorization - token-secret: abcdefghijklmnopqrstuvwxyz - token-timeout: 1d - session-timeout: 30m - mock-enable: true - mock-secret: test - swagger: - enable: false # 单元测试,禁用 Swagger - file: - base-path: http://127.0.0.1:${server.port}/${yudao.web.api-prefix}/file/get/ - xss: - enable: false - exclude-urls: # 如下两个 url,仅仅是为了演示,去掉配置也没关系 - - ${spring.boot.admin.context-path}/** # 不处理 Spring Boot Admin 的请求 - - ${management.endpoints.web.base-path}/** # 不处理 Actuator 的请求 -- libgit2 0.21.4