mirror of
https://gitee.com/huangge1199_admin/vue-pro.git
synced 2024-11-22 23:31:52 +08:00
多模块重构 13:迁移集成测试~
This commit is contained in:
parent
eb2ab3cc4d
commit
61672e0180
@ -35,6 +35,8 @@
|
|||||||
<groupId>jakarta.validation</groupId>
|
<groupId>jakarta.validation</groupId>
|
||||||
<artifactId>jakarta.validation-api</artifactId>
|
<artifactId>jakarta.validation-api</artifactId>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
|
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
||||||
</project>
|
</project>
|
||||||
|
@ -1,52 +1,52 @@
|
|||||||
package cn.iocoder.yudao.server.framework.quartz.core;
|
package cn.iocoder.yudao.module.system.job;
|
||||||
|
|
||||||
import cn.hutool.core.util.StrUtil;
|
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 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.junit.jupiter.api.Test;
|
||||||
import org.quartz.SchedulerException;
|
import org.quartz.SchedulerException;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
|
|
||||||
class SchedulerManagerTest extends BaseDbUnitTest {
|
public class SchedulerManagerTest extends BaseDbUnitTest {
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private SchedulerManager schedulerManager;
|
private SchedulerManager schedulerManager;
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testAddJob() throws SchedulerException {
|
public void testAddJob() throws SchedulerException {
|
||||||
String jobHandlerName = StrUtil.lowerFirst(SysUserSessionTimeoutJob.class.getSimpleName());
|
String jobHandlerName = StrUtil.lowerFirst(UserSessionTimeoutJob.class.getSimpleName());
|
||||||
schedulerManager.addJob(1L, jobHandlerName, "test", "0/10 * * * * ? *", 0, 0);
|
schedulerManager.addJob(1L, jobHandlerName, "test", "0/10 * * * * ? *", 0, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testUpdateJob() throws SchedulerException {
|
public void testUpdateJob() throws SchedulerException {
|
||||||
String jobHandlerName = StrUtil.lowerFirst(SysUserSessionTimeoutJob.class.getSimpleName());
|
String jobHandlerName = StrUtil.lowerFirst(UserSessionTimeoutJob.class.getSimpleName());
|
||||||
schedulerManager.updateJob(jobHandlerName, "hahaha", "0/20 * * * * ? *", 0, 0);
|
schedulerManager.updateJob(jobHandlerName, "hahaha", "0/20 * * * * ? *", 0, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testDeleteJob() throws SchedulerException {
|
public void testDeleteJob() throws SchedulerException {
|
||||||
String jobHandlerName = StrUtil.lowerFirst(SysUserSessionTimeoutJob.class.getSimpleName());
|
String jobHandlerName = StrUtil.lowerFirst(UserSessionTimeoutJob.class.getSimpleName());
|
||||||
schedulerManager.deleteJob(jobHandlerName);
|
schedulerManager.deleteJob(jobHandlerName);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testPauseJob() throws SchedulerException {
|
public void testPauseJob() throws SchedulerException {
|
||||||
String jobHandlerName = StrUtil.lowerFirst(SysUserSessionTimeoutJob.class.getSimpleName());
|
String jobHandlerName = StrUtil.lowerFirst(UserSessionTimeoutJob.class.getSimpleName());
|
||||||
schedulerManager.pauseJob(jobHandlerName);
|
schedulerManager.pauseJob(jobHandlerName);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testResumeJob() throws SchedulerException {
|
public void testResumeJob() throws SchedulerException {
|
||||||
String jobHandlerName = StrUtil.lowerFirst(SysUserSessionTimeoutJob.class.getSimpleName());
|
String jobHandlerName = StrUtil.lowerFirst(UserSessionTimeoutJob.class.getSimpleName());
|
||||||
schedulerManager.resumeJob(jobHandlerName);
|
schedulerManager.resumeJob(jobHandlerName);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testTriggerJob() throws SchedulerException {
|
public void testTriggerJob() throws SchedulerException {
|
||||||
String jobHandlerName = StrUtil.lowerFirst(SysUserSessionTimeoutJob.class.getSimpleName());
|
String jobHandlerName = StrUtil.lowerFirst(UserSessionTimeoutJob.class.getSimpleName());
|
||||||
schedulerManager.triggerJob(1L, jobHandlerName, "niubi!!!");
|
schedulerManager.triggerJob(1L, jobHandlerName, "niubi!!!");
|
||||||
}
|
}
|
||||||
|
|
@ -1,24 +1,23 @@
|
|||||||
package cn.iocoder.yudao.server.framework.redis.core.stream;
|
package cn.iocoder.yudao.module.system.mq;
|
||||||
|
|
||||||
import cn.hutool.core.thread.ThreadUtil;
|
import cn.hutool.core.thread.ThreadUtil;
|
||||||
import cn.iocoder.yudao.server.BaseRedisIntegrationTest;
|
import cn.iocoder.yudao.framework.mq.core.RedisMQTemplate;
|
||||||
import cn.iocoder.yudao.module.system.mq.consumer.mail.SysMailSendConsumer;
|
import cn.iocoder.yudao.module.system.mq.consumer.mail.MailSendConsumer;
|
||||||
import cn.iocoder.yudao.module.system.mq.consumer.sms.SysSmsSendConsumer;
|
import cn.iocoder.yudao.module.system.mq.consumer.sms.SmsSendConsumer;
|
||||||
import cn.iocoder.yudao.module.system.mq.message.mail.SysMailSendMessage;
|
import cn.iocoder.yudao.module.system.mq.message.mail.MailSendMessage;
|
||||||
import cn.iocoder.yudao.module.system.mq.message.sms.SysSmsSendMessage;
|
import cn.iocoder.yudao.module.system.mq.message.sms.SmsSendMessage;
|
||||||
import cn.iocoder.yudao.framework.mq.core.util.RedisMessageUtils;
|
import cn.iocoder.yudao.module.system.test.BaseRedisIntegrationTest;
|
||||||
import org.junit.jupiter.api.Disabled;
|
import org.junit.jupiter.api.Disabled;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
import org.springframework.context.annotation.Import;
|
import org.springframework.context.annotation.Import;
|
||||||
import org.springframework.data.redis.core.RedisTemplate;
|
import org.springframework.data.redis.core.RedisTemplate;
|
||||||
import org.springframework.data.redis.core.StringRedisTemplate;
|
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import java.util.concurrent.TimeUnit;
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
public class RedisStreamTest {
|
public class RedisStreamTest {
|
||||||
|
|
||||||
@Import({SysSmsSendConsumer.class, SysMailSendConsumer.class})
|
@Import({SmsSendConsumer.class, MailSendConsumer.class})
|
||||||
@Disabled
|
@Disabled
|
||||||
public static class ConsumerTest extends BaseRedisIntegrationTest {
|
public static class ConsumerTest extends BaseRedisIntegrationTest {
|
||||||
|
|
||||||
@ -33,7 +32,7 @@ public class RedisStreamTest {
|
|||||||
public static class ProducerTest extends BaseRedisIntegrationTest {
|
public static class ProducerTest extends BaseRedisIntegrationTest {
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private StringRedisTemplate stringRedisTemplate;
|
private RedisMQTemplate redisMQTemplate;
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private RedisTemplate<String, Object> redisTemplate;
|
private RedisTemplate<String, Object> redisTemplate;
|
||||||
@ -42,20 +41,20 @@ public class RedisStreamTest {
|
|||||||
public void testProducer01() {
|
public void testProducer01() {
|
||||||
for (int i = 0; i < 100; i++) {
|
for (int i = 0; i < 100; i++) {
|
||||||
// 创建消息
|
// 创建消息
|
||||||
SysSmsSendMessage message = new SysSmsSendMessage();
|
SmsSendMessage message = new SmsSendMessage();
|
||||||
message.setMobile("15601691300").setApiTemplateId("test:" + i);
|
message.setMobile("15601691300").setApiTemplateId("test:" + i);
|
||||||
// 发送消息
|
// 发送消息
|
||||||
RedisMessageUtils.sendStreamMessage(stringRedisTemplate, message);
|
redisMQTemplate.send(message);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testProducer02() {
|
public void testProducer02() {
|
||||||
// 创建消息
|
// 创建消息
|
||||||
SysMailSendMessage message = new SysMailSendMessage();
|
MailSendMessage message = new MailSendMessage();
|
||||||
message.setAddress("fangfang@mihayou.com").setTemplateCode("test");
|
message.setAddress("fangfang@mihayou.com").setTemplateCode("test");
|
||||||
// 发送消息
|
// 发送消息
|
||||||
RedisMessageUtils.sendStreamMessage(stringRedisTemplate, message);
|
redisMQTemplate.send(message);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
@ -0,0 +1,4 @@
|
|||||||
|
/**
|
||||||
|
* 占位
|
||||||
|
*/
|
||||||
|
package cn.iocoder.yudao.module.system.service;
|
@ -2,16 +2,12 @@ package cn.iocoder.yudao.module.system.service.sms;
|
|||||||
|
|
||||||
import cn.hutool.core.map.MapUtil;
|
import cn.hutool.core.map.MapUtil;
|
||||||
import cn.hutool.core.thread.ThreadUtil;
|
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.common.enums.UserTypeEnum;
|
||||||
import cn.iocoder.yudao.framework.sms.config.YudaoSmsAutoConfiguration;
|
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.junit.jupiter.api.Test;
|
||||||
import org.springframework.boot.test.mock.mockito.MockBean;
|
import org.springframework.boot.test.mock.mockito.MockBean;
|
||||||
import org.springframework.context.annotation.Import;
|
import org.springframework.context.annotation.Import;
|
||||||
@ -22,17 +18,17 @@ import java.util.concurrent.TimeUnit;
|
|||||||
|
|
||||||
// TODO @芋艿:需要迁移
|
// TODO @芋艿:需要迁移
|
||||||
@Import({YudaoSmsAutoConfiguration.class,
|
@Import({YudaoSmsAutoConfiguration.class,
|
||||||
SysSmsChannelServiceImpl.class, SysSmsCoreServiceImpl.class, SysSmsTemplateServiceImpl.class, SysSmsLogServiceImpl.class,
|
SmsChannelServiceImpl.class, SmsSendServiceImpl.class, SmsTemplateServiceImpl.class, SmsLogServiceImpl.class,
|
||||||
SysSmsProducer.class, SysSmsSendConsumer.class})
|
SmsProducer.class, SmsSendConsumer.class})
|
||||||
public class SysSmsServiceIntegrationTest extends BaseDbAndRedisIntegrationTest {
|
public class SmsServiceIntegrationTest extends BaseDbAndRedisIntegrationTest {
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private SysSmsCoreServiceImpl smsService;
|
private SmsSendServiceImpl smsService;
|
||||||
@Resource
|
@Resource
|
||||||
private SysSmsChannelServiceImpl smsChannelService;
|
private SmsChannelServiceImpl smsChannelService;
|
||||||
|
|
||||||
@MockBean
|
@MockBean
|
||||||
private SysUserService userService;
|
private AdminUserService userService;
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testSendSingleSms_yunpianSuccess() {
|
public void testSendSingleSms_yunpianSuccess() {
|
@ -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 {
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -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 {
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -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<SchemaColumnDO> columns = schemaColumnMapper.selectListByTableName("", "inf_config");
|
||||||
|
assertTrue(columns.size() > 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,4 @@
|
|||||||
|
/**
|
||||||
|
* 占位
|
||||||
|
*/
|
||||||
|
package cn.iocoder.yudao.module.tool.dal.mysql;
|
@ -0,0 +1,4 @@
|
|||||||
|
/**
|
||||||
|
* 占位
|
||||||
|
*/
|
||||||
|
package cn.iocoder.yudao.module.tool.dal;
|
@ -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<CodegenColumnDO> columns = codegenColumnMapper.selectListByTableId(table.getId());
|
||||||
|
Map<String, String> result = codegenEngine.execute(table, columns);
|
||||||
|
result.forEach((s, s2) -> System.out.println(s2));
|
||||||
|
// System.out.println(result.get("vue/views/system/test/index.vue"));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -1,10 +1,10 @@
|
|||||||
package cn.iocoder.yudao.module.tool.service.codegen;
|
package cn.iocoder.yudao.module.tool.service.codegen;
|
||||||
|
|
||||||
import cn.iocoder.yudao.server.BaseDbUnitTest;
|
import cn.iocoder.yudao.module.tool.service.codegen.inner.CodegenSQLParser;
|
||||||
import cn.iocoder.yudao.module.tool.service.codegen.impl.ToolCodegenSQLParser;
|
import cn.iocoder.yudao.module.tool.test.BaseDbUnitTest;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
public class ToolCodegenSQLParserTest extends BaseDbUnitTest {
|
public class CodegenSQLParserTest extends BaseDbUnitTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testParse() {
|
public void testParse() {
|
||||||
@ -22,7 +22,7 @@ public class ToolCodegenSQLParserTest extends BaseDbUnitTest {
|
|||||||
" `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',\n" +
|
" `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',\n" +
|
||||||
" PRIMARY KEY (`id`) USING BTREE\n" +
|
" PRIMARY KEY (`id`) USING BTREE\n" +
|
||||||
") ENGINE=InnoDB AUTO_INCREMENT=108 DEFAULT CHARSET=utf8mb4 COMMENT='字典类型表';";
|
") ENGINE=InnoDB AUTO_INCREMENT=108 DEFAULT CHARSET=utf8mb4 COMMENT='字典类型表';";
|
||||||
ToolCodegenSQLParser.parse(sql);
|
CodegenSQLParser.parse(sql);
|
||||||
// TODO 芋艿:后续完善断言
|
// TODO 芋艿:后续完善断言
|
||||||
}
|
}
|
||||||
|
|
@ -1,19 +1,18 @@
|
|||||||
package cn.iocoder.yudao.module.tool.service.codegen;
|
package cn.iocoder.yudao.module.tool.service.codegen;
|
||||||
|
|
||||||
import cn.iocoder.yudao.server.BaseDbUnitTest;
|
import cn.iocoder.yudao.module.tool.test.BaseDbUnitTest;
|
||||||
import cn.iocoder.yudao.module.tool.service.codegen.impl.ToolCodegenServiceImpl;
|
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
|
|
||||||
class ToolCodegenServiceImplTest extends BaseDbUnitTest {
|
class CodegenServiceImplTest extends BaseDbUnitTest {
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private ToolCodegenServiceImpl toolCodegenService;
|
private CodegenServiceImpl codegenService;
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void tetCreateCodegenTable() {
|
public void tetCreateCodegenTable() {
|
||||||
toolCodegenService.createCodegen("tool_test_demo");
|
codegenService.createCodegen(0L, "tool_test_demo");
|
||||||
// toolCodegenService.createCodegenTable("tool_codegen_table");
|
// toolCodegenService.createCodegenTable("tool_codegen_table");
|
||||||
// toolCodegenService.createCodegen("tool_codegen_column");
|
// toolCodegenService.createCodegen("tool_codegen_column");
|
||||||
}
|
}
|
@ -0,0 +1,4 @@
|
|||||||
|
/**
|
||||||
|
* 占位
|
||||||
|
*/
|
||||||
|
package cn.iocoder.yudao.module.tool.service;
|
@ -1,4 +1,4 @@
|
|||||||
package cn.iocoder.yudao.server;
|
package cn.iocoder.yudao.module.tool.test;
|
||||||
|
|
||||||
import cn.iocoder.yudao.framework.datasource.config.YudaoDataSourceAutoConfiguration;
|
import cn.iocoder.yudao.framework.datasource.config.YudaoDataSourceAutoConfiguration;
|
||||||
import cn.iocoder.yudao.framework.mybatis.config.YudaoMybatisAutoConfiguration;
|
import cn.iocoder.yudao.framework.mybatis.config.YudaoMybatisAutoConfiguration;
|
@ -1,4 +1,4 @@
|
|||||||
package cn.iocoder.yudao.server;
|
package cn.iocoder.yudao.module.tool.test;
|
||||||
|
|
||||||
import cn.iocoder.yudao.framework.redis.config.YudaoRedisAutoConfiguration;
|
import cn.iocoder.yudao.framework.redis.config.YudaoRedisAutoConfiguration;
|
||||||
import org.redisson.spring.starter.RedissonAutoConfiguration;
|
import org.redisson.spring.starter.RedissonAutoConfiguration;
|
@ -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 的请求
|
@ -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<ToolSchemaColumnDO> columns = toolInformationSchemaColumnMapper
|
|
||||||
.selectListByTableName("", "inf_config");
|
|
||||||
assertTrue(columns.size() > 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@ -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;
|
|
||||||
|
|
||||||
}
|
|
@ -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<ToolCodegenColumnDO> columns = codegenColumnMapper.selectListByTableId(table.getId());
|
|
||||||
Map<String, String> result = codegenEngine.execute(table, columns);
|
|
||||||
result.forEach((s, s2) -> System.out.println(s2));
|
|
||||||
// System.out.println(result.get("vue/views/system/test/index.vue"));
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
Loading…
Reference in New Issue
Block a user