Commit 40ba456fdecad74951177b9ae53dec5502cec3f0
1 parent
413656c0
1. 修复 MenuServiceTest 单元测试
Showing
4 changed files
with
18 additions
and
8 deletions
yudao-framework/yudao-common/pom.xml
| @@ -105,6 +105,11 @@ | @@ -105,6 +105,11 @@ | ||
| 105 | <artifactId>jackson-core</artifactId> | 105 | <artifactId>jackson-core</artifactId> |
| 106 | <scope>provided</scope> <!-- 设置为 provided,只有工具类需要使用到 --> | 106 | <scope>provided</scope> <!-- 设置为 provided,只有工具类需要使用到 --> |
| 107 | </dependency> | 107 | </dependency> |
| 108 | + <dependency> | ||
| 109 | + <groupId>com.fasterxml.jackson.datatype</groupId> | ||
| 110 | + <artifactId>jackson-datatype-jsr310</artifactId> | ||
| 111 | + <scope>provided</scope> <!-- 设置为 provided,只有工具类需要使用到 --> | ||
| 112 | + </dependency> | ||
| 108 | 113 | ||
| 109 | <dependency> | 114 | <dependency> |
| 110 | <groupId>org.slf4j</groupId> | 115 | <groupId>org.slf4j</groupId> |
yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/json/JsonUtils.java
| @@ -7,6 +7,7 @@ import com.fasterxml.jackson.core.type.TypeReference; | @@ -7,6 +7,7 @@ import com.fasterxml.jackson.core.type.TypeReference; | ||
| 7 | import com.fasterxml.jackson.databind.JsonNode; | 7 | import com.fasterxml.jackson.databind.JsonNode; |
| 8 | import com.fasterxml.jackson.databind.ObjectMapper; | 8 | import com.fasterxml.jackson.databind.ObjectMapper; |
| 9 | import com.fasterxml.jackson.databind.SerializationFeature; | 9 | import com.fasterxml.jackson.databind.SerializationFeature; |
| 10 | +import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; | ||
| 10 | import lombok.SneakyThrows; | 11 | import lombok.SneakyThrows; |
| 11 | import lombok.experimental.UtilityClass; | 12 | import lombok.experimental.UtilityClass; |
| 12 | import lombok.extern.slf4j.Slf4j; | 13 | import lombok.extern.slf4j.Slf4j; |
| @@ -28,6 +29,7 @@ public class JsonUtils { | @@ -28,6 +29,7 @@ public class JsonUtils { | ||
| 28 | 29 | ||
| 29 | static { | 30 | static { |
| 30 | objectMapper.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false); | 31 | objectMapper.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false); |
| 32 | + objectMapper.registerModules(new JavaTimeModule()); // 解决 LocalDateTime 的序列化 | ||
| 31 | } | 33 | } |
| 32 | 34 | ||
| 33 | /** | 35 | /** |
yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/service/permission/MenuServiceTest.java
| @@ -5,6 +5,7 @@ import cn.hutool.core.lang.Assert; | @@ -5,6 +5,7 @@ import cn.hutool.core.lang.Assert; | ||
| 5 | import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; | 5 | import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; |
| 6 | import cn.iocoder.yudao.framework.common.util.object.ObjectUtils; | 6 | import cn.iocoder.yudao.framework.common.util.object.ObjectUtils; |
| 7 | import cn.iocoder.yudao.framework.common.util.spring.SpringAopUtils; | 7 | import cn.iocoder.yudao.framework.common.util.spring.SpringAopUtils; |
| 8 | +import cn.iocoder.yudao.framework.test.core.ut.BaseDbUnitTest; | ||
| 8 | import cn.iocoder.yudao.module.system.controller.admin.permission.vo.menu.MenuCreateReqVO; | 9 | import cn.iocoder.yudao.module.system.controller.admin.permission.vo.menu.MenuCreateReqVO; |
| 9 | import cn.iocoder.yudao.module.system.controller.admin.permission.vo.menu.MenuListReqVO; | 10 | import cn.iocoder.yudao.module.system.controller.admin.permission.vo.menu.MenuListReqVO; |
| 10 | import cn.iocoder.yudao.module.system.controller.admin.permission.vo.menu.MenuUpdateReqVO; | 11 | import cn.iocoder.yudao.module.system.controller.admin.permission.vo.menu.MenuUpdateReqVO; |
| @@ -13,13 +14,13 @@ import cn.iocoder.yudao.module.system.dal.mysql.permission.MenuMapper; | @@ -13,13 +14,13 @@ import cn.iocoder.yudao.module.system.dal.mysql.permission.MenuMapper; | ||
| 13 | import cn.iocoder.yudao.module.system.enums.permission.MenuTypeEnum; | 14 | import cn.iocoder.yudao.module.system.enums.permission.MenuTypeEnum; |
| 14 | import cn.iocoder.yudao.module.system.mq.producer.permission.MenuProducer; | 15 | import cn.iocoder.yudao.module.system.mq.producer.permission.MenuProducer; |
| 15 | import cn.iocoder.yudao.module.system.service.tenant.TenantService; | 16 | import cn.iocoder.yudao.module.system.service.tenant.TenantService; |
| 16 | -import cn.iocoder.yudao.framework.test.core.ut.BaseDbUnitTest; | ||
| 17 | import com.google.common.collect.Multimap; | 17 | import com.google.common.collect.Multimap; |
| 18 | import org.junit.jupiter.api.Test; | 18 | import org.junit.jupiter.api.Test; |
| 19 | import org.springframework.boot.test.mock.mockito.MockBean; | 19 | import org.springframework.boot.test.mock.mockito.MockBean; |
| 20 | import org.springframework.context.annotation.Import; | 20 | import org.springframework.context.annotation.Import; |
| 21 | 21 | ||
| 22 | import javax.annotation.Resource; | 22 | import javax.annotation.Resource; |
| 23 | +import java.time.LocalDateTime; | ||
| 23 | import java.util.*; | 24 | import java.util.*; |
| 24 | 25 | ||
| 25 | import static cn.iocoder.yudao.framework.common.util.collection.SetUtils.asSet; | 26 | import static cn.iocoder.yudao.framework.common.util.collection.SetUtils.asSet; |
| @@ -74,7 +75,7 @@ public class MenuServiceTest extends BaseDbUnitTest { | @@ -74,7 +75,7 @@ public class MenuServiceTest extends BaseDbUnitTest { | ||
| 74 | assertPojoEquals(menuDO1, permissionMenuCache.get(menuDO1.getPermission())); | 75 | assertPojoEquals(menuDO1, permissionMenuCache.get(menuDO1.getPermission())); |
| 75 | assertPojoEquals(menuDO2, permissionMenuCache.get(menuDO2.getPermission())); | 76 | assertPojoEquals(menuDO2, permissionMenuCache.get(menuDO2.getPermission())); |
| 76 | 77 | ||
| 77 | - Date maxUpdateTime = (Date) BeanUtil.getFieldValue(target, "maxUpdateTime"); | 78 | + LocalDateTime maxUpdateTime = (LocalDateTime) BeanUtil.getFieldValue(target, "maxUpdateTime"); |
| 78 | assertEquals(ObjectUtils.max(menuDO1.getUpdateTime(), menuDO2.getUpdateTime()), maxUpdateTime); | 79 | assertEquals(ObjectUtils.max(menuDO1.getUpdateTime(), menuDO2.getUpdateTime()), maxUpdateTime); |
| 79 | } | 80 | } |
| 80 | 81 |
yudao-server/src/main/resources/application-local.yaml
| @@ -45,33 +45,33 @@ spring: | @@ -45,33 +45,33 @@ spring: | ||
| 45 | datasource: | 45 | datasource: |
| 46 | master: | 46 | master: |
| 47 | name: ruoyi-vue-pro | 47 | name: ruoyi-vue-pro |
| 48 | - url: jdbc:mysql://127.0.0.1:3306/${spring.datasource.dynamic.datasource.master.name}?allowMultiQueries=true&useUnicode=true&useSSL=false&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&autoReconnect=true&nullCatalogMeansCurrent=true # MySQL Connector/J 8.X 连接的示例 | 48 | + url: jdbc:mysql://139.9.196.247:3306/${spring.datasource.dynamic.datasource.master.name}?allowMultiQueries=true&useUnicode=true&useSSL=false&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&autoReconnect=true&nullCatalogMeansCurrent=true # MySQL Connector/J 8.X 连接的示例 |
| 49 | # url: jdbc:mysql://127.0.0.1:3306/${spring.datasource.dynamic.datasource.master.name}?useSSL=false&allowPublicKeyRetrieval=true&useUnicode=true&characterEncoding=UTF-8&serverTimezone=CTT # MySQL Connector/J 5.X 连接的示例 | 49 | # url: jdbc:mysql://127.0.0.1:3306/${spring.datasource.dynamic.datasource.master.name}?useSSL=false&allowPublicKeyRetrieval=true&useUnicode=true&characterEncoding=UTF-8&serverTimezone=CTT # MySQL Connector/J 5.X 连接的示例 |
| 50 | # url: jdbc:postgresql://127.0.0.1:5432/${spring.datasource.dynamic.datasource.slave.name} # PostgreSQL 连接的示例 | 50 | # url: jdbc:postgresql://127.0.0.1:5432/${spring.datasource.dynamic.datasource.slave.name} # PostgreSQL 连接的示例 |
| 51 | # url: jdbc:oracle:thin:@127.0.0.1:1521:xe # Oracle 连接的示例 | 51 | # url: jdbc:oracle:thin:@127.0.0.1:1521:xe # Oracle 连接的示例 |
| 52 | # url: jdbc:sqlserver://127.0.0.1:1433;DatabaseName=${spring.datasource.dynamic.datasource.master.name} # SQLServer 连接的示例 | 52 | # url: jdbc:sqlserver://127.0.0.1:1433;DatabaseName=${spring.datasource.dynamic.datasource.master.name} # SQLServer 连接的示例 |
| 53 | username: root | 53 | username: root |
| 54 | - password: 123456 | 54 | + password: ${RUOYI_VUE_PRO} |
| 55 | # username: sa | 55 | # username: sa |
| 56 | # password: JSm:g(*%lU4ZAkz06cd52KqT3)i1?H7W | 56 | # password: JSm:g(*%lU4ZAkz06cd52KqT3)i1?H7W |
| 57 | slave: # 模拟从库,可根据自己需要修改 | 57 | slave: # 模拟从库,可根据自己需要修改 |
| 58 | name: ruoyi-vue-pro | 58 | name: ruoyi-vue-pro |
| 59 | - url: jdbc:mysql://127.0.0.1:3306/${spring.datasource.dynamic.datasource.slave.name}?allowMultiQueries=true&useUnicode=true&useSSL=false&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&autoReconnect=true&nullCatalogMeansCurrent=true # MySQL Connector/J 8.X 连接的示例 | 59 | + url: jdbc:mysql://139.9.196.247:3306/${spring.datasource.dynamic.datasource.master.name}?allowMultiQueries=true&useUnicode=true&useSSL=false&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&autoReconnect=true&nullCatalogMeansCurrent=true # MySQL Connector/J 8.X 连接的示例 |
| 60 | # url: jdbc:mysql://127.0.0.1:3306/${spring.datasource.dynamic.datasource.slave.name}?useSSL=false&allowPublicKeyRetrieval=true&useUnicode=true&characterEncoding=UTF-8&serverTimezone=CTT # MySQL Connector/J 5.X 连接的示例 | 60 | # url: jdbc:mysql://127.0.0.1:3306/${spring.datasource.dynamic.datasource.slave.name}?useSSL=false&allowPublicKeyRetrieval=true&useUnicode=true&characterEncoding=UTF-8&serverTimezone=CTT # MySQL Connector/J 5.X 连接的示例 |
| 61 | # url: jdbc:postgresql://127.0.0.1:5432/${spring.datasource.dynamic.datasource.slave.name} # PostgreSQL 连接的示例 | 61 | # url: jdbc:postgresql://127.0.0.1:5432/${spring.datasource.dynamic.datasource.slave.name} # PostgreSQL 连接的示例 |
| 62 | # url: jdbc:oracle:thin:@127.0.0.1:1521:xe # Oracle 连接的示例 | 62 | # url: jdbc:oracle:thin:@127.0.0.1:1521:xe # Oracle 连接的示例 |
| 63 | # url: jdbc:sqlserver://127.0.0.1:1433;DatabaseName=${spring.datasource.dynamic.datasource.slave.name} # SQLServer 连接的示例 | 63 | # url: jdbc:sqlserver://127.0.0.1:1433;DatabaseName=${spring.datasource.dynamic.datasource.slave.name} # SQLServer 连接的示例 |
| 64 | username: root | 64 | username: root |
| 65 | - password: 123456 | 65 | + password: ${RUOYI_VUE_PRO} |
| 66 | # username: sa | 66 | # username: sa |
| 67 | # password: JSm:g(*%lU4ZAkz06cd52KqT3)i1?H7W | 67 | # password: JSm:g(*%lU4ZAkz06cd52KqT3)i1?H7W |
| 68 | 68 | ||
| 69 | # Redis 配置。Redisson 默认的配置足够使用,一般不需要进行调优 | 69 | # Redis 配置。Redisson 默认的配置足够使用,一般不需要进行调优 |
| 70 | redis: | 70 | redis: |
| 71 | - host: 127.0.0.1 # 地址 | 71 | + host: 139.9.196.247 # 地址 |
| 72 | port: 6379 # 端口 | 72 | port: 6379 # 端口 |
| 73 | database: 0 # 数据库索引 | 73 | database: 0 # 数据库索引 |
| 74 | -# password: 123456 # 密码,建议生产环境开启 | 74 | + password: 123456 # 密码,建议生产环境开启 |
| 75 | 75 | ||
| 76 | jasypt: | 76 | jasypt: |
| 77 | encryptor: | 77 | encryptor: |
| @@ -173,6 +173,8 @@ logging: | @@ -173,6 +173,8 @@ logging: | ||
| 173 | cn.iocoder.yudao.module.system.dal.mysql: debug | 173 | cn.iocoder.yudao.module.system.dal.mysql: debug |
| 174 | cn.iocoder.yudao.module.tool.dal.mysql: debug | 174 | cn.iocoder.yudao.module.tool.dal.mysql: debug |
| 175 | cn.iocoder.yudao.module.member.dal.mysql: debug | 175 | cn.iocoder.yudao.module.member.dal.mysql: debug |
| 176 | + cn.iocoder.yudao.module.trade.dal.mysql: debug | ||
| 177 | + cn.iocoder.yudao.module.promotion.dal.mysql: debug | ||
| 176 | 178 | ||
| 177 | --- #################### 微信公众号、小程序相关配置 #################### | 179 | --- #################### 微信公众号、小程序相关配置 #################### |
| 178 | wx: | 180 | wx: |